tlmgr update texhash
Martin Münch
Martin.Muench at Uni-Bonn.de
Sat Mar 25 12:45:10 CET 2023
Hi,
yes, was looking for texhas, but mktexlsr is done. _Should_ be
sufficient. The note about the failed update did not reach the user.
Maybe "tlmgr update --all" >>finished<< and closed its window instead of
stopping? Or the error message was not shown? Or the error message was just
/home/<username>/.texlive/texmf-config/ls-R: no write permission,
skipping...
instead of
!!! ERROR ERROR ERROR !!!
FAILED to update /home/<username>/.texlive/texmf-config/ls-R
Writing to that file was not permitted.
You MUST fixed the permissions and then re-run "mktexlsr"!
- and stopping there and not closing the window and waiting for the user
to confirm that they have read and understood the message and promise to
fix the problem.
The communication was like this:
I would like to report a (possible) regression in version
"2023-03-07 v2.0a" of the package (also indicated with ID
66465 by tlmgr), where a .tex file would stop to compile
on my system, despite working with the previous version
(60414) of the same package.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#!/bin/bash
latex test.tex
latex test.tex
rm -f test.aux
rm -f test.fdb_latexmk
rm -f test.fls
rm -f test.log
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[english,dvips]{article}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=2cm,bmargin=1.5cm,lmargin=2cm,rmargin=2cm}
\pagestyle{plain}
\setlength\parskip{\smallskipamount}
\setlength\parindent{0pt}
\usepackage{setspace}
\doublespacing
\makeatletter
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\chead{}
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{1pt}
\rfoot{page \thepage/\pageref{LastPage}}
\usepackage{pdfpages}
\includepdfset{offset=-10.25cm 0cm}
\usepackage{babel}
\makeatother
\begin{document}
\begin{singlespace}
\begin{center}Lorem ipsum\end{center}\end{singlespace}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022)
(preloaded format=latex)
restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-02-22>
(/home/<username>/.texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2022/07/02 v1.4n Standard LaTeX document class
(/home/<username>/.texlive/texmf-dist/tex/latex/base/size10.clo))
(/home/<username>/.texlive/texmf-dist/tex/latex/psnfss/times.sty)
(/home/<username>/.texlive/texmf-dist/tex/latex/base/fontenc.sty
(/home/<username>/.texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd))
(/home/<username>/.texlive/texmf-dist/tex/latex/base/inputenc.sty
(/home/<username>/.texlive/texmf-dist/tex/latex/base/latin1.def))
(/home/<username>/.texlive/texmf-dist/tex/latex/geometry/geometry.sty
(/home/<username>/.texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/home/<username>/.texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
(/home/<username>/.texlive/texmf-dist/tex/generic/iftex/iftex.sty)))
(/home/<username>/.texlive/texmf-dist/tex/latex/setspace/setspace.sty)
(/home/<username>/.texlive/texmf-dist/tex/latex/lastpage/lastpage.sty
! LaTeX Error: File `lastpage2e.sty' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Enter file name:
! Emergency stop.
<read *>
l.67 \endinput
^^M
No pages of output.
Transcript written on test.log.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The new lastpage version produced
> (/home/<username>/.texlive/texmf-dist/tex/latex/lastpage/lastpage.sty
>
> ! LaTeX Error: File `lastpage2e.sty' not found.
In the directory
/home/<username>/.texlive/texmf-dist/tex/latex/lastpage/
there should be
File name Size
----------------------- -----
lastpage.sty 2,820
lastpage209.sty 2,869
lastpage2e.sty 2,668
lastpageclassic.sty 9,347
lastpagemodern.sty 9,016
total files 5 total size 26,720
If any of those is missing, they are included in
https://mirrors.ctan.org/install/macros/latex/contrib/lastpage.tds.zip
(at least they should be, otherwise something went wrong and I need to
check that).
If they are there, LaTeX did not find them.
Try running
texhash
or
mktexlsr
to update the file data base (or whatever your TeX distribution uses for
this).
In the directory
/home/<username>/.texlive/texmf-dist/
there now should be a large file "ls-R", which contains also an entry
> ./tex/latex/lastpage:
> lastpage.sty
> lastpage209.sty
> lastpage2e.sty
> lastpageclassic.sty
> lastpagemodern.sty
With the files in
/home/<username>/.texlive/texmf-dist/tex/latex/lastpage/ and the entries
in /home/<username>/.texlive/texmf-dist/ls-R
does the error still occur?
lastpage.sty should load lastpage2e.sty, which should load
lastpagemodern.sty on your recent system, obviously it did not.
Therefore you could also say \usepackage{lastpagemodern}, but
- if lastpage2e.sty is not found, lastpagemodern probably will not be
found either
- if you gave the document to someone with an older distribution,
loading lastpagemodern would not work but lastpageclassic would be needed.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<username> wrote:
> In the directory
> /home/<username>/.texlive/texmf-dist/tex/latex/lastpage/
> there should be
Here is the content of the directory after updating to the latest
version of "lastpage" with tlmgr:
$ ls -l /home/<username>/.texlive/texmf-dist/tex/latex/lastpage/
-rw-r--r-- 1 <username> <username> 2869 mar 7 10:50 lastpage209.sty
-rw-r--r-- 1 <username> <username> 2668 mar 7 10:50 lastpage2e.sty
-rw-r--r-- 1 <username> <username> 9347 mar 7 10:50
lastpageclassic.sty
-rw-r--r-- 1 <username> <username> 9016 mar 7 10:50 lastpagemodern.sty
-rw-r--r-- 1 <username> <username> 2820 mar 7 10:50 lastpage.sty
which match exactly the expected file names and sizes reported
in your mail.
> Try running texhash or mktexlsr
I tried that and got the following:
$ texhash
texhash: /home/<username>/.texlive/texmf-config/ls-R: no write
permission, skipping...
texhash: /home/<username>/.texlive/texmf-dist/ls-R: no write
permission, skipping...
texhash: /home/<username>/.texlive/texmf-local/ls-R: no write
permission, skipping...
texhash: Updating /home/<username>/.texlive/texmf-var/ls-R...
texhash: Done.
Which lead me to the discovery that the "ls-R" files
had the wrong permissions!
I then fixed the permissions, and re-ran both "texhash" and "mktexlsr".
Conclusions)
Now compilation succeeds even with latest "lastpage" package version!
I am not sure why the warnings were not shown when running
"tlmgr update --all". Maybe they were hidden and ignored somehow.
Otherwise, is it possible that "texhash"/"mktexlsr" were not
triggered automatically for some reason?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On 16.03.2023 23:52:15, Norbert Preining wrote:
> Hi
>
>> tlmgr update --self --all --reinstall-forcibly-removed -repository
>> <somewhere>
>>
>> I get updates and new packages (if TeX Live is not frozen) and messages
>> about their installation.
>>
>> I do not remember seeing any messages about updates of "ls-R"-files at the
>> end of those messages.
>
> There is. The first thing after the updates are done, here an example
> with only a single update:
>
> ++++++++++++++
> [1/1, ??:??/??:??] update: japanese-otf-nonfree [38k] (360 -> 368 at tlcontrib) ... done
> running mktexlsr ...
> done running mktexlsr.
> +++++++++++++
>
> Maybe you are looking for "texhash" which should anyway not be used. Use
> mktexlsr.
>
>> Now this happened: I updated a package and had to increase the number of
>> included .sty files. It is at CTAN, and in the repositories, and users do
>> tlmgr update, and:
>>
>> Expected: TeX Live finds all of those files.
>> Seen by user: Error, file not found.
>
> Not enough information.
>
>> Running texhash manually by the user said:
>>
>> texhash: /home/<username>/.texlive/texmf-config/ls-R: no write permission,
>> skipping...
>> texhash: /home/<username>/.texlive/texmf-dist/ls-R: no write permission,
>> skipping...
>> texhash: /home/<username>/.texlive/texmf-local/ls-R: no write permission,
>> skipping...
>> texhash: Updating /home/frazar/.texlive/texmf-var/ls-R...
>> texhash: Done.
>
> Irrelevant. Files installed by tlmgr are NOT installed into $TEXMFLOCAL
> or $TEXMFCONFIG
>
>> After removing the write protection and running texhash again, the .sty
>> files are found. Problem for that user solved.
>
> Sounds rather cryptic.
>
>> - Does "tlmgr update" internally try to update the ls-R-files and fails? It
>> should inform the user about this failure!
>
> If it fails, it warns about it.
>
> But tlmgr does NOT update local user files (the ones listed above).
>
>> - Does "tlmgr update" not even try to update the ls-R-files (for packages
>> which are updated vs. packages which are newly installed)? It should inform
>
> No. I t *does* of course update the ls-R files, otherwise it would be
> broken.
>
>> While I run texhash regularly anyway because of changes in my
>> ./tex/latex/local, that is probably not the case for an average user.
>
> You should NOT run texhash/mktexlsr on $TEXMFHOME and remove the ls-R
> file there.
>
> Best
>
> Norbert
>
> --
> PREINING Norbert https://www.preining.info
> Mercari Inc. + IFMGA Guide + TU Wien + TeX Live
> GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
More information about the tex-live
mailing list.