ubuntu強行修改deb安裝包依賴

        在ubuntu下安裝第三方軟件deb包,有時候會遇到一種情況,因爲這個軟件沒有在你版本上適配,或者依賴某些包而我們系統無法安裝,但使用dpkg強制安裝,也能正常使用。

        但這樣就會帶來一個問題,ubuntu的包管理apt命令無法安裝包了,使用apt install時則提示需要apt-get install -f,而執行該命令則會卸載你的包,不卸載的話又無法安裝其他包,可以說非常頭疼了。

        最近遇到這個問題,查了下發現資料不太多,於是總結記錄在這裏。

Ubuntu的deb包修改依賴安裝:


1、deb安裝前的修改:

如果編deb包,則會知道deb的依賴信息寫在control文件中,於是我們可以解壓deb,修改後重新打包。我們以krb5包爲例,非常簡單。

qujun@qujun:/tmp$ dpkg-deb -x krb5-config_2.3kord_all.deb krb-tmp
qujun@qujun:/tmp$ cd krb-tmp/
qujun@qujun:/tmp/krb-tmp$ ls
usr
qujun@qujun:/tmp/krb-tmp$ cd ..
qujun@qujun:/tmp$ dpkg-deb --control krb5-config_2.3kord_all.deb krb-tmp/DEBIAN
qujun@qujun:/tmp$ vim krb-tmp/DEBIAN/control 
qujun@qujun:/tmp$ dpkg -b krb-tmp llala.deb
dpkg-deb: building package 'krb5-config' in 'llala.deb'.


修改control文件的的Depends行,重新打包後安裝就可以了。


2、deb安裝後修改:

當然解包打包雖然只有四步,但還是稍顯麻煩,有時候順手就dpkg給裝上了,這時候也不用卸載,直接修改status文件也可。

$ sudo vim /var/lib/dpkg/status

Package: krb5-user
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 389
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Source: krb5
Version: 1.12.1+dfsg-10kord
Depends: libc6 (>= 2.14), libcomerr2 (>= 1.01), libk5crypto3 (>= 1.9+dfsg~beta1), libkadm5clnt-mit9 (>= 1.12~alpha1+dfsg), libkadm5srv-mit9 (>= 1.12~alpha1+dfsg), libkdb5-7, libkrb5-3 (>= 1.12.1+dfsg-10kord), libkrb5support0 (>= 1.12~alpha1+dfsg), libss2 (>= 1.01), krb5-config

修改Depends行,保存退出就可以正常使用apt了。


    當然這兩個都只能算取巧方法,在第三方軟件正常運行的情況下,來繼續使用apt命令。









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章