Ubuntu下QQ微信安裝不成功的可能性解決


如何優雅地在Ubuntu下使用QQ微信

11月8號的時候,騰訊禁止了舊版的QQ客戶端再登錄,導致Linux下Wine版的QQ也受到牽連無法再使用。慶幸的是8號當天,深度就在各個源發布了全新版本給鳳毛麟角的Linux用戶續命。

因為我平時工作環境是Linux,所以使用QQ是個剛需,終於在折騰了好幾天之后解決了所有問題,在Ubuntu下用上了功能堪比Windows原版的QQ。因而寫下這篇文章記錄一下才坑的過程,幫助其他奮戰在Linux端的小伙伴少折騰。

技術簡介

我們安裝軟件的並非官方的版本,而是在x86 Ubuntu上基於wine安裝的QQ和微信,(目前官方提供的QQ還基本沒法用,微信還沒有)

2008年出現了一種名為wine的技術,這種技術在Linux平台實現了部分Windows的系統API和庫,讓用戶可以在Linux端無縫使用Windows端的應用程序。

后來國內深度社區將wine做了很好的封裝並且在wine上移植了諸多windows端的軟件。包括QQ、微信等等,而且在功能上幾乎都可以和windows原版分庭抗禮,給廣大Linux桌面版用戶提供了極大地便利。

2019年11月8日舊版的QQ被停止使用,也是同一天,深度就發布了新的Wine版QQ提供支持。在國內的阿里源、清華源等鏡像源中也可以下載到最新版本。

不過因為舊版的無法使用,新版本的安裝使用出現各種問題,業內社區一時哀聲載道。

因此本文將剛剛安裝的Linux版QQ、微信以及踩坑過程記錄下來。希望其他玩Linux小伙伴們看到后避免踩坑!

不過在Wine下騰訊舊版的微信、QQTim版和輕聊版仍然能正常使用,懶得折騰的同學可以繼續使用Tim版或輕聊版,如舊版停止服務可按照此教程安裝新版軟件使用。

安裝過程

注意:如果過程中出現軟件包依賴問題時請謹慎操作,除非非常確定,否則不要使用sudo apt-get install -fysudo apt autoremove -y,-y參數不經過問詢很可能被卸載桌面

一、下載安裝最新的deepin-wine環境庫

mkdir -p ~/temp && cd ~/temp # 下載環境庫的包 wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine_2.18-20_all.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32_2.18-20_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32-preloader_2.18-20_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-helper/deepin-wine-helper_1.2deepin8_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_amd64.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin-virtual/deepin-wine-plugin-virtual_1.0deepin3_all.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-uninstaller/deepin-wine-uninstaller_0.1deepin2_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/u/udis86/udis86_1.72-2_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-fonts-wine_2.18-20_all.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine_2.18-20_i386.deb wget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_amd64.deb wget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dbg_2.18-20_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dev_2.18-20_i386.deb wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine-binfmt_2.18-20_all.deb # '添加32位支持' sudo dpkg --add-architecture i386 # '刷新apt緩存信息...' sudo apt update # '開始安裝...' sudo dpkg -i *.deb # 出現依賴報錯執行:sudo apt-get install -f 參加下文中的踩坑部分

二、下載安裝最新版Wine QQ 微信

其他什么QQ瀏覽器迅雷等windows端軟件都有,可以在http://mirrors.aliyun.com/deepin/pool/non-free/d/找自己需要的。

wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_9.1.8deepin0_i386.deb
wget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_2.6.8.65deepin0_i386.deb
sudo dpkg -i deepin.com.qq.im_9.1.8deepin0_i386.deb
sudo dpkg -i deepin.com.wechat_2.6.8.65deepin0_i386.deb
# 安裝完成后在Applications中找到對應圖標即可運行。

踩坑

順利的話,只需要上面很簡單的兩步,就可以完成。然而現實並不總是這么順利。

1、安裝deepin-wine包依賴問題(上文步驟一)

之前裝過wine的小伙伴,此次升級安裝基本不會有什么坑。然而對於首次安裝的小伙伴,安裝這些包會缺很多系統依賴。

如果報錯依賴缺失,解決方案是:執行sudo apt-get install -f進行修復,千萬不要加-y參數。

  • 修復前它會詢問,安裝n個包,卸載n個包,更新n個包,是否執行?如果有卸載包,千萬不要着急輸入Y就往下走(卸載的包里很可能有ubuntu-desktop,如果無腦下一步就瞎了)
