You are not logged in.

#1 2024-05-25 21:31:07

Joedang
Member
From: Cascadia
Registered: 2020-05-17
Posts: 16

How to do a fresh install of LaTeX?

At some point, my LaTeX installation broke. It was something about missing .fmt files and missing symbols in one of the kpathsea shared objects. I didn't write down the specifics, because I figured it was some obscure issue that would be resolved by upgrading. However, the upgrade did not fix the issue. I tried removing and reinstalling all related packages...

sudo pacman -Rs texlive-latexextra texlive-bibtexextra pandoc-cli texlive-pstricks texlive-basic && sudo pacman -S texlive-latexextra texlive-bibtexextra pandoc-cli texlive-pstricks texlive-basic

However, there were A LOT of orphaned files (presumably generated by tlmgr or its components?) that were causing warnings at installation and causing pdflatex to fail.

So, I tried removing all orphaned files related to LaTeX, by manually identifying all the TeX-related stuff in:

find /etc /usr /opt | LC_ALL=C.UTF-8 pacman -Qqo -

and then moving those TeX-related files to a backup directory.

When I tried to reinstall the LaTeX packages again, I got a bunch of warnings and errors, for example:

fmtutil [WARNING]: double mention of dvilualatex/luatex in etc/texmf/web2c/fmtutil.cnf
...
updmap [ERROR]: The following map file(s) couldn't be found:
updmap [ERROR]:         arss.map (in /etc/texmf/web2c/updmap.cfg)
...

I'm not intending to use LaTeX at a low level, I just want pandoc and pdflatex to work. Is there a way I can just remove ALL LaTeX-related packages and files and do a fresh install? At this point, I'm considering just rebuilding my root directory from scratch, but I'd prefer to avoid that. (I have a small handful of systemd services and cron jobs that I'd have to back up, but that would be less painful than the LaTeX stuff thus far.)

Also, not important beyond curiosity, why are so many orphaned files generated? Until pandoc and pdflatex stopped working, I'd only ever interacted with the LaTeX stuff via pacman. It seems odd that a package would create orphaned files.

Offline

#2 2024-05-25 23:30:02

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 30,456
Website

Re: How to do a fresh install of LaTeX?

Joedang wrote:

why are so many orphaned files generated? Until pandoc and pdflatex stopped working, I'd only ever interacted with the LaTeX stuff via pacman. It seems odd that a package would create orphaned files.

It wouldn't.  But as to why those files existed is anyone's guess.  You didn't tell us anything about what / where those files were, and it sounds like you've already removed them.  So there are no answers left to be found.

Joedang wrote:

I'm not intending to use LaTeX at a low level, I just want pandoc and pdflatex to work.

Then do yourself a huge favor and try tectonic instead.


"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman

Offline

#3 2024-05-30 22:41:36

Joedang
Member
From: Cascadia
Registered: 2020-05-17
Posts: 16

Re: How to do a fresh install of LaTeX?

Trilby wrote:

... tell us anything about what / where those files were...

I backed them up to another directory, preserving the original directory structure. (see below)

Starting with

find /etc /usr /opt | LC_ALL=C.UTF-8 pacman -Qqo - 2>&1 >&- >/dev/null | cut -d ' ' -f 5-

I did a bunch of pattern-matching to identify things related to TeX.

Based on this, I manually created texMoveList2:

/etc/texmf/
/usr/bin/git-latexdiff
/usr/bin/latex2man
/usr/bin/latex2nemeth
/usr/bin/latexdef
/usr/bin/latexdiff
/usr/bin/latexdiff-vc
/usr/bin/latexfileversion
/usr/bin/latex-git-log
/usr/bin/latexindent
/usr/bin/latexmk
/usr/bin/latexpand
/usr/bin/latex-papersize
/usr/bin/latexrevise
/usr/bin/mkjobtexmf
/usr/bin/mkluatexfontdb
/usr/bin/optexcount
/usr/bin/pdflatexpicscale
/usr/bin/pdftex-quiet
/usr/bin/tex4ebook
/usr/bin/texconfig
/usr/bin/texconfig-dialog
/usr/bin/texconfig-sys
/usr/bin/texcount
/usr/bin/texdef
/usr/bin/texdiff
/usr/bin/texdirflatten
/usr/bin/texdoc
/usr/bin/texdoctk
/usr/bin/texfot
/usr/bin/texindy
/usr/bin/texlinks
/usr/bin/texliveonfly
/usr/bin/texloganalyser
/usr/bin/texlogfilter
/usr/bin/texlogsieve
/usr/bin/texplate
/usr/bin/xelatex-unsafe
/usr/bin/xetex-unsafe
/usr/lib/bak_libptexenc.so.1_bak
/usr/lib/ghc-9.0.2/site-local/
/usr/share/libalpm/hooks/texlive-updmap.hook
/usr/share/texmf-dist/
/usr/share/texmf/ls-R
/usr/share/tlpkg/

Then, I flattened the list and did a smoke-check to make sure everything *really was* orphaned and existed:

for f in $(cat texMoveList2); do 
    find "$f" -type f \
    | LC_ALL=C.UTF-8 pacman -Qqo - 2>&1 >&- >/dev/null \
    | grep -ve 'specified with empty stdin' \
    | cut -d ' ' -f 5- >> texMoveList5; 
done

Here's texMoveList5 (1 MB).

This is the script I used to finally move everything:

#!/bin/bash
set -e # exit if there are errors 
dumpDir='texDump_2024-05-25'
mkdir -p "$dumpDir"
for f in $(cat texMoveList5); do
    echo "file to move: $f"
    base="$(basename "$f")"
    dir="$(dirname "$f")"
    echo "old dir: $dir"
    newDir="$dumpDir$dir"
    echo "new dir: $newDir"
    mkdir -p "$newDir"
    sudo mv "$f" "$newDir/$base" 
    echo
done
echo done

(I realized after the fact that this clobbered the permissions... Oh well...)

Here's the tree of that backup directory (1.1 MB)

Trilby wrote:

try tectonic

Thanks for the recommendation! I was hoping something like that existed. I never liked TeX Live. I'll have to look into it more before trying it, to make sure there's at least some kind of user-intervention before it tries to download things.

Offline

Board footer

Powered by FluxBB