我正在寻找一个完全可移植的 TeX 系统,并且想知道:是否有可能设计一个可以在 Windows、Linux 和 MacOS 上“同时”运行的安装方案?
我认为 TeXLive 是最佳选择,但我更希望避免维护三个单独的 TeXLive 安装。例如,我希望三个安装共享包数据库。
我将使用 32Gb 的 USB 记忆棒,以防万一。
附言:我想我在这里发现了一些东西...当我有一个可运行的原型时会回复。
编辑:阅读后这张纸条我设法用 UDF 格式化了一个 USB 棒,并在 Linux 和 Windows 中读写它(需要在 Mac 上进行一些测试)。这是实现互操作性的第一步。
编辑 2:好吧,事实证明,之前的说明毫无用处(Windows 下的分区表损坏了),我发现关于超级用户的这个问题一切运行正常。剩下的唯一步骤就是编写几个脚本来设置环境变量,然后我们就大功告成了 ;)
答案1
在某种程度上,TeX Live 可以实现您想要的功能,但有一些注意事项。人们通常希望在网络共享上设置多操作系统,并且对此有很好的支持。在 USB 上,事情会更复杂,因为 Windows 文件系统不支持符号链接[*](USB 上通常使用 FAT32)。
解决该问题的一种方法是使用--portable
选项进行安装,然后添加所需的任何平台(Windows,OS X等;这只能在类 Unix 操作系统上安装时才能完成,同样,由于符号链接问题),最后将所有内容复制到具有取消引用符号链接的 USB 记忆棒以复制链接的文件。
不过,之后您将无法更新此类安装(或者更具体地说,使用符号链接的二进制包的更新将不起作用[*])。但是,二进制文件通常不会在每年的发布之间更新,因此您实际上可能会避免这种情况,但没有人能保证[**]。
另一种可能的破解方法是删除除 Windows 之外的所有平台,但只从 TL 数据库中删除,而不删除其实际文件,这样 tlmgr 就被愚弄了,不会对“有问题的”软件包进行任何更新。这种设置在某些情况下可能很脆弱 [**],需要手动编辑 TL 数据库,除非他们确切知道自己在做什么,并且可以从可能的损坏中恢复,否则我不建议任何人这样做。
另一种更新闪存盘系统的方法是继续更新原始的“源”安装,然后将其与 USB 安装同步,这有点不太方便,也意味着无法随时更新,但另一方面不应该导致任何问题(最后一句)。
[*] 编辑:澄清符号链接的问题 - TL 软件包仅作为压缩的 tar 存档(+ 有关软件包的一些元数据)存储。符号链接与常规文件一起存档,所有内容在软件包安装和/或更新期间提取。如果文件系统不支持符号链接,则提取将失败,因此软件包安装/更新将失败。
[**] 编辑 2:TL 在更新之前会进行包备份,因此更新失败不会造成致命影响(旧版本将被恢复),但如果旧版本与依赖包存在不兼容性,则可能会很脆弱。