![下载中断后,如何恢复 tex live 的 install-tl 安装?](https://linux22.com/image/1060104/%E4%B8%8B%E8%BD%BD%E4%B8%AD%E6%96%AD%E5%90%8E%EF%BC%8C%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%20tex%20live%20%E7%9A%84%20install-tl%20%E5%AE%89%E8%A3%85%EF%BC%9F.png)
默认安装的sudo apt-get install texlive
Tex Live 是 Ubuntu 14.04 LTS 附带的 2013 版,出现版本问题后,我不得不将其完全删除并获取较新的版本。这指导麦克贝茨在课程中非常有用。最近我一直在关注这通过“netinstaller”安装TexLive的答案指南,但是默认的安装过程要经过非常长的一段时间。
更糟糕的是,在安装进行到一半时,网络中断导致安装突然结束。我现在很后悔没有使用C
设置收集包的选项来减轻整体负担。与此同时,我按照终端底部出现的信息再次执行了install-tl
with--installation.profile
标志。我一度以为,这可能是恢复安装的唯一方式。我试了一下,但后来却失望了。这又开始了安装时下载所有软件包的整个过程。
但是,让我感到困惑的是,我怎么才能避免再次重复整个下载安装包的过程呢?如果有人在这件事上欺骗我,我并不介意,但我不太明白文档。
答案1
我在尝试安装 TeX Live 2017 时遇到了这个问题。最好的方法似乎是先下载整个 TeX Live repo(从附近的镜子),然后将安装程序指向您的本地副本。因此,首先您要下载文件(请参阅TUG 文档):
rsync -a -v --delete --progress rsync://somectan/somepath/systems/texlive/tlnet/ /your/local/dir
使用该命令时要小心,因为它会通过删除本地目录中远程目录中不存在的任何内容来制作精确镜像!如果下载失败,再次运行上述命令将从上次失败的文件传输中恢复下载。
完成后,您可以像这样运行安装程序:
./install-tl -repository /your/local/dir
如果您的连接状况很差,那么您可能希望 rsync 在断开连接时自动恢复,并恢复部分文件传输。我使用了以下脚本:
#!/usr/bin/env bash
# remote mirror
MIRROR=rsync://somectan/somepath/systems/texlive/tlnet/
# local directory (local files NOT on the mirror will be DELETED)
LOCAL=/your/local/dir
# flags for the transfer
RSYNC_FLAGS="--archive --delete --timeout=10 --partial-dir=.rsync-partial $MIRROR $LOCAL"
# some colours for output
RED='\e[1;31m'
NC='\033[0m'
# test run (i.e., don't really download or delete anything)
cd $LOCAL
rsync --dry-run --stats $RSYNC_FLAGS
# prompt to check the output
echo -e "\n${RED}Warning${NC}: About to ${RED}delete${NC} all non-mirror files in ${RED}$LOCAL${NC}\n"
# confirmation to continue
read -p "Continue (y/N)? " confirm
if [ "$confirm" != "y" ]; then
echo "Aborting"
exit 1
fi
# do the real rsync transfer (and loop until it's finished)
RESULT=1
while [ $RESULT -ne 0 ]; do
echo "STARTING ($RESULT) @" `date`;
# add flags to see what's being transferred
rsync --verbose --progress $RSYNC_FLAGS
RESULT=$?
echo "Sleeping for 10 seconds"
sleep 10
done