我知道这可能不是这个论坛的问题,而是 SS 的问题;但是,有人可能会给我提示。我在 Ubuntu 和 OS X 中都遇到了这个问题。
当我想安装某些东西(例如,rubber
或 gedit LaTeX 插件)时,我需要安装 TeXLive 组件(texlive-base 等)。问题是我已经安装了 TeXLive 系统——实际上,我有一个比在默认系统存储库(Ubuntu 或 Mac Ports 的)中找到的版本更新的版本。我所做的就是覆盖此行为,下载我想安装的程序的主文件(例如sudo apt-get download rubber
),然后安装它而不安装依赖项(例如sudo dpkg -i rubber 1.1-2.4ubuntu1
)。有时这有效,但有时我会收到有关存储库数据库损坏的错误消息。
有没有什么办法可以让我的系统知道我已经安装了新版本的 TeXLive?
答案1
如果你真的想阻止apt
安装 TeX Live 软件包,你可以尝试创建并安装一个虚拟软件包,如 TeX Live Debian 页面(Mike 的第一条评论中有链接)中所述,或者这篇文章来自 TeXblog。您可能需要更新软件包列表。此外,您应该知道(如 texblog 帖子的评论中所述),如果您要安装的任何软件包依赖于特定(或最小)版本的 texlive 软件包,则此方法不起作用:这是 Debian 打包系统的限制/功能,虚拟软件包无法满足版本依赖性。
因此,我的建议是,除非您的磁盘空间非常紧张,否则请apt
安装它想要的任何 texlive 包(您可以使用开关--no-install-recommends
(或-R
for aptitude
)稍微限制这一点,以便只安装硬依赖项)。然后,您所需要做的就是确保您的 TeX live 安装始终排在第一位PATH
,不仅在您的 shell 中,而且在您的图形环境中也是如此。我已经使用这个解决方案有一段时间了,一切都很顺利。
正确的设置方法PATH
取决于您的系统,但这里有一些提示:
/usr/local/bin
您可以在安装时选择相应的选项,或tlmgr path add
稍后运行(具有足够的权限),从本地安装安装到程序的符号链接。通常这已经足够了,因为/usr/local/bin
已经在您的PATH
早期位置。在类似 Debian 的系统上,
/etc/environment
是设置系统范围的好地方PATH
。
答案2
使用 Macports,软件包将 texlive 组件列为依赖项,并且由于未安装 Macports 版本,它会尝试通过下载和安装来解决此问题(您会在其他查找 python 之类的东西的地方看到它,并且不会使用系统安装)。
我不太了解 Ubuntu,但我认为它们是同一件事。