在工作中,我在 Ubuntu 14.04.1 机器上设置了一个小备份脚本。该脚本将我的机器备份到外部硬盘驱动器。完成后,它会将一个 LaTeX 项目复制到我的 Dropbox 并对其进行编译。这个项目是我工作的某种日志。
我知道这是一个非常规的用例,我可以直接复制源代码或将其推送到 git repo,但首先 git 有点小题大做,其次已经有两个例子,我很高兴在我的手机上以 pdf 格式保存它,因为我必须启动 tty shell,因为 gnome 无法启动。
现在的问题是,不知为何 pdflatex 和 lualatex 都告诉我找不到文件.sty
。备份脚本如下:
#!/bin/bash
# .... some system backup code ....
## sync linux setup document to Dropbox
# remove .pdf in order to guarantee that project is compiled
rm /home/user/Documents/LaTeX/logBook/logBook.pdf
# compile project in origin
make -C /home/user/Documents/LaTeX/logBook/ >> /home/user/Documents/LaTeX/logBook/makeLog
# copy files to destination
cp -rp /home/user/Documents/LaTeX/logBook/ /home/wright/Dropbox
我的Makefile
包含以下几行:
SHELL=bash
TARGET=linuxSetup.pdf
FLAGS= --shell-escape
SRC= ./*.tex ./header/*.tex ./chapters/*.tex ./references/*.bib ./titlepage/*.tex
TIKZ= ./tikz/*.tex
LL= pdflatex
all: $(TARGET)
$(TARGET): $(TARGET:%.pdf=%.tex) $(SRC) $(TIKZ)
@$(LL) $(FLAGS) $<
# makeglossaries $(TARGET:%.pdf=%"")
# makeindex -s headingsStyle.ist $(TARGET:%.pdf=%.idx)
# bibtex $(TARGET:%.pdf=%"")
@$(LL) $(FLAGS) $<
@$(LL) $(FLAGS) $<
备份脚本放置在 中/etc/init.d/backup
并包含指向 的符号链接/etc/rc0.d/S01Backup
。
脚本很简单,但它们仍然找不到文件.sty
。我尝试排除.sty
文件以查明问题是否由特定文件引起,但无论我排除多少文件,编译器总是找不到更多文件。我切换了编译器,但这似乎也不是问题所在。此外,我还通过sudo
或以 root 用户身份执行了完整的备份脚本,这两种方式都运行良好,没有任何错误。
我错过了什么?
答案1
事实证明,我之前通过 apt 存储库安装的 texlive 仍有残留。/usr/share/texlive/
(来自存储库)和/usr/local/texlive/2015/texmf-dist/tex/latex
(用户安装)中有 texlive 目录。 关闭脚本显然调用了错误的编译器,即/usr/share
。 当我通过 卸载存储库时apt-get purge
,而不是 ,apt-get remove
这个文件夹被删除了,并且 中的安装一切正常/usr/local
。