【linux】wine 安裝 apt軟件安裝包的依賴和dpkg包的覆蓋——嘗試覆蓋共享/usr/share/doc/l它與軟件包 libxxx:i386 中的其他實例不同,尚不能配置軟件包 libx

錯誤還原:

  1. 現在尚不能配置軟件包 libxxx:i386 3.2.1-4,因爲 xxx:amd64 處於一個不同的版本(3.2.1-8)
  2. 正在解包 libxdmcp6:i386 (1:1.1.2-3) …
    dpkg: 處理歸檔 /tmp/apt-dpkg-install-EgArxE/03-libxdmcp6_1%3a1.1.2-3_i386.deb (–unpack)時出錯:
    嘗試覆蓋共享的 ‘/usr/share/doc/libxdmcp6/changelog.Debian.gz’, 它與軟件包 libxdmcp6:i386 中的其他實例不同
    由於已經達到 MaxReports 限制,沒有寫入 apport 報告。
  3. 在處理時有錯誤發生:
    /tmp/apt-dpkg-install-EgArxE/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb
  4. E: Sub-process /usr/bin/dpkg returned an error code (1)
  5. dpkg 由於出現了太多錯誤,處理過程被中止了
  6. dpkg 正在處理用於 mime-support (3.60ubuntu1) 的觸發器 …在處理時有錯誤發生
  7. dpkg: 處理歸檔 /var/cache/apt/archives/libattr1_1:2.4.47-2_amd64.deb (–unpack)時出錯:
  8. 嘗試覆蓋共享的 ‘/usr/share/doc/libattr1/changelog.Debian.gz’, 它與軟件包 libattr1:amd64 中的其他實例不同
  9. 依賴: XXX 但是它將不會被安裝

前言:

我是在安裝wine的時候遇到的這個問題,弄了大概一天,學到挺多東西,也很慶幸是在安裝wine的時候遇到這個問題,因爲目前wine需要i386支持,恰巧我的系統架構是amd64的,所以即使把一些i386庫給覆蓋了,也不會有系統層的問題,因爲i386是我的foreign-architeures,否則搞錯了需要全部重裝的話,對我來說確實是個大麻煩>///<

解決問題是一個重要目標,另一個大概是學到東西加深理解吧。
解決問題放在最後面,節省時間者可以直接點擊目錄的解決方案跳到最後。
wine的安裝教程------->>>>>: 傳送門

環境:

弄清語境是解決問題的第一步,是什麼環境,什麼內核,什麼架構?既然都用linux系統了,還是做個明白人吧,不要糊糊塗塗地過生活了。(這樣等你做卡巴死機和重裝星人的時候,也算是死的明明白白,或者可以避免變成上述兩種人)

1.查看系統內核版本:uname -a
在這裏插入圖片描述2. 查看cpu:lscpu
在這裏插入圖片描述
3.查看主架構:sudo dpkg --print-architecture 其實可以看作64位系統
4.查看拓展架構:sudo dpkg --print-foreign-architectures 可以看作32位系統
如果你用windows(這不是廢話🏇),那你知道,windows下都有system32和system64,然後下面很多 xxxx.dll 庫,這是爲了方便兼容。linux也是這個道理。
在這裏插入圖片描述

出錯信息:

正準備解包 .../00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb  ...
正在解包 libgcc1:i386 (1:8.4.0-1ubuntu1~18.04) ...
dpkg: 處理歸檔 /tmp/apt-dpkg-install-AsAJTT/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb (--unpack)時出錯:
 嘗試覆蓋共享的 '/usr/share/doc/libgcc1', 它與軟件包 libgcc1:i386 中的其他實例不同
正準備解包 .../01-libbsd0_0.8.7-1ubuntu0.1_i386.deb  ...
正在解包 libbsd0:i386 (0.8.7-1ubuntu0.1) ...
dpkg: 處理歸檔 /tmp/apt-dpkg-install-AsAJTT/01-libbsd0_0.8.7-1ubuntu0.1_i386.deb (--unpack)時出錯:
 嘗試覆蓋共享的 '/usr/share/doc/libbsd0/changelog.Debian.gz', 它與軟件包 libbsd0:i386 中的其他實例不同
正準備解包 .../02-libxdmcp6_1%3a1.1.2-3_i386.deb  ...
正在解包 libxdmcp6:i386 (1:1.1.2-3) ...
dpkg: 處理歸檔 /tmp/apt-dpkg-install-AsAJTT/02-libxdmcp6_1%3a1.1.2-3_i386.deb (--unpack)時出錯:
 嘗試覆蓋共享的 '/usr/share/doc/libxdmcp6/changelog.Debian.gz', 它與軟件包 libxdmcp6:i386 中的其他實例不同