這將會卸載桌面
  • 出現詢問是否安裝時,把即將安裝的包復制,然后輸入n不進行自動安裝操作。
  • 下一步手動sudo apt-get install [Ctrl+shift+v] 粘貼剛才復制下來的所有包手動安裝
  • 如果這些包安裝過程中仍然有依賴問題可以使用sudo apt-get install -f進行修復,如果明確顯示卸載0個包再輸入y往下進行,否則建議仍然手動安裝對應的依賴。

2、安裝QQ包依賴問題(上文步驟二)

dpkg: 依賴關系問題使得 deepin.com.qq.im:i386 的配置工作不能繼續:
deepin.com.qq.im:i386 依賴於 deepin-wine-helper (>= 1.2deepin2);然而:
系統中 deepin-wine-helper:i386 的版本為 1.2deepin0。

dpkg: 處理軟件包 deepin.com.qq.im:i386 (--install)時出錯:
依賴關系問題 - 仍未被配置

論壇上提的最多的就是這個問題,安裝新版QQ或微信時報這個錯誤。解決方案其實很簡單:執行上文的步驟一就可以。

新版的QQ依賴的是新版的deepin-wine庫,只要把步驟一安裝完更新到最新就可以。

3、安裝完成后點擊圖標無法啟動

這個問題,讓我前前后后放棄了好幾次。

在我執行完步驟一、二沒有任何報錯以后,在Applications中找到對應圖標點擊,然而軟件閃爍一會兒后退出,無法打開程序。

先說解決方案:

這個問題的排查過程十分糟心,我新建了一個ubuntu16.04的虛擬機,執行完這套操作軟件完全正常運行,然而我本地機器死活不可以。始終找不到問題出在哪兒。

后來沒辦法找到了圖標的文件:/usr/share/applications/deepin.com.qq.im.desktop

手動執行文件里的Exec的命令:/opt/deepinwine/apps/Deepin-QQ/run.sh -u %u

結果得到了報錯:

wine: cannot find "C:\\Program Files\Tencent\QQ\Bin\QQ.exe"

然而在我的虛擬機的ubuntu下並沒有這個錯誤。

問題定位到這兒一籌莫展,始終不明白我的電腦里為什么不存在這個文件,也不知道該怎么修復。

我得想辦法知道這個Windows的虛擬路徑存在Linux系統中的什么位置。然而一直都沒有找到。

直到后來功夫不負有心人,偶然的機會在deepin官網的論壇中看到:

深度官方論壇

這一下子讓我看到了希望,我進入到系統里~/.deepinwine/Deepin-QQ/driver_c/路徑下,看到了Program FilesWindows目錄。我就知道來對地方了!

果然,這兩個目錄下只有一些空文件夾。顯然這里的文件應該在第一次啟動QQ的時候就釋放到這里來,不知什么原因它沒有成功。

不過分析到這里原因已經不重要了,既然我虛擬機下有一個可用的,直接照搬復制過來就OK。

於是我把虛擬機里~/.deepinwine/Deepin-QQ/driver_c/Deepin-QQ~/.deepinwine/Deepin-QQ/driver_c/Deepin-WeChat兩個文件夾原封不動的搬到了我的系統下!

運行程序:

安裝成功

看到界面的那一刻,真想哇的一聲哭出來。自從8號早上QQ不能用后,這個問題困擾的我連覺都睡不好,倒不是說非得用QQ不可,而是遇到一個技術坑踩不過去賊煩心!

上面提到的那個壓縮包,其實就是我的虛擬機下的這兩個目錄。不出意外的話,安裝新包過程無論失敗與否,你把這個包解壓到本地都能運行個八九不離十。

當然,如果你本地遇到這個問題,也可以自己搞個虛擬機鼓搗出一版可用的,然后把文件拿出來放到本地就行!

更新:安裝后wine版本的QQ無法接收圖片,執行這樣幾個命令即可:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

作者:南條愛乃
鏈接:https://www.zhihu.com/question/371494920/answer/1015204778
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

(感謝評論區的朋友 南條愛乃 給出的解決方案)

 

后記

