[tex-live] tlmgr update --self in 4NT window.

T T t34www at googlemail.com
Thu Aug 6 03:41:23 CEST 2009


On 05/08/2009, Dan&Jan Luecking <luecking at uark.edu> wrote:
> It happened in two of my available computers. I just tried
> it on a third and it didn't happen. I don't know why.

Probably some glitch in one of the older versions.

> Could it be because of unescaped redirection symbols?

Could be. I hope this is gone now.

>>You can make the updater more chatty with 'tlmgr -v ...', this will
>>enable debugging also in the batch updater script. Full description of
>>the update process can be found in
>>.../texmf/scripts/texlive/updater-w32 if you are interested in more
>>details.
>
> I had read that, so I know the process, but it doesn't
> say what actual files are changed by that process. Nor can

There is no easy way to know that. Package .tar file is simply
unpacked and that's it. Only the exit code from tar is checked. If it
is 0 then the assumption is that all went well.

The other sensitive operation is updating package data base
(texlive.tlpdb) and here exit code is checked as well to detect
failures. All the other errors are not critical.

> one see from any messages whether those files are changed.
> Thus, I have no way to check if an update has taken place
> (apart from version numbers in *.tlpobj, which only proves
> those files were changed).

That should be enough. Partial update could happen only if tar would
fail to unpack some files and this should be detected through nonzero
exit code.

The only problem with the current approach is that files present in
the old revision, but not in the new one, will stay behind. Removing
them would require parsing *.tlpobj files, which is not a simple task
in a batch script.

> It is hard to check if it fails in 4NT and succeeds in cmd,
> because one can only do one after the other.

Yes, this is a problem and makes troubleshooting so much more
difficult. I added some more debug statements and for extra verbose
output (tlmgr -v -v ...) echo is turned on early on in the updater
script so you can see exactly what is executed. Also, in case of
errors all files will be left in <tlroot>/temp/ for inspection and
"replay".

> What exactly is "the updater script"? If you mean updater-w32.bat,
> I don't see that in there (though it does appear in updater-w32,
> which I thought was supposed to be a copy of it). Which one is
> actually invoked?

You can remove updater-w32.bat, it's one of those leftovers I metioned
above, updater-w32 is "the updater script" now, but it is invoked
indirectly. First, tlmgr.pl copies it to <tlroot>/temp/ and appends it
with the update data. Next, tlmgr.pl terminates and control goes back
to tlmgr.bat, where updater-w32 is renamed it to updater-w32.bat and
executed. This is quite convoluted but it ensures that the updater
script is run only once.

Cheers,

Tomek


More information about the tex-live mailing list