正準備解包 .../03-libxcb1_1.13-2~ubuntu18.04_i386.deb  ...
正在解包 libxcb1:i386 (1.13-2~ubuntu18.04) ...
dpkg: 處理歸檔 /tmp/apt-dpkg-install-AsAJTT/03-libxcb1_1.13-2~ubuntu18.04_i386.deb (--unpack)時出錯:
 嘗試覆蓋共享的 '/usr/share/doc/libxcb1/changelog.Debian.gz', 它與軟件包 libxcb1:i386 中的其他實例不同
由於已經達到 MaxReports 限制,沒有寫入 apport 報告。

小插曲:

一切要從我找到一個博客,並按照上面的操作開始,
它給了我一堆deb包,確實是wine安裝包,但都是wine1.7左右的,文章是2014左右的,當時沒有注意看,一般認爲都是大同小異的安裝流程。然後我直接運行了:

qingling@qingling-MS-7C35:~/apps/wine$ sudo dpkg -i *.deb

這下給我帶來了不小的麻煩,一些lib開頭的包被降級了,

dpkg: 警告: 即將把 avahi-autoipd 從 0.7-3.1ubuntu1.2 降級到 0.6.32~rc+dfsg-1ubuntu2.2
(正在讀取數據庫 ... 系統當前共安裝有 196641 個文件和目錄。)
正準備解包 avahi-autoipd_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb  ...
正在將 avahi-autoipd (0.6.32~rc+dfsg-1ubuntu2.2) 解包到 (0.7-3.1ubuntu1.2)...
dpkg: 警告: 即將把 avahi-daemon 從 0.7-3.1ubuntu1.2 降級到 0.6.32~rc+dfsg-1ubuntu2.2
正準備解包 avahi-daemon_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb  ...
正在將 avahi-daemon (0.6.32~rc+dfsg-1ubuntu2.2) 解包到 (0.7-3.1ubuntu1.2)...
dpkg: 警告: 即將把 avahi-utils 從 0.7-3.1ubuntu1.2 降級到 0.6.32~rc+dfsg-1ubuntu2.2

版本之間還有衝突:

dpkg: 處理歸檔 libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386.deb (--install)時出錯:
 軟件包相互衝突 - 將不安裝 libgl1-mesa-glx:i386

dpkg配置也有問題:

dpkg: 處理軟件包 libasn1-8-heimdal:i386 (--install)時出錯:
 現在尚不能配置軟件包 libasn1-8-heimdal:i386 1.7~git20150920+dfsg-4ubuntu1.16.04.1,因爲 libasn1-8-heimdal:amd64 處於一個不同的版本(7.5.0+dfsg-1)
dpkg: 處理軟件包 libasn1-8-heimdal:amd64 (--install)時出錯:
 現在尚不能配置軟件包 libasn1-8-heimdal:amd64 7.5.0+dfsg-1,因爲 libasn1-8-heimdal:i386 處於一個不同的版本(1.7~git20150920+dfsg-4ubuntu1.16.04.1)
dpkg: 處理軟件包 libasound2:i386 (--install)時出錯:
 現在尚不能配置軟件包 libasound2:i386 1.1.0-0ubuntu1,因爲 libasound2:amd64 處於一個不同的版本(1.1.3-5ubuntu0.5)

這大概就是懶得動腦,做一隻小學雞的悲慘下場吧。這樣做雞,遲早被淘汰或者吃掉,因爲不喜歡動腦子,腦子也會越變越小……

1.無論是用:

sudo apt-get update   # 更新源
sudo apt-get upgrade  # 進行一次升級(這個其實存在大風險,一般建議備份後再搞)
sudo apt-get dist-upgrade  # 進行發行版升級(這個風險更大,建議備份後再搞!!)

2.還是根據linux的指示:

sudo apt --fix-broken install   # 嘗試自動修復依賴關係
也可以寫作:
sudo apt-get -f install 

3.還是重新安裝某個包,既然它整體不符合依賴,我試着按照依賴順序逐個擊破
我先找出最前不符合依賴關係(依賴最少或者 在系統已經存在)的包,然後試着重新安裝這個包:
例如:

