用AUR中腳本對libtiff4進行打包,一切正常,列出包中內容也一切正常:
pacman -Qlp libtiff4-3.9.7-3-x86_64.pkg.tar.xz
libtiff4 /usr/
libtiff4 /usr/lib/
libtiff4 /usr/lib/libtiff.so.3.9.7
libtiff4 /usr/lib/libtiff.so.4
libtiff4 /usr/lib/libtiffxx.so.3.9.7
libtiff4 /usr/lib/libtiffxx.so.4
libtiff4 /usr/share/
libtiff4 /usr/share/licenses/
libtiff4 /usr/share/licenses/libtiff4/
libtiff4 /usr/share/licenses/libtiff4/LICENSE
然而安裝之後,文件系統中會莫名其妙地多出符號鏈接:/usr/lib/libtiff.so.3和/usr/lib/libtiffxx.so.3,分別指向相應的.so.4。
pacman -Qo /usr/lib/libtiff.so.3 提示沒有包擁有它。
但卸載libtiff4時,多出來的符號鏈接會跟着一起被移除。
該包沒有INSTALL腳本,也就不會有安裝後執行的內容,所以很是奇怪多出來的符號鏈接時哪來的。
p.s.該腳本的原作者也很奇怪爲什麼會多出來符號鏈接(參見AUR中評論 2013-05-27 20:34 )
===可以忽略的故事背景===
之前折騰maya,安裝時候依賴libtiff3,libitff3又依賴libitff4。
libitff3包本身只是幾個符號鏈接,鏈接到libtiff4包會安裝的文件上。
但在安裝時候提示文件衝突,所以前去/usr/lib看到多出來的文件。
最初在自己電腦上安裝時沒怎麼在意這個問題,手動刪除符號鏈接完事。
但是最近想把它們放到社區源中(因爲鏈接經常被牆),而打包時再次出現這個問題。檢查了很久,也沒找到問題在哪。
雖然有一個可繞過本質而臨時解決的方案,但是總不如解決事情本身來得好,所以就問問有沒有人知道怎麼回事。
------ 結論 ------
pacman安裝軟件包後會調用ldconfig,ldconfig自動生成這些符號鏈接。(#2)
最近编辑记录 renyuneyun (2015-07-11 23:49:32)
知識很重要,而相當的運用能力更重要。
离线
那个符号链接是 ldconfig 管理的。你的 libttf4.so.4 文件的 soname 版本是 3,所以 ldconfig 帮你链接了。
离线
这个行为对你造成了什么困扰吗?
离线
这个行为对你造成了什么困扰吗?
是的……
在原本設定中,libtiff4包會提供libtiff.so.4,而libtiff3包提供libtiff.so.3。(雖然都是符號鏈接)
而現在libitff4包一併提供libtiff.so.4和libtiff.so.3,於是libtiff3包失去其存在意義以及(在現有的PKGBUILD基礎上)無法安裝(有文件衝突)。
有些軟件依賴libtiff3,所以就出問題了……
知識很重要,而相當的運用能力更重要。
离线
是的……
在原本設定中,libtiff4包會提供libtiff.so.4,而libtiff3包提供libtiff.so.3。(雖然都是符號鏈接)
而現在libitff4包一併提供libtiff.so.4和libtiff.so.3,於是libtiff3包失去其存在意義以及(在現有的PKGBUILD基礎上)無法安裝(有文件衝突)。
有些軟件依賴libtiff3,所以就出問題了……
那就打个空 libtiff3 包去依赖这个 libtiff4 呗。
离线
嗯……
看來是唯一方案了Orz
知識很重要,而相當的運用能力更重要。
离线