如何防止 Fedora 28 的 texlive 打包程序干扰我维护 TeX Live 原始安装的自由?

如何防止 Fedora 28 的 texlive 打包程序干扰我维护 TeX Live 原始安装的自由?

这实际上是对之前关于在 GNU/Linux 系统上从上游安装 vanilla TeX Live

该过程的一部分涉及安装一个虚拟包,该虚拟包满足发行版的包管理器的要求,即在安装需要 TeX 安装的程序(例如 TeX 编辑器、前端和相关软件)时安装相关的依赖项。

在 Arch Linux 中,这没有问题,并且 Debian 衍生产品似乎也相当灵活。

然而,Fedora 的问题更多。此外,随着 Fedora 28 的发布,烦恼已迅速发展成为一场全面战争。我正在与dnf与他人进行一场生死搏斗。包装不仅呈指数级恶化。它是??!!疯狂。侵略性。侵扰性。阴险。暴力。粗鲁。疯狂。疯狂。香蕉。丑陋。爆发性。破坏性。这是极端包装的非理性逻辑结论。这是一个归谬法发行版的 TeX Live 打包。简而言之,它很疯狂。

此外,Fedora 对上游安装非常冷漠。他们问我们的软件包有什么问题?打包人员费了好大劲才打包了整个 TeX Live 树!

答案是:它们没有问题。但这是我的机器,我要求自由地在其上运行我想要的软件。如果这意味着放弃 Fedora,那就这样吧。但这似乎与 Fedora 本身所信奉的软件自由承诺的精神(尽管不是技术文字)相悖。

此外,我喜欢 Fedora,我希望我不需要离开 Fedora 就可以享受 Fedora 在其他地方支持的自由。

最初,构建一个虚拟包来满足 Fedora 的要求并不难。Fedora 24 中事情变得更加棘手在 Fedora 26 和 27 中,问题变得更加棘手,但问题并非完全无法解决。

然而,今天,我从 Fedora 26 升级到了 Fedora 28,结果,这个该死的东西竟然拉来了一大堆texlive-软件包。Fedora 的仓库中有如此多的匹配软件包,以至于dnf如果你搜索texlive或类似的东西,它都会报告找不到任何软件包texlive-d*。显然,它无法处理这么多结果,所以得出结论,根本没有。

我最终拼凑了一个.spec文件来说服dnf它允许我删除不需要的软件包,但在这里发布它超出了 SE 的字符限制,所以我把它放在https://pastebin.com/QXFjqW9C该文件有 11593 行,23249 个单词和 347644 个字符。

这显然是疯了。此外,每次 Fedora 的打包程序从 TeX Live 获得新包时,都需要不断更新该文件。也就是说,不断地。这是因为 Fedora 的一些包似乎直接依赖于最低级别的打包,因此,例如,升级安装了 Kile 的系统会引入特定的 LaTeX 包 - 而不仅仅是一些元包或包组,正如我所料。

但是,我找不到避免这个困难的方法。我认为,像这样的虚拟包是实现此目的的正确方法,但我无法让它工作。

