Ubuntu服务器中的系统用户无法搜索正确的TexLive路径

时间:2015-11-27 14:41:46

标签: path latex ubuntu-14.04

简短问题:我的系统用户(名称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 /斌/胶乳

1 个答案:

答案 0 :(得分:0)

我还认为这是与系统用户sharelatex的$ PATH有关的问题。即使我试图将我的TexLive目录设置为/etc/environment,我的sharelatex用户仍然无法找到它。但是,在仔细查看sharelatex服务文件之后,我发现当sharelatex执行latex命令时,似乎再次设置了sharelatex的路径。以下是如何解决它:

第1步。搜索您的新手文件sharelatex-SERVICE.conf,其中SERVICE应替换为webchatclsi,...完整列表如下:

  • 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进行此更改。

编辑完所有这些文件后,您可能需要重新启动所有这些服务(搜索重启启动服务),或者只是重启机器。