La instalación y actualización de TeX Live tiene problemas

La instalación y actualización de TeX Live tiene problemas

Si ha instalado manualmente la última versión de TeX Live de esta manera (instalando como rootusuario):

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvzf install-tl-unx.tar.gz
cd install-tl-*
perl ./install-tl

Es posible que obtenga errores al intentar actualizar.

Al ejecutar tlmgr update --all(como no rootusuario), hay errores sobre cannot write to directory.

Usando root(o sudo tlmgr update --all), los errores son de la forma

tlmgr: Local TeX Live (2020) is older than remote repository (2022). Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update See https://tug.org/texlive/upgrade.html for details.

o bash: tlmgr: command not found.

¿Cómo se solucionan estos problemas?

¿Deberías ejecutar la update-tlmgr-latestcosa desde arriba?

Respuesta1

Como usuario normal, no debería poder escribir en la instalación de TeX Live en todo el sistema, por lo que recibir ese error es bueno y correcto. Debería utilizar un usuario específico del sistema (p. ej texlive.) o el superusuario root. Usar sudopara ejecutarlo es lo mismo que usar rooty funcionará (pero si usó un usuario del sistema para la instalación inicial, solo debe usar ese usuario, no root).

Si tlmgrno se encuentra, debe agregar la ruta al tlmgrejecutable a la rootruta de:

Ejecute sudo su - ; nano ~/.bashrc(asumiendo que lo usa bashcomo shell). Agregue una línea similar a la siguiente, luego guarde y salga.

export PATH=/usr/local/texlive/2022/bin/linux-x86_64/:${PATH}

Si obtiene cross version error, la solución es la misma: agregue la ruta correcta al frente de rootla ruta y elegirá esa.

¿Por qué hay una versión que no instalaste?

Generalmente, será una versión instalada por un administrador de paquetes para cumplir con una dependencia de algo que haya instalado. Esto puede ser algo tan simple como un editor que tenga modo TeX (el editor Kilese ajusta a esta descripción).

¿Se puede eliminar el antiguo TeX Live?

Probablemente si. Pero NO lo use rmpara eliminarlo. Eso causará más problemas de los que resuelve. Utilice el administrador de paquetes, para eso sirve. Es posible que intente eliminar algunas cosas que desee, así que preste atención a la lista de cosas que se eliminarán.

Si estás en Debian Linux, hay algunos muy buenos.instruccionespor convencer a su administrador de paquetes ( apt, apper, synaptic) de que tiene TeX Live, para que no intente instalar una versión desactualizada nuevamente. Es posible que pueda convencer a RPM ( yum, dnf) de lo mismo en las distribuciones basadas en RedHat, pero el proceso exacto es diferente y no está cubierto por ese enlace. Alguien enunix y linux.SEEs posible que pueda ayudarlo con eso, pero está fuera del alcance de este sitio.

Actualización de versiones (por ejemplo, de 2022 a 2023):

Uno de los errores anteriores especifica la ejecución de update-tlmgr-latest(.sh/.exe) --update. Si copia ese comando y lo ejecuta, no funcionará. Si estás en Windows, usarías update-tlmgr-latest.exe --updatey debería funcionar. Si estás en Linux, usa update-tlmgr-latest.sh --update. El error no es particularmente claro, pero también supone cierta familiaridad con las extensiones de archivos y los formatos ejecutables para varios sistemas. No tengo ninguna sugerencia para un mejor mensaje de error, en caso de que alguien que pueda solucionarlo esté leyendo esto.

Personalmente, no actualizaría la versión usando update-tlmgr-latest. En su lugar, instalaría una nueva versión, ya sea dejando la versión existente en su lugar o eliminándola una vez que esté satisfecho de que la nueva versión funciona con mis documentos.

Instalación utilizando un usuario del sistema:

Arriba, se mencionó el uso de un usuario del sistema, no rootla instalación del sistema TeX Live. Aquí se explica cómo hacerlo:

Usando rooto sudo, cree un nuevo usuario del sistema nombrado texliveusando el siguiente comando (o algo sustancialmente similar):

useradd -d /usr/local/texlive -m -r texlive
passwd -l texlive

Esto creará un usuario del sistema ( -r), con un directorio de inicio de /usr/local/texlive( -d /usr/local/texlive -m), y bloqueará la contraseña (para que no haya ninguna contraseña que pueda iniciar sesión en la cuenta). Úselo sudo su - texlivepara cambiar al texliveusuario, luego ejecute la instalación como se indica en la pregunta.

La razón principal de esto es la separación de responsabilidades. El texliveusuario se utiliza nada más y nada menos que para la administración de la instalación de TeX Live. No se puede utilizar para ninguna otra administración del sistema y está muy claro qué archivos forman parte de la instalación de TeX Live (son propiedad de texlive, no de root).

Tema avanzado: varias versiones de TeX Live trabajando juntas:

(La versión automática funciona en Linux, puede funcionar o no en Mac, no funcionará en Windows)

¡Buenas noticias! Es posible instalar varias versiones diferentes de Tex Live, sin que interfieran entre sí. Instale cada uno en un directorio separado, como /usr/local/texlive/<year>/.

Para elegir entre versiones, puede cambiar manualmente su PATHvariable o puede hacer que la computadora lo haga automáticamente por usted. Para que la computadora lo haga, puedes usar el environment-modulespaquete, con un archivo de módulo similar a este (crea uno para cada versión de TeX Live que tengas instalada):

#%Module1.0#######################################################################
#
#
module-whatis   "Loads settings for the TeXLive 2023"
prepend-path    PATH            /usr/local/tex/texlive/2023/bin/x86_64-linux
prepend-path    MANPATH         /usr/local/tex/texlive/2023/texmf/doc/man
prepend-path    INFOPATH        /usr/local/tex/texlive/2023/texmf/doc/info

Si tiene uno de esos archivos de módulo para cada versión, puede seleccionar fácilmente una versión usando module load texlive/2023y volver al valor predeterminado con module remove texlive/2023. Nuevamente, para obtener ayuda específica sobre el uso de archivos de módulo de esta manera,unix y linux.SEes un buen lugar para pedir ayuda (después de mirar las páginas de manual, por supuesto).

información relacionada