以上就是整個QQ微信在Linux上安裝的全部踩坑過程。最大的坑有三個:

  1. 安裝依賴問題,這個環境運行依賴的是i386的環境,大多64位系統中沒有,安裝過程中反復失敗重來過程很繁瑣。
  2. 卸載桌面! 這是個巨坑,我一下午虛擬機被卸載了三次桌面,每次卸載完都重裝重來。最后才得出上文踩坑2的辦法。如果各位小伙伴在自己的電腦上安裝,一定要小心不要一路無腦下一步,否則被卸載了桌面沒點能耐很難妙手回春。
  3. 安裝完成后無法運行,就是上面說的最后一點,這里就不贅述了。

軟件運行后還有很多BUG,不過基本都是深度和Wine還有QQ的事情了,我們用戶可操作掌控的空間很小。

以上操作可以寫一個腳本一鍵搞定,但是沒什么技術含量我懶得搞了,另外寫腳本里如果出現-f -y這種強制不可控參數,一不小心卸載了桌面,反而會給大家造成更大的麻煩。

鳴謝

  • 【文章一鏈接】:本文中大體操作流程框架就是來自於這篇文章,然而也正是這篇文章中的腳本使用了sudo apt-get install -fy的操作,我的Ubuntu桌面被卸了三次!幸虧是虛擬機。
  • 【文章二鏈接】:這篇文章已經失了時效性,但是文中干貨仍然非常有借鑒性,是一篇很好的收藏貼(不過頻繁的贊賞彈窗着實有點煩人)。文章也提到了對深度和wszqkzqk同學的感謝,可怕的是這篇18年的帖子里寫到wszqkzqk同學還未成年!!!25歲的我一口老血…
  • 【文章三鏈接】:這款一年前的github項目是我最早使用的Wine QQ和微信的版本。即使現在除了被騰訊封印的正式版QQ,其他軟件仍然可用。不過它的一鍵安裝腳本同樣使用了-fy的高危操作,我同事的桌面就這么沒得,大家操作時一定要謹慎。
  • 【文章四鏈接】:deepin的官方論壇,新版的QQdeepin就是第一時間在這個帖子里發布的,回帖中大家也提出了很多坑,解決方案以及產品BUG。
  • 【wszqkzqk鏈接】:上面提到了這位未成年的小同學,真的是后生可畏啊!我也不清楚這位同學和深度的關系以及他扮演了怎樣的角色,不過看樣子我們現在Ubuntu下能用到這么好使的QQ微信與他的工作密不可分。就連舊版QQ不能用的時候,也是他的Github下第一時間被提issue,給力的是第二天,他便解決了這個問題。

## 20200114

感謝網友指出,有一個用docker的辦法更優雅一些:

運行微信:

docker pull bestwu/wechat
docker run -d --name wechat --device /dev/snd/ -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/TencenFiles:/TencentFiles -e DISPLAY=unix$DISPLAY -e XMODIFIERS=@im=fcitx -e QT_IM_MODULE=fcitx -e GTK_IM_MODULE=fcitx -e AUDIO_GID=`getent group audio | cut -d: -f3` -e VIDEO_GID=`getent group video | cut -d: -f3` -e GID=`id -g` -e UID=`id -u` bestwu/wechat:latest

運行QQ:

docker pull bestwu/qq
docker run -d --name qq --device /dev/snd/ -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/TencenFiles:/TencentFiles -e DISPLAY=unix$DISPLAY -e XMODIFIERS=@im=fcitx -e QT_IM_MODULE=fcitx -e GTK_IM_MODULE=fcitx -e AUDIO_GID=`getent group audio | cut -d: -f3` -e VIDEO_GID=`getent group video | cut -d: -f3` -e GID=`id -g` -e UID=`id -u` bestwu/qq:latest

可惜安裝的都是舊版的QQ和微信,而且也不是很穩定,不過也沒辦法了Linux下就是這么惡心,如果不是剛需誰也不會為了折騰而折騰。

簡單回應一下評論:工作環境下開一個虛擬機windows不現實,平時項目代碼全核編譯一編就要一兩個小時,再開個虛擬機內核立馬頻繁段錯誤,再多個幾分鍾就卡成壁紙了。

再有就是別再給我們科普騰訊官方發布的Linux版QQ了,我們不瞎,我們看見了!像這種官方發布的“三流大學生畢業設計”,麻煩自己用過確定能用再來給人推薦。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM