介绍

TeX Live 是 TUG (TeX User Group) 维护和发布的 TeX 系统,可说是「官方」的 TeX 系统。网上可找到的教程大多是从镜像安装完整版texlive。镜像发布的周期较长,一些包的版本相对较低,如果希望一开始安装的就是最新版本的包并且需要个性化配置,建议使用官方提供的安装脚本(install-tl)进行安装。

步骤

以下以ubuntu 18.04系统为例,展示从安装脚本安装texlive的全过程。注意 texlive 是跨平台的,主要步骤适应于其他操作系统。

  • 首先从官网或其镜像站下载安装脚本。
export REMOTE_INSTALLER_URL=http://mirror.ctan.org/systems/texlive/tlnet
export INSTALL_PACKAGE=install-tl-unx.tar.gz
wget $REMOTE_INSTALLER_URL/$INSTALL_PACKAGE

注意主站 mirror.ctan.org 不是一个真实的镜像,它会重定向到一个镜像站,在国内有时重定向的镜像站比较慢,可直接指向某些镜像站,建议设置

export REMOTE_INSTALLER_URL=http://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet

  • 解压安装脚本并运行。
export INSTALL_DIR=install-texlive
mkdir $INSTALL_DIR
tar -zxvf $INSTALL_PACKAGE -C $INSTALL_DIR --strip-components 1
$INSTALL_DIR/install-tl -repository $REMOTE_INSTALLER_URL -profile tl.profile

install-tl 的默认方式是文字模式的安装,首次启动会从指定的镜像站下载 tlpdb 数据库,数据库目前有11Mb左右,下载完成后出现选项,默认安装 scheme-full,即所有的宏包,目前会占用 5GB以上的硬盘空间,可根据提示进行设置以减少首次安装的容量大小。

这里简要介绍下texlive 安装内容的层级,最顶层的是 scheme,目前有 full, medium, small, basic, minimal 等; 其次是 collection,目前有41个,一个scheme 包含多个 collection; 最小的单元是 package,一个 collection 包含多个 package。这里的 package不仅包括宏包,还有可执行程序等。查看各 scheme 和 collection 具体包含内容和简介可以打开下载的 tlpdb 数据库文件(是一个文本文件)查找相应的字段。

为了减轻交互式配置安装的麻烦以及提供自动化安装的需求, 可指定安装需要的 profile 文件,在profile文件中,可指定scheme, collection, tlpdb 的配置信息以及texlive

安装所需要的环境变量。

texlive 默认配置中是安装到 /usr/local/ 下面,需要对该文件夹有写权限,也可更改至用户目录下面。

  • 利用 tlmgr 安装新的 package.

    使用 tlmgr install pkg 安装新的包,若同时指定若干个包,包名之间用空格隔开。使用一段时间后,有更新包的需求使用tlmgr update pkg 可完成。更多 tlmgr 的用法可参考[2]

参考

  1. install-tl 用法说明
  2. tlmgr 用法说明

使用安装脚本安装Texlive的更多相关文章

  1. Linux学习之源码包安装与脚本安装(十八)

    Linux学习之源码包安装与脚本安装 目录 源码包与RPM包的区别 源码包安装 脚本安装 源码包与RPM包的区别 1.区别 安装之前的区别:概念上的区别 安装之后的区别:安装位置不同 源码包: 开源的 ...

  2. Nginx+keepalived 脚本安装主从双机热备自动切换解决方案

    Nginx+keepalived 脚本安装主从双机热备自动切换解决方案 2013-07-02 19:24:13 标签:filesnginx keepalived 原创作品,允许转载,转载时请务必以超链 ...

  3. jws.mono脚本安装详解

    就在最近两天,最新版本的jws.mono上线了,这个版本除了提供与之前版本拥有的功能外,还额外提供了一个“自动化”的安装脚本,通过执行该脚本,jws.mono将自动快速的安装到指定的目录,同时,通过改 ...

  4. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  5. Linux安装脚本需要交互之如何实现自动安装

    Linux中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息.这个在自动化安装的时候就会是个问题. 通常对于这个问题比较灵活的解 ...

  6. iredmail安装脚本分析(一)---iRedmail.sh

    iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的.为了让自己不遗忘shell的语法,所以闲来无事,学习一下他的代码. 我从官网下载他的最新版,解压 ...

  7. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  8. 17.KVM安装之虚拟磁盘,安装脚本

    1.创建磁盘 vm.list 指定虚拟磁盘名称和主机名 create_vm.sh    #创建vm.list中的虚拟磁盘,并指定大小100G #!/bin/bash VM_DIR="/opt ...

  9. 一个比较完整的Inno Setup 安装脚本(转)

    一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其他安装程序使用相 ...

随机推荐

  1. 前端 --- 5 BOM 和 DOM

    一.BOM BOM(Browser Object Model)是指浏览器对象模型, 它使 JavaScript 有能力与浏览器进行“对话”. 1. window 对象 一些常用的Window方法: ( ...

  2. DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录

    DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录 前面部分是自己的记录,后面方案部分是成功安装驱动+桌面的正解 问题的开始在于:登录不了桌面,停留在重复 ...

  3. java 偏向锁、轻量级锁及重量级锁synchronized原理

    Java对象头与Monitor java对象头是实现synchronized的锁对象的基础,synchronized使用的锁对象是存储在Java对象头里的. 对象头包含两部分:Mark Word 和 ...

  4. Python——列表、元祖、字典、集合的基本操作

    列表 1. 列表——增 (1)append li = ['xcsd', 'cdc', [1, 5, 2], 'eht', '辛辰'] li.append('nihao') print(li) #['x ...

  5. MNIST数据可视化

    一.数据准备 二.数据说明 可以看出图片数据在偏移量为第16字节开始存,每28X28字节存放一张手写字图片.而label是从偏移量为第8字节开始存,每个字节存放一个label. 三.matlab201 ...

  6. Kubernetes Kubelet安全认证连接Apiserver

    Kubelet使用安全认证连接Apiserver,可以用Token或证书连接.配置步骤如下. 1,生成Token命令 head -c /dev/urandom | od -An -t x | tr - ...

  7. 知识点:Mysql 基本用法之流程控制

    流程控制 一. 条件语句 if 语句实例: delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = ...

  8. 从OsChina Git下载项目到MyEclipse中

    前提是,拥有权限下载 1.进入MyEclipse,点击File-->Import,选择Git,点击“Next”,如下图: , 2.选择“URI”,点击"Next" 3.输入项 ...

  9. Rest API的简单应用

    写在前面 最近一直在搞通过Rest api的方式读取sharepoint文档库中的内容.有些地方需要注意,在此做下记录. 步骤 启动sharepoint服务器的服务 这里可以使用脚本的方式进行启动,脚 ...

  10. java多线程中并发集合和同步集合有哪些?区别是什么?

    java多线程中并发集合和同步集合有哪些? hashmap 是非同步的,故在多线程中是线程不安全的,不过也可以使用 同步类来进行包装: 包装类Collections.synchronizedMap() ...