Aw: Re: Undesirable nul file with tlmgr.bat under Windows

Reinhard Kotucha reinhard.kotucha at web.de
Mon Jul 22 02:46:22 CEST 2019


On 2019-07-20 at 20:33:56 +0200, "Torsten Schütze" wrote:

 > Hi all,
 > 
 > Reinhard Kotucha schrieb:
 > >
 > > As far as I understand, Torsten has a Windows installation and uses
 > > Cygwin for convenient maintenance.  What IMO can't work reliably is
 > > that his Cygwin PATH contains the bin/win32 binaries.  Even if this
 > > worked in the past, if Cygwin binaries are linked against the cygwin
 > > DLLs and Windows binaries are linked against against MSVCRT.DLL, there
 > > *must* be differences in behavior.
 > 
 > just to clarify: with my setup everything works fine EXCEPT the nul
 > file, which is only a small disturbance. I now see that I obviously
 > run a non-supported setup. But with the change described in my last
 > mail (2>&1 > nul) everything is fine again. So, why not add it?

Torsten, tlmgr is Norbert's kid and thus Norbert has to decide.

But I don't think that everything is fine.  It's nice that your
mixture of operating systems worked in the past.  I'm convinced that
there are many other incompatibilities and that you just touched the
tip of the iceberg.  I strongly recommend not to support such setups
because this makes tlmgr and the installer unmaintainable.

What you want to achive is quite common.  Many people want to install
TeX Live from tug.org on Cygwin so that it can be used from both,
Cygwin and Windows.  This is fully supported by TeX Live for decades.
If it's not clear it makes much more sense to add something to the
HTML documentation @tug.org instead of changing the software.

In short: The proper way to install TeX Live for both systems is to do
that under Cygwin and enable "Windows (win32)" in the "binaries" menu
of the installer.  You have to set PATH, MANPATH, and INFOPATH on
both, Cygwin and Windows.  I can confirm that it works as expected.


 > Therefore I don't see a urgent reason to change my setup. It should
 > be noted that I need the TeX system under plain Win64 AND
 > Cygwin. And I don't want to have two separate TeX installations. I
 > could live with adding just the Cygwin binaries to the Win32/64 TeX
 > System, but
 > 
 > >   * tlmgr platform add cygwin
 > 
 > this command from a Win64 cmd line doesn't work
 > 
 > tlmgr platform add cygwin action `platform' not supported on
 > Windows tlmgr.pl: action platform returned an error; continuing.
 > Can't call method "option" on an undefined value at
 > C:\TeX\texmf-dist\scripts\texlive\tlmgr.pl line 938.

Invoke "tlmgr platform add cygwin" on Cygwin.  The error message

   action `platform' not supported on Windows

means that you can't add Unix binaries on Windows because Windows
can't create the symlinks for Unix systems.

However, it seems that symlinks under Cygwin are regular files.  They
contain a mixture of ASCII and UTF-16.  I'm on leave now and have no
acces to a Windows machine.  But I remember that they begin with
"<symlink" but the actual path is in UTF-16, like
"^@t^@e^@x^@l^@i^@v^@e".

Given that symlinks are regular files under Cygwin and both, Cygwin
and Windows share the same file system, it should be possible to allow
tlmgr to add the Cygwin binaries even when invoked under Windows.  But
I don't recommend to add the feature to tlmgr and the installer until
it's thoroughly tested.

> And I don't want to have two separate TeX installations.

No need at all.

 > And if I use the cygwin setup-x86_64.exe, it installs TeX Live
 > under Cygwin standard places.

I'm aware that this is not what you want.  The Cygwin standard places
are accessible by Windows but Cygwin doesn't provide win32 binaries.

 > I somehow could befriend with installing the cygwin binaries (only
 > the binaries) in addition to Win32 TeXLive binaries. But for
 > another reason: As far as I see the TeXLive binaries are still
 > 'only' win32 (if one doesn't install the Win64 binaries from
 > CTAN/systems/win32/w32tex/TLW64/tl-win64.zip). I tested above
 > 64-bit binaries from Akira during the pretest phase. The cygwin
 > TeXLive binaries would be 64-bit too, wouldn't they?

Yes.  And it doesn't matter whether you are using the TeX Live
installer from tug.org or Cygwin's package manager.  They are always
64 bit.

TeX Live currently provides 32-bit binaries for Windows because many
people still have 32-bit machines and the benefit of 64-bit binaries
is quite small.  TeX Live will switch to 64 bits when Microsoft drops
win32 support.  It's not difficult to switch to new binaries but it's
a lot of work to maintain two different sets of binaries for Windows
at the same time.  Not only the files in bin/win32 are affected but
also Perl, Ghostscript, TeXworks, etc. which TL doesn't provide for
any other platform.

 > So, if my current setup is not supported, how can I install just
 > the cygwin binaries under C:\TeX\bin\...?

Try to run tlmgr under Cygwin with bin/win32 in PATH in order to
install the missing binaries.  tlmgr assumes then that you are under
Cygwin because you are using Cygwin's Perl.  I'm not sure whether
tlmgr supports the addition of binaries for the platform you are
currently using (this is quite strange, isn't it?) but its worth a
try.

If this doesn't work, you can extract the file

  http://ms25.ddns.net/texlive/w32/x86_64-cygwin.zip 

in C:/TeX/bin .  I don't know whether it works either.  I just created
the zip file from my Linux installation and this contained real Unix
symlinks, not the regular files I've seen on Cygwin and Windows.  But
I don't know how they are processed by zip/unzip.  I must admit that
this is not the best solution anyway because tlmgr is not aware of
the new binaries and thus you don't get updates for them.

I personally believe that the cleanest solution is to install TL from
scratch under Cygwin with additional binaries for win32.  This is
fully supported by TeX Live.  I also recommend to keep the "2019"
directory so that TL-2019 and TL-2020 can exist side-by-side and you
don't have to delete anything until the new release is properly set
up.

At work, most of the time I use TeX Live on Debian within a virtual
machine under Windows.  This is very convenient and everything is much
faster than under Windows but it's less convenient to share files
among the sytems.  The VM supports a shared directory but Windows adds
the executable bits to all files, which is extremely annoying.

Regards,
  Reinhard

-- 
------------------------------------------------------------------
Reinhard Kotucha                            Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover                    mailto:reinhard.kotucha at web.de
------------------------------------------------------------------



More information about the tex-live mailing list