因此我也编辑了/etc/dnf.conf

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
excludepkgs=texlive-a*,texlive-b*,texlive-c*,texlive-e*,texlive-f*,texlive-g*,texlive-h*,texlive-i*,texlive-j*,texlive-k*,texlive-l*,texlive-m*,texlive-n*,texlive-o*,texlive-p*,texlive-q*,texlive-r*,texlive-s*,texlive-t*,texlive-u*,texlive-v*,texlive-w*,texlive-x*,texlive-y*,texlive-z*,texlive-0*,texlive-1*,texlive-2*,texlive-3*,texlive-4*,texlive-5*,texlive-6*,texlive-7*,texlive-8*,texlive-9*,texlive-da*,texlive-db*,texlive-dc*,texlive-dd*,texlive-de*,texlive-df*,texlive-dg*,texlive-dh*,texlive-di*,texlive-dj*,texlive-dk*,texlive-dl*,texlive-dm*,texlive-dn*,texlive-do*,texlive-dp*,texlive-dq*,texlive-dr*,texlive-ds*,texlive-dt*,texlive-dv*,texlive-dw*,texlive-dx*,texlive-dy*,texlive-dz*,texlive-d0*,texlive-d1*,texlive-d2*,texlive-d3*,texlive-d4*,texlive-d5*,texlive-d6*,texlive-d7*,texlive-d8*,texlive-d9*,texlive-dua*,texlive-dub*,texlive-duc*,texlive-dud*,texlive-due*,texlive-duf*,texlive-dug*,texlive-duh*,texlive-dui*,texlive-duj*,texlive-duk*,texlive-dul*,texlive-dun*,texlive-duo*,texlive-dup*,texlive-duq*,texlive-dur*,texlive-dus*,texlive-dut*,texlive-duu*,texlive-duv*,texlive-duw*,texlive-dux*,texlive-duy*,texlive-duz*,texlive-du0*,texlive-du1*,texlive-du2*,texlive-du3*,texlive-du4*,texlive-du5*,texlive-du6*,texlive-du7*,texlive-du8*,texlive-du9*,texlive-duma*,texlive-dumb*,texlive-dumc*,texlive-dumd*,texlive-dume*,texlive-dumf*,texlive-dumg*,texlive-dumh*,texlive-dumi*,texlive-dumj*,texlive-dumk*,texlive-duml*,texlive-dumn*,texlive-dumo*,texlive-dump*,texlive-dumq*,texlive-dumr*,texlive-dums*,texlive-dumt*,texlive-dumu*,texlive-dumv*,texlive-dumw*,texlive-dumx*,texlive-dumy*,texlive-dumz*,texlive-dum0*,texlive-dum1*,texlive-dum2*,texlive-dum3*,texlive-dum4*,texlive-dum5*,texlive-dum6*,texlive-dum7*,texlive-dum8*,texlive-dum9*,texlive-dumma*,texlive-dummb*,texlive-dummc*,texlive-dummd*,texlive-dumme*,texlive-dummf*,texlive-dummg*,texlive-dummh*,texlive-dummi*,texlive-dummj*,texlive-dummk*,texlive-dumml*,texlive-dummm*,texlive-dummn*,texlive-dummo*,texlive-dummp*,texlive-dummq*,texlive-dummr*,texlive-dumms*,texlive-dummt*,texlive-dummu*,texlive-dummv*,texlive-dummw*,texlive-dummx*,texlive-dummz*,texlive-dumm0*,texlive-dumm1*,texlive-dumm2*,texlive-dumm3*,texlive-dumm4*,texlive-dumm5*,texlive-dumm6*,texlive-dumm7*,texlive-dumm8*,texlive-dumm9*,texlive-dummya*,texlive-dummyb*,texlive-dummyc*,texlive-dummyd*,texlive-dummye*,texlive-dummyf*,texlive-dummyg*,texlive-dummyh*,texlive-dummyi*,texlive-dummyj*,texlive-dummyk*,texlive-dummyl*,texlive-dummym*,texlive-dummyn*,texlive-dummyo*,texlive-dummyp*,texlive-dummyq*,texlive-dummyr*,texlive-dummys*,texlive-dummyt*,texlive-dummyu*,texlive-dummyv*,texlive-dummyw*,texlive-dummyx*,texlive-dummyy*,texlive-dummyz*,texlive-dummy0*,texlive-dummy1*,texlive-dummy2*,texlive-dummy3*,texlive-dummy4*,texlive-dummy5*,texlive-dummy6*,texlive-dummy7*,texlive-dummy8*,texlive-dummy9*

仍然很疯狂,但没那么疯狂,而且可能比假包装稍微坚固一些。但我不确定这种方法是否明智或安全。

dnf现在告诉我没有texlive*找到已安装的软件包或在存储库中,但搜索texlive-dummy-cfr仍然发现我尝试制作一个虚拟的软件包。

我宁愿不dnf这样束缚:我想阻止它安装东西 - 找不到它。但似乎只提供了大锤。好的一面是,大多数时候dnf都不会承认任何软件包的存在texlive,所以我想从实际目的来看损失不大。

但是,即使这样做,也无法完全消除texlive-软件包的污染。尽管树是空的,/usr/share/texmf但空目录的层次结构却相当完整。dnf告诉我这是由 提供的,但尚未安装。所以我甚至无法用疯狂的大锤和疯狂的大锤texlive-base彻底杀死它。.specdnf

很难相信,在不放弃 Fedora 的情况下,没有比这些临时解决方案更干净、更优雅的方式来安装 Kile。

Fedora 上最好、最优雅、最强大的解决方案是什么?

注意:如果不太明显,安装 Fedora 的软件包是不是一个选择。摆脱 Fedora一种选择,但这是我的最后手段。

相关内容