在處理時有錯誤發生:
 libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386.deb
 libsane_1.0.25+git20150528-1ubuntu2.16.04.1_i386.deb
 libsystemd0_229-4ubuntu21.2_i386.deb
 avahi-utils
 gstreamer1.0-plugins-base:i386
 gstreamer1.0-plugins-base:amd64
 libasn1-8-heimdal:i386
 libasn1-8-heimdal:amd64
 libasound2:i386
 libasound2:amd64
 libasound2-plugins:i386
 libasound2-plugins:amd6
 ……
 由於出現了太多錯誤,處理過程被中止了。
sudo apt-get install libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386 --reinstall

4.或者試着卸載掉之前安裝過的全部的包和不兼容的庫:

sudo apt-get purge wine-stable-amd64
sudo apt-get remove liblz4-1:i386

都得到了失敗的結局.全都是一堆error和黃牌警告

解決問題:

1 檢查依賴:

sudo dpkg -C

在這裏插入圖片描述
同時用sudo apt-get install check,查看下依賴的關係:
在這裏插入圖片描述
可以看到 dpkg裏的 包libavcodec58 依賴於 apt裏的包libglib2.0-0:i386
但是

sudo apt-get install libglib2.0-0:i386 

依然報錯,所以只能一個個安裝依賴了,一個個修復依賴

處理方式: 直接運行下面的命令

sudo apt --fix-broken install # 低風險語句——自動下載修復依賴包並且安裝


# 下面這句是高風險語句!!!!!!!如果不懂,一定要看下面的修復依賴過程和原理
# 意思是,強制安裝所有的已經下載的依賴包。可能會覆蓋某些文檔,文件和庫
sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb  
sudo dpkg --configure -a

參考網址:Ubuntu “lib32ncurses5 : Depends: libc6-i386 (>= 2.18) but it is not going to be installed”類似問題解決辦法

在這裏插入圖片描述

修復依賴

運行:sudo apt --fix-broken install嘗試自動修復依賴關係——自動下載修復依賴包並且安裝
得到下面的結果,注意綠色部分,說明sudo apt --fix-broken install已經自動幫助我們下載好了需要的deb包,只是安裝出了問題。
在這裏插入圖片描述這些包都保存在:/var/cache/apt/archives 目錄下,如果沒有,你可以到下面的網址下載對應版本:
1.百度
2.boinic版本的包下載,官方,對應ubuntu18.04LST
3.ubuntu源碼 tar.gz和deb包下載(這個deb包位置比較隱蔽,需要找找)
4.個人感覺最全,而且方便,版本完善,直接右上角搜索deb名就行,搜不到就大致搜索然後自己找找
在這裏插入圖片描述可以看到這個包,直接運行:

sudo dpkg -i libvorbis0a_1.3.5-4.2_i386.deb

可以看到有錯誤,錯誤是需要覆蓋某個doc文件內容,doc又不重要,覆蓋就覆蓋了唄。。。
在這裏插入圖片描述所以強制覆蓋下就行,加上--force-overwrite

sudo dpkg --force-overwrite -i libwrap0_7.6.q-27_i386.deb

你也可以直接複製全部的名字

sudo dpkg -i xxx1.deb xxx2.deb ... xxxn.deb

但是這樣也許中間有問題你也察覺不到,不是特別安全,推薦使用組合:

sudo dpkg -i xxx1.deb # 嘗試正常安裝,並查看正常安裝會出現的問題
sudo dpkg --force-overwrite -i xxx1.deb # 確認不更改重要文件,進行強制安裝包

確保中間不要更改doc(document)外的其他文件,尤其不要修改amd64的任何文件,更改它的lib是很危險的,例如:libc,libgcc,儘量也不要去做任何對基礎庫的升級!做之前必須備份(運維人最後的底線)

如果中間出現了觸發器問題
例如: 軟件包 libhogweed4:i386 尚未配置
在這裏插入圖片描述
運行下面代碼來讓包自動配置觸發器和一些文件:這是一個相對安全的命令

sudo dpkg --configure -a

當全部的正確的依賴都裝好後,就正常運行了:
我這裏是需要安裝winehq:

sudo apt-get install --install-recommends winehq-stable

在這裏插入圖片描述查看依賴也沒問題了
在這裏插入圖片描述
檢查配置也是正常,所以沒有輸出了。
在這裏插入圖片描述
順利打開winehq的我開心得像個孩子(驕傲.jpg)
所以說用windows看論文它不香🏇????人間迷惑行爲。
在這裏插入圖片描述

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