我提个问题吧:
我使用 docbook、Sphinx、asciidoc,都依赖一定版本的 TeX Live,还依赖大量特定版本的 Python 包。请问怎样使用 TeX Live 自身的包管理器统筹规划、自动处理这些依赖?
使用系统自带的包管理器安装 TeX Live,后面这些东西的安装、升级,都全自动,省心不说还不出问题。
这个手动装、那个手动装,最后的结果就是这些东西全部一起手动装,然后永不升级直到换电脑。
我提个问题吧:
我使用 docbook、Sphinx、asciidoc,都依赖一定版本的 TeX Live,还依赖大量特定版本的 Python 包。请问怎样使用 TeX Live 自身的包管理器统筹规划、自动处理这些依赖?
使用系统自带的包管理器安装 TeX Live,后面这些东西的安装、升级,都全自动,省心不说还不出问题。
这个手动装、那个手动装,最后的结果就是这些东西全部一起手动装,然后永不升级直到换电脑。
[quote=" 奇瑞艾瑞泽"][/quote]
我很奇怪你居然没看懂我说的 texlive 本身就自带包管理系统. 完全可以在命令行里或者 gui 的包管理器里直接升级. 我贴的图已经清楚的表明了这点. 你只要打开包管理器, 载入源, 就能升级, 按下鼠标即可. 能升级系统的包, 就一定能操作 texlive. 我这里并非反对用 linux 发行版自带的 texlive. 我只是反驳楼上某人说刘海洋的书在误导人的说法. 如果认为刘海洋有问题, 就到水木的 tex 版去提建议.
这个. 我非常惊讶于你对虚拟包的理解 (尽管你说用了 9 年, 我不是鄙视你, 毕竟每个人感兴趣的点不同)… 你大概根本没用过虚拟包, 或者不懂虚拟包根本不存在" 填实" 的说法. 因为文件根本就不同好吗. 虚拟包的原理是用一个空包, 但在这个空包的依赖关系上填写" 提供 tex 的各种依赖", 也就是直接骗过系统的包管理器. 包管理器在装 kile 这种依赖 tex 的软件的时候, 会认为系统已经安装了 texlive. 你最好自己玩下虚拟包的概念, 很有意义的.
同上的回答. 你只要理解了虚拟包的概念, 就不会问这种问题.
→ 这有力的说明了这个人根本就没用虚拟包. 如果连 octave 的以来都解决不了, 我还会认为这是最优解? 你也太…
呵呵… 说明你对独立的包管理根本就不懂或者没体验过. 你先搞清楚有些包管理器为什么会影响到系统的包管理器. 你这些概念没搞清楚只会自已在那猜想.
动手一遍永远比你猜想更有意义.
自己理解了虚拟包就不会问这个问题. 同上面的回答. 如果你还是有疑问, 我会详细给你解答原理. 行不?
你认为我会那么蠢的用手动装 A, 手动装 B 来解决依赖? 虚拟包如果那么蠢, 那还推荐它干嘛啊. 这不是自找麻烦么. 你还是静下心来去了解下. 我理解你的冲动.
恩。假如说你更新 TeX Live 之后和某个其他的依赖 TeX Live 的软件包不兼容了呢?
或者说你升级了系统里某个其他软件包,该软件包依赖最新版本的 TeX Live(已经进入源),但是你忘记再更新 TeX Live 的包管理器了呢?
再最后,实际上用光盘安装的人当中,绝大部分人都是不会更新的。这一点至少我身边的人几乎全部都是永不升级的。
再比如说,你自己以前安装 TeX Live 的时候用 ISO 装了,只安装了部分 TeX Live 包。以后再安装另外一个软件,结果发现它依赖的一些 TeX 包你当时没有安装上,这个时候你就只能自己手动排查、补装了。烦心又费时。
我确实没用过虚拟包。
1)填实的说法是上面那个帖子的争论里提到了,就提出者的资历和水平,我完全深信不疑,她做的软件包是企业发行版水平的。
2)我完全理解虚拟包的原理,就是一个写提供依赖的空包。我水平虽然不如女王,但是自己也打过 RPM 包,都知道这些东西是怎么回事。但是系统更新这个包的时候,就存在将其填实的可能性。
2)关于 Octave 那个,争论的时候做过试验了,至少 CTAN 那个虚包,无法阻止包管理器在安装 Octave 的时候要求再次安装软件源里面的。Octave 依赖 texinfo,虚拟包不能提供 texinfo 依赖。 srpm 修改 spec 重新编译 Octave 安装也讨论过了,也不可行。最后得出的结论是要用源里面装。
最后,用源装比用 ISO 装方便得多,就这么简单。只需要点几次鼠标、或者敲一行命令,就能有一个即时能用的 TeX 系统了。 那些又是光盘,又是虚包的网文,首先就是在吓唬读者。他们往往导致读者弄半天还配置不好。要开始用 TeX,最轻松简单的方法就是用源装。
关于你说的动手。不好意思我系统里的 TeX 好好的,系统用起来爽得很。我才不会没事找事给自己找麻烦。很久以前我也是装过 ISO 的。在 Windows 和 Mac 下装 TeX,我也装过,痛苦得很。Linux 方便爽快。
我更新 texlive 之后凭什么会和依赖 texlive 的软件包不兼容? 你到底用那些依赖 texlive 的软件没? 你到底知不道他们到底依赖于什么部件? 我一再告诉你自己亲自动手试验,ok, 你既然选择不动手, 我就直接告诉你, 不存在这个问题. 我用了那么多年的 tex 了, 从早期打包一个 iso 镜像,win/linux/mac 三系统共用开始, 到现在多种 linux 下的使用 (ubuntu,debian,archlinux) 从来没碰到过升级 texlive 后会出现依赖软件不兼容.
请你注意, 通常像 kile 这样的软件, 仅仅依赖于 tex 的系统, 而不是像 glibc 这样的库文件 (存在版本依赖). 他们通常没有版本依赖. 至少我目前没发现有版本依赖. 就算有版本依赖, 那只要虚拟包里写进去即可. 和 texlive 系统没有任何关系.
至于身边的人是否永远不升级, 这道不重要. 有很多原因造成他不升级:1 不懂 texlive 本身的包管理. 你最好向他们普及下这个知识. 很多人不知道. 只知道拿镜像安装.2.texlive 不仅仅是镜像, 他是一个在线安装且实时更新的系统. 他不是光盘!! 3. 就算不升级也问题不大.
完全可以后续安装. 和 linux 系统的包管理没有任何本质上的区别. 事实上从安装开始就可以在线定制. 最简单的方法就是一股脑统统装上去.
请你给我原始的帖子, 我要看原始内容. 你的复述让我很奇怪. 另外玛丽苏不至于那么蠢吧.
如果虚拟包不能提供 texinfo 依赖, 说明这个虚拟包没写好. 再写一个虚拟包就是. 我没用过 suse 的那个虚拟包, 我都是自己写的虚拟包. 很容易修改下 suse 的虚拟包.
===>ps. 我刚看了下,texlive 本身不提供 texinfo 依赖,texinfo 是独立的一套软件. 所以官方那个虚拟包没问题.
我手头没有 suse 系统, 但我这里的 debian 系统的 octave 只要求 texinfo 依赖.
Depends: libamd2.2.0 (>= 1:3.4.0), libarpack2 (>= 2.1), libblas3 | libblas.so.3 | libatlas3-base, libc6 (>= 2.11),
libcamd2.2.0 (>= 1:3.4.0), libccolamd2.7.1 (>= 1:3.4.0), libcholmod1.7.1 (>= 1:3.4.0), libcolamd2.7.1 (>=
1:3.4.0), libcurl3-gnutls (>= 7.16.2), libcxsparse2.2.3 (>= 1:3.4.0), libfftw3-3, libfltk1.1 (>= 1.1.7),
libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libglpk0 (>= 4.30), libgomp1 (>=
4.2.1), libgraphicsmagick++3, libgraphicsmagick3 (>= 1.3.5), liblapack3 | liblapack.so.3 | libatlas3-base,
liboctave1, libpcre3 (>= 8.10), libqhull5 (>= 2003.1), libqrupdate1 (>= 1.0), libstdc++6 (>= 4.6),
libumfpack5.4.0 (>= 1:3.4.0), zlib1g (>= 1:1.1.4), texinfo, octave-common (= 3.6.2-5+deb7u1)
显然和 texlive 的虚拟包不冲突. 难道 suse 不能单独安装 texinfo? 我这里的 debian/archlinux 的 octave 工作的没有任何问题. 如果你有疑问, 我可以马上测试下 suse 最新版. 或者你给我原始的讨论连接, 我来看下到底怎么回事. 你的叙述太模糊了.
真是搞笑, 吓唬谁了? 推荐 texlive 的官方包就没有任何问题.texlive 同样可以在线安装和升级. 就那么简单. 你并不需要下 iso(下载也很方便, 很多人可能不具备网络条件). 官方的 texlive 具有最标准的 TDS 目录结构 (安装完毕就是绿色版), 即使重新安装 suse 都不需要重新安装. 对于初级用户, 无论哪种方法都是没关系.
补充点, 请你告诉我什么情况下出现" 填实" 的现象. 既然是学理工科的, 就以证据为准.
因为实在太出乎我所料了. 虚拟包是否填实, 完全在于你怎么写这个虚拟包的依赖关系. 我这个虚拟包的文件名根本在系统里不存在, 你如何填实? 这不是无中生有么.
你反复假设我没亲自动手实验过。
我每天都在用这些软件你以为我没用过?
链接我说了就在楼上啊。torbai 发的。好像在第二页。我确实很懒不想重新发。
是的。再写一个虚拟包。为了用官方的 ISO 写虚包,还叫做方便? 我想绝大部分人都会嫌麻烦的。 至少我不愿意,我觉得用软件源比手动装 + 虚包好多了。
另外你说如果有包前面没装,后面其他软件依赖,可以再手动安装。
那是不是需要手动排查依赖关系了?
使用官方源安装,这些都是全自动的,不需要手动。比用 tlmgr 方便。
虚拟包写版本,那就更复杂了。
系统源的更新虽然没 CTAN 那么快,但是也是跟上进度的,基本上每年 texlive 发布新版之后下一个发行周期就能跟进。实在是没有这样安装的必要。
最后我想说,我感觉你是 TeX 爱好者。在 TeX 方面造诣肯定比我高,我只是用 TeX 打打作业、打打论文的人罢了。
我一般非正式论文,和数学公式少的文档,都用 Sphinx、AsciiDoc 这些东西。
但是我曾经是个桌面系统折腾爱好者。现在不折腾,也还是 Linux 桌面爱好者。对 Linux 桌面的操作,我自认为自己还是有一定心得的。不敢说完全准确,至少装个 TeX 一类的,对于一般向我这样就打个论文、交个作业的人而言,我对自己给别人推荐的方案是有信心的。
无论如何,对于新手和一般用户,我都不会推荐用光盘安装的。我想这个建议是正确的。
对于你这种 TeX 爱好者,可能会觉得系统源更新慢了一点点吧? 不过 openSUSE 有 OBS,所以就算嫌系统源更新速度不够快,照样有 ISO 之外的解决方案。
既然你已经承认“需要写虚拟包了”,也就是承认了手动装比用源装麻烦了。
因为用源装,实在是不会出现需要用户来找、写、装虚包的情况,一切都是全自动。
关于填实,既然你不愿意往楼上翻,我就费下劳把地址贴出来 [[ 已放弃 ] 光盘安装 texlive2012,安装了 texlive-dummy,其他软件依然依赖 texlive - #2 by marguerite)
我是不会在自己的系统上这样折腾的。软件源里装的足够用、足够新、足够省心,我是绝对不会在自己的电脑上手动安装 CTAN 的 TeX Live 发行的。
我承认个屁啊. 没看我整句话的前后递进关系吗? 到底现在在讨论虚拟包的困难程度还是在讨论海洋的建议的靠谱性?
我看了这个连接,1. 对玛丽莎的填实说法强烈质疑. 2. 你别急, 关于 octave 我会亲自测试. 马上就测试. 我就不信 suse 就那么奇葩? 除非它确实和 debian/archlinux 有迥异的改动.
既然你已经开始使用“个屁啊”这样的不文明用语,那我也说得直白一点了。
虚拟包的困难程度和刘海洋建议的靠谱性,难道是无关的吗?
我想我们论坛里几个人之所以反对刘海洋所建议的装 CTAN,而是强烈建议装官方源,就是因为用源软可以最大限度的避免日后的麻烦。
而我所说的“既然你已经承认“需要写虚拟包了”,也就是承认了手动装比用源装麻烦了。”,也不过就是一个逻辑递推啊。 你承认“需要写虚拟包”了,对吧?
这不是装 CTAN 比装源麻烦的一部分吗?后面这部分,是我的推导,这点确实如此。
我想没有太多理由去鼓励新手装 CTAN 不装源。 当然我们视角不同。 我是从 Linux 爱好者的视角看,我觉得尽量用源装软件是使用 Linux 的一个重要的、良好的习惯。从使用角度说,至少就目前看,源里的 TeX Live2013 不旧,完全可以用。 从方便来说:不用填虚包、不用担心日后的依赖冲突、不用在日后手动解决其他软件的依赖。 我想这已经足够说明“装 CTAN 不装源”这一建议并不是最优解了。至少对大部分新手来说不是这样的。
请你再次告诉我所谓的日后麻烦到底在哪里? 我前面说的很清楚, 虚拟包要不要重写根本 不重要 !! 只是你觉得心里不舒服, 就可以重写一个.
我已经测试过了. 安装虚拟包后按照 octave 没有任何问题. 看附图.
** 你口口声声的一再告诉我会碰到后续依赖问题, 会出现以来冲突, 会日后要手动解决其他软件的依赖.
请问到底出现在哪里? 出现了吗? **
你自己前面对虚拟包的理解完全错误, 被我指出来死不悔改, 还继续狡辩说需要手工依赖. 还说要什么自己编译 octave. 真是莫名其妙的建议!
我从 texlive2007 年开始就专门制作过多系统共用的免安装版 iso 镜像给别人使用, 从来没出现过所谓的依赖关系.
texlive 的官方根本不会影响 linux 系统的包管理系统. 它有自己的独立包管理系统. 你自己的 suse 下爱怎么装都无所谓, 影响在哪里?
自己看你的前面说的话: 啊, 都是不懂 linux 的人, 都是用惯 win 习惯的人, 怎么的怎么的… 你了解具体的 texlive 系统吗?
如果了解还能说出这种话来? 到底谁不做调查就轻易下结论了? 还 linux 习惯.
有句话叫做,理屈刺穷。
假如你真的自己在理,何苦发火呢?
我已经再三强调,我没有兴趣做任何测试,因为不值得花这个时间。
另外我提醒你,你已经篡改了你自己的论题。
你强调的是:安装 CTAN 是最优解。
请问你证明了安装 CTAN 比用源安装好吗?
那么请你做这个实验吧:用 CTAN 的光盘装一个最小化的,只有 100M 的 TeX Live,然后随便安装一个依赖某个不包含在这 100M 之中的包。 你试试?
我不是才提出这个论题吧? 要不要我把刚才的帖子找出来?
我觉得,发火,就是投降的一种表现。
我再想说一下。
什么叫做“虚包没有写全”
哦。那么也就是说,我要自己清楚自己安装了哪一些 TeX 包,然后写虚包。
请问写虚包不属于手动处理依赖关系的一部分吗? 怎样写好虚包、怎样写全虚包,你来教我们做一下啊。
如果我不用 CTAN 装,用源装,在这上面耗费的时间为 0. 你写虚包、还要写准确,要多少个时间?
我觉得我已经没有必要再辩论下去了。
反正有两个基本事实:
1)使用 openSUSE 官方源安装自动、方便、对绝大部分用户来说完全够用
2)使用 openSUSE 官方源安装,日后不需要自己写虚包、配置虚包
3)使用 openSUSE 官方源安装,日后不需要手动处理任何依赖关系
正如你所言,我们都是理工科的,那么我来总结一下:
1)你的实验没有证否我提出的三点
2)你的实验没有彻底证明你修改论题之后的“使用 CTAN 光盘安装没有任何麻烦”论题(实际上已经证否了,因为你自己写了虚包,这一点是用 openSUSE 源安装所不需要的,而且你因为虚包没有写全,导致还要安装几个 TeX 包。我再进一步提问,假如说你当时没有安装这个 TeX 包,但是在虚包里你写错了,把所有 TeXLive 包全部提供了,那么安装 octave 的时候某一个本来必须的包在系统里没哟的情况下就被安装进去了,你发现不能用的时候再手动查就呵呵了)
3)你的实验完全没有证明你提出的“使用 CTAN 光盘安装是最佳方案”,你在最忌的帖子里已经对“光盘比源好”闭口不提了
最后:我对自己的论题很有自信,所以我不使用任何偏激的言论。 但是无论如何,我不会进行验证。
再增加:
请证实你所说的两套系统可以独立使用。
其实你有故意忽略了原帖中的内容。原帖作者不愿意的就是被迫装两套 TeX。你现在却故意说重复装没关系。
你做这些实验,无非只说明了一点:就是装光盘确实也可行,但是仍然不如用源装好。而已。
我前面指出的几个实验,你没有完全做,就做了一个你自己有把握的实验(而且不是我提出的)。却还有脸皮说我断章取义、死不悔改、狡辩。 你自己看看前面我们的对话,看看你多少次对我断章取义。
强制忽略依赖关系?这个可不是什么好建议。强制忽略依赖关系,对 texlive 来也许没有任何影响,但是对整个系统是有影响,有些软件(以前碰到过,忘记了具体是哪个,只记得是个工程软件)在安装前为了确保系统完整性会检查依赖关系的,如果出现依赖不完整的情况就会强制中止安装。很多时候检查依赖性不出问题是为保证系统完整性。
所以强制忽略依赖关系这种方法是不值得提倡的。
PS:其实吧,我觉得的,用源里的版本对绝大多数普通用户来说就足够了,完全没有必要追求最新版本。有时候过新的版本反而不是好事。比如说我一直用 modorncv 包来写简历,之前一直好好的,但是某次更新后就编译不了,后来才发现丫的新版的 moderncv 包把整个包的语法改变了。另外,不管怎么说,用软件源安装肯定是比使用 texlive 光盘来安装要方便的,texlive 归根结底只是个工具犯不着在上面浪费太多精力,方便才是王道。
请问您是 liangzi 吗?
网上搜索 ctexlive 第一条这个:http://thinfilm.ustc.edu.cn/~liangzi/software/CTeXlive/
如果是这样的话,那我算是遇见前辈校友了
大神说的是。。。CJK 是太老。但是 xelatex 好像还是要配置字体的吧。我当时看的是 这篇 ](GitHub - CTeX-org/ctex-kit: Macro Packages and Scripts for Chinese TeX users) 。至少在 linux 下要。新手不了解,配置字体什么最无爱了。完全不懂那一群字母什么意思。当时也是可以编译过但是会有警告。而且我觉得作为一个初学者折腾这个已经超出了学习 LaTeX 的范畴。
我的模版虽然老久而且比较初级。。。但是装源里的 TeXlive 应该是可以编译过的。。。至少我是没有自己手动安装过什么字体,就是 openSUSE 装好系统后系统里的字体。。。几乎不存在我有字体而楼主没有,当初用它也就是因为【完全不需要动字体】且比较简单,也许“包管理”把我的字体问题解决。。。
去 windows 下拷字体我是不赞同,我手头也没有 windows。
用不用包管理我个人观点还是比较宽容,你要挂在 /usr/local 下给很多系统用当然没有问题。你是老手你追求新特性在 /opt 下挂一个最新版也没有问题。但新手没有必要,手动安装,不可控的因素太多。新手肯定是先学习 LaTeX 里基本的东西,不太会接触那些经常变动的东西。连在 LaTeX 下写几个常见公式都没有学会,就去折腾用最新版,我觉得没有必要。其实刚开始学习 LaTeX,而不是实际使用,不如先不要用中文的例子。先试着用用英语,学一些基本的概念,这个肯定是没有什么大问题的。
为什么要那么推崇包管理?这里是 openSUSE 论坛。很多是用 linux 的新人(我也是,不像你是老手)。openSUSE 很稳定你只要踏踏实实用。新手不会折腾我们不希望他们自己编译个什么软件最后坏了说 openSUSE 是垃圾,openSUSE 是好发行版。看出您很推崇 xelatex,应该可以体会这种心情,你也不希望听到 Linux 下的用户因为字体的问题搞不定骂 xelatex 垃圾吧?你看到人家 LaTeX 下弄不出中文居然还有人(对。。。就是我)让人家用 CJK 也会忍不住插几句吧?openSUSE 一贯的严谨作风,openSUSE 开发非常活跃(可以去邮件列表看看),装源里的是没有问题的。你说的版本跟不上已经是过去的事情了。我想不只是 openSUSE,很多发行版都能做到这点。
顺便说一下 rpm 有厂商粘性所以至少在稳定性上强过 deb。而且 openSUSE 用的 zypper 【在安装、删除和查询软件包方面提供最为灵活和强大的选项。他还是唯一能够从命令管理软件仓库的工具。】这不是我说的,是非常经典的《UNIX/Linux 系统管理技术手册》里的原话。再次强调新手用 rpm 包管理是很少会出现问题的。手动安装大大的不推荐,而且新手绝对用不了 TeXlive 里两三个 G 的东西。我觉得没有几个人会全部用到。这两三个 G 的东西里很多是废的。浪费不少空间。
TeXlive 有包管理 TeXlive 的包管理很稳定但是我不觉得会强过发行版提供的包管理。openSUSE 里 TeXlive 的 spec 三千多行。是经过严格测试的。TeXlive 的开发人人员可以保证他们的一套系统可以即在 openSUSE 下稳定无误的工作同时又在 Debian 下稳定无误的工作?我以为是很难的。这是牺牲稳定性来追求新特性。我以为是得不偿失的。
另外作为版主说一句,论坛是公共场合请注意用语文明。
我推荐用 ** 系统全局 ** 包管理(而不是 tlmgr),一个是很方便,比装光盘方便,还有就是稳定无依赖隐患。
比如说两个在新手身上容易发生的剧本:
1)用 CTAN 光盘安装 TeX Live,再安装虚包,但是虚包没有填好,以后安装其他依赖 TeX 的软件时系统还是要再安装一个 TeX Live
2)用 CTAN 光盘安装 TeX Live,再安装虚包把所有 TeX Live 包全部填掉了,但是安装的 TeX Live 里没有装 metapost。以后安装某个软件依赖 metapost,而系统以为你已经有了 metapost,于是依赖没装齐就装上了这个软件,用户只好对 Linux 包管理怨天尤人,最后手工查找依赖关系,再用 TeX Live 的包管理器安装 metapost
我前面就提出过了,只不过没有这么明显罢了。但是他故意忽略这些东西,抓住女王提出的“填实”这两个字,狠狠骂人,实在是无法理解。
我想对于大部分用户而言,用系统源安装绝对是最优解。 另外我觉得他自己的实验恰好推翻了他自己的观点。更别说他还是在自己写了虚包的情况下了。