錯誤還原:
- 現在尚不能配置軟件包 libxxx:i386 3.2.1-4,因爲 xxx:amd64 處於一個不同的版本(3.2.1-8)
- 正在解包 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 報告。 - 在處理時有錯誤發生:
/tmp/apt-dpkg-install-EgArxE/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb - E: Sub-process /usr/bin/dpkg returned an error code (1)
- dpkg 由於出現了太多錯誤,處理過程被中止了
- dpkg 正在處理用於 mime-support (3.60ubuntu1) 的觸發器 …在處理時有錯誤發生
- dpkg: 處理歸檔 /var/cache/apt/archives/libattr1_1:2.4.47-2_amd64.deb (–unpack)時出錯:
- 嘗試覆蓋共享的 ‘/usr/share/doc/libattr1/changelog.Debian.gz’, 它與軟件包 libattr1:amd64 中的其他實例不同
- 依賴: 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看論文它不香🏇????人間迷惑行爲。