简短问题:我的系统用户(名称sharelatex
)不会在/usr/local/texlive
中搜索手动安装的TexLive,而是搜索/usr/share/texlive
(我不是知道为什么这里有这个文件夹,我没有从Ubuntu repo安装TexLive)。我的另一个普通用户和root用户可以在/usr/local/texlive
中很好地搜索。如何强制sharelatex
用户在/usr/local/texlive
中进行搜索?谢谢!
详细信息:我正在尝试将sharelatex安装到我的Ubuntu服务器上。 我使用以下方法手动安装了TexLive:
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvf install-tl-unx.tar.gz
cd install-tl - *
sudo ./install-tl
安装时,我创建了一个名为sharelatex
的系统用户,并通过这两个命令将其添加到组sharelatex
:
sudo adduser --system --home / var / www / sharelatex --no-create-home --group sharelatex
sudo chown -R sharelatex:sharelatex / var / www / sharelatex
当我以root用户或普通用户身份登录时,输出命令
哪种乳胶
是
的/ usr /本地/的texlive / 2015 / bin中/ x86_64的-LINUX /胶乳
但是,当我尝试运行与sharelatex
用户相同的命令时:
sudo -u sharelatex哪个乳胶
输出
的/ usr /斌/胶乳
答案 0 :(得分:0)
我还认为这是与系统用户sharelatex
的$ PATH有关的问题。即使我试图将我的TexLive目录设置为/etc/environment
,我的sharelatex
用户仍然无法找到它。但是,在仔细查看sharelatex
服务文件之后,我发现当sharelatex
执行latex命令时,似乎再次设置了sharelatex
的路径。以下是如何解决它:
第1步。搜索您的新手文件sharelatex-SERVICE.conf
,其中SERVICE
应替换为web
,chat
,clsi
,...完整列表如下:
sharelatex-chat.conf
sharelatex-clsi.conf
sharelatex-docstore.conf
sharelatex-document-updater.conf
sharelatex-filestore.conf
sharelatex-real-time.conf
sharelatex-spelling.conf
sharelatex-tags.conf
sharelatex-template.conf
sharelatex-track-changes.conf
sharelatex-web.conf
如果您按照sharelatex github的安装手册进行操作,这些文件可能位于/etc/init
。
第2步。在每个文件中,您将看到以下行:
LATEX_PATH =的/ usr /本地/的texlive / 2015 / bin中/ x86_64的Linux的
此行将LATEX_PATH变量设置为右侧TexLive。在文件的结尾处,您将看到将执行TexLive命令的行:
exec sudo -u $ USER -g $ GROUP env SHARELATEX_CONFIG = $ SHARELATEX_CONFIG NODE_ENV = production PATH = $ PATH:$ LATEX_PATH $ NODE app.js>> /var/log/sharelatex/$SERVICE.log 2>& 1
交换$PATH:$LATEX_PATH
成为PATH=$LATEX_PATH:$PATH
需要做什么。通过这样做,将首先搜索右侧TexLive的目录。
对上面列出的所有sharelatex-SERVICE.conf
进行此更改。
编辑完所有这些文件后,您可能需要重新启动所有这些服务(搜索重启启动服务),或者只是重启机器。