如何優雅地在 Linux 上運行 QQ、微信?

2021-01-07 CSDN

作者 | 三級狗

責編 | Elle

CSDN(CSDNnews)

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

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

這次安裝軟體的並非官方的版本,而是在x86 Ubuntu上基於wine安裝的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 -fy和sudo 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.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32_2.18-20_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-wine32-preloader_2.18-20_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-helper/deepin-wine-helper_1.2deepin8_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_amd64.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin/deepin-wine-plugin_1.0deepin2_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-plugin-virtual/deepin-wine-plugin-virtual_1.0deepin3_all.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine-uninstaller/deepin-wine-uninstaller_0.1deepin2_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/u/udis86/udis86_1.72-2_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-fonts-wine_2.18-20_all.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine_2.18-20_i386.debwget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_amd64.debwget https://mirrors.aliyun.com/deepin/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.1-2_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dbg_2.18-20_i386.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin-wine/deepin-libwine-dev_2.18-20_i386.debwget 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.debwget http://mirrors.aliyun.com/deepin/pool/non-free/d/deepin.com.wechat/deepin.com.wechat_2.6.8.65deepin0_i386.debsudo dpkg -i deepin.com.qq.im_9.1.8deepin0_i386.debsudo 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中找到對應圖標點擊,然而軟體閃爍一會兒後退出,無法打開程序。

先說解決方案:

下載這個壓縮包:https://download.csdn.net/download/Three_dog/11970984將Deepin.tar.gz拷貝到~/deepinwine/路徑下並解壓(該路徑會在你第一次執行QQ或微信時創建)解壓後再次運行程序,問題解決。這個問題的排查過程十分糟心,我新建了一個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 Files和Windows目錄。我就知道來對地方了!

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

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

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

運行程序:

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

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

原諒我不要臉的扔在CSDN上蹭點積分,主要我平時也對這個需求比較大。

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

後記

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

安裝依賴問題,這個環境運行依賴的是i386的環境,大多64位系統中沒有,安裝過程中反覆失敗重來過程很繁瑣。卸載桌面!這是個巨坑,我一下午虛擬機被卸載了三次桌面,每次卸載完都重裝重來。最後才得出上文踩坑2的辦法。如果各位小夥伴在自己的電腦上安裝,一定要小心不要一路無腦下一步,否則被卸載了桌面沒點能耐很難妙手回春。安裝完成後無法運行,就是上面說的最後一點,這裡就不贅述了。軟體運行後還有很多BUG,不過基本都是深度和Wine還有QQ的事情了,我們用戶可操作掌控的空間很小。

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

鳴謝

【文章一連結】:https://forum.ubuntu.org.cn/viewtopic.php?f=73&p=3217021&sid=6194a64cefc1f4c5ac43dcd8729ca3c8本文中大體操作流程框架就是來自於這篇文章,然而也正是這篇文章中的腳本使用了sudo apt-get install -fy的操作,我的Ubuntu桌面被卸了三次!幸虧是虛擬機。【文章二連結】:https://www.lulinux.com/archives/1319這篇文章已經失了時效性,但是文中乾貨仍然非常有借鑑性,是一篇很好的收藏貼(不過頻繁的讚賞彈窗著實有點煩人)。文章也提到了對深度和wszqkzqk同學的感謝,可怕的是這篇18年的帖子裡寫到wszqkzqk同學還未成年!!!25歲的我一口老血…【文章三連結】:https://github.com/Jactor-Sue/Deepin-Apps-Installation這款一年前的github項目是我最早使用的Wine QQ和微信的版本。即使現在除了被騰訊封印的正式版QQ,其他軟體仍然可用。不過它的一鍵安裝腳本同樣使用了-fy的高危操作,我同事的桌面就這麼沒得,大家操作時一定要謹慎。【文章四連結】:https://bbs.deepin.org/forum.php?mod=viewthread&tid=183719deepin的官方論壇,新版的QQdeepin就是第一時間在這個帖子裡發布的,回帖中大家也提出了很多坑,解決方案以及產品BUG。【wszqkzqk連結】:https://github.com/wszqkzqk/上面提到了這位未成年的小同學,真的是後生可畏啊!我也不清楚這位同學和深度的關係以及他扮演了怎樣的角色,不過看樣子我們現在Ubuntu下能用到這麼好使的QQ微信與他的工作密不可分。就連舊版QQ不能用的時候,也是他的Github下第一時間被提issue,給力的是第二天,他便解決了這個問題。

相關焦點

  • 如何在虛擬機(vmware11)上運行linux系統
    有些人想體驗linux系統,又不想在自己的電腦上裝linux。那麼,在這裡小編將教大家如何在虛擬機上運行linux系統。下載正版VMware11可以同時下載linux系統鏡像VMware11下載完成以後,開始安裝。
  • 麒麟作業系統:在linux上運行安卓應用
    使用安卓生態,對於發展linux系統來說相當重要,畢竟安卓也是基於linux內核,兩者關係密切。麒麟軟體和技徳系統團隊合作,讓麒麟系統可以運行安卓應用。其依託安卓運行環境Kydroid 3.0,可提供完全原生、高兼容性的使用體驗。
  • 嵌入式ARM-Linux平臺上的編譯、配置和運行使用
    本文介紹了嵌入式ARM-Linux上的常用應用程式wpa_supplicant(以及wpa_supplicant依賴的libnl和openssl)的編譯、配置和運行使用,iw、hostapd等應用的編譯和使用
  • Linux Shell教程 - 如何刪除重複的文本行
    2、uniq命令 - 在Linux或Unix上運行或省略重複的行使用Sort,Uniq和Shell管道刪除重複行使用以下語法:sort {file-name} | uniq -usort file.log | uniq -u使用uniq刪除重複的行以下是使用cat
  • 實例演示:如何在Kubernetes上大規模運行CI/CD
    當然,最關鍵的機制就是Kubernetes,它具有聲明式的結構和可定製性,因此可以讓你在任何場景下高效地調度job、節點以及pod。本文包括3個部分:第一部分我們將探討目前在Kubernetes上運行最受歡迎的CI/CD平臺。
  • 為何Cortex-M處理器運行不了linux
    在沒有MMU的控制器中,虛擬地址被直接發送到內存總線上,以讀寫該地址下的物理存儲器。在擁有MMU的控制器中,虛擬地址首先被發送到MMU中,被映射為物理地址後再發送到內存總線上。圖3 內存管理機制注:上圖僅簡單反映內存管理的映射機制,權限映射、TLB快表、頁表等概念不做深入討論。
  • 如何給正在運行的Linux應用程式注入代碼
    1、簡介假設Linux上正在運行某程序,像Unix守護程序等,我們不想終止該程序,但是同時又需要更新程序的功能。首先映入腦海的可能是更新程序中一些已知函數,添加額外的功能,這樣就不會影響到程序已有的功能,且不用終止程序。
  • Linux下利用l7filter封殺迅雷、QQ、MSN
    -2.6.27.tar.gz# cd linux-2.6.27# patch -p1 < ..-2.6.27 /usr/src/linux#cp netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward/libxt_layer7.* iptables-1.4.1.1/extensions/# .
  • 如何基準測試 Linux PC 的性能?
    linux-benchmark-hardinfo可以使用原生軟體包管理器從大多數發行版獲取 Hardinfo,不過我覺得在 Deiban 和 Ubuntu 上運行這個命令來得更容易:sudoapt-get install hardinfo 或者在 Fedora、Red Hat 和 CentOS 上運行這個命令:sudo yum install hardinfo Hardinfo 隨帶 6 項不同的基準測試,每一種測試提供了一個分數,你可以用分數來準確地與其他系統比較。
  • 用Visual Studio調試Linux程序
    這種方法有個缺點是,不能從開始啟動的main函數處添加斷點,自始至終地調試程序,查看完整程序運行脈絡。所以下面推薦方法二。2方法二、利用VS啟動遠程linux機器上一個linux程序文件進行調試。選擇VS菜單【Debug】 ->【Quick Debugwith GDB】。
  • 可以運行在 Windows 10 中的最實用的 Linux 命令 | Linux 中國
    在本系列早先的文章中,我們討論了關於如何在 Windows 10 上開啟 WSL 之旅[1] 的內容。作為本系列的最後一篇文章,我們準備探討一些能在 Windows 10 上廣泛使用的 Linux 命令。話題深入之前,請先讓我們明確本教程所適用的人群。
  • Linux QQ 終於更新了!
    Linux QQ官方下載:https://im.qq.com/linuxqq/download.html附更新日誌:Linux QQ 2.0.0 Beta2:- 優化穩定性;- 增加多人聊天會話支持。
  • 巧用Docker 在 Linux 下 運行微信 PC 客戶端
    巧用 Docker 在 Linux 下 運行微信 PC 客戶端 DoChat(盒裝微信)是一個 Linux 下的 Docker 化的微信 PC Windows 客戶端,當然既然是容器化的,理論上運行多個客戶端也是可行的。
  • 當運行 Linux 內核的機器死機時……
    作者 | dog250 責編 | 張文頭圖 | CSDN 下載自視覺中國曾經寫過一個模塊,當運行 Linux 內核的機器死機時,SSH肯定無法登錄了,但只要它還響應中斷,就盡力讓它可以通過網絡帶回一些信息。
  • 怎麼通過運行打開QQ
    看到別人在運行裡輸入qq,就能打開QQ,覺的很神奇,接下來教大家怎麼怎麼通過運行裡打開QQ找到qq.exe所在目錄,複製這個目錄。我的是"D:\QQ\bin"右擊我的電腦或計算機,選擇"屬性"在打開的窗口選擇"高級系統設置"在"系統屬性"窗口,選擇"高級"選項卡,點擊"環境變量"按鈕在系統變量裡打到"path"項,點擊"編輯"按鈕把剛才複製的qq.exe所在的目錄,粘貼到變量值文本框的最前面,再加一個";"號,點擊"確定"。
  • linux作業系統常用命令及常用問題
    >linux作業系統詳解(linux不再難懂)●man :任何時候你覺得對一個命令行不是很確定,都可以通過輸入「man + 命令」了解這個命令能確切是做什麼的。●apt :APT是一個為Debian系列系統(Ubuntu,Kubuntu等等)開發的高級包管理器,在Gnu/Linux系統上,它會為包自動智能地搜索、安裝、升級以及解決依賴問題。
  • Linux:運行級別與重新啟動
    學習:•設置默認運行級別•運行級別間的變化•改為單用戶模式•從命令行關閉或重啟系統•警告用戶主要系統事件,包括切換到另一個運行級別•適當地終止進程除非特殊說明,本文中的示例使用帶有 2.6.26 內核的 Fedora 8。
  • 在Deepin Linux v20系統中安裝並運行windows軟體
    我們知道,Linux系統是不能運行windows軟體的,我們想在linux系統下運行windows程序,就需要通過第三方軟體實現,我們這裡通過wine軟體平臺實現,具體的安裝方法,在前面的文章已經詳細說明,請大家參閱。
  • 搜索、學習和實踐 Linux 命令!! | Linux 中國
    當你在特定的標誌/選項上尋找特定的信息時,你可能需要向下檢索相當長的時間。值得慶幸的是,有一些 好的手冊頁替代品,它們主要關注於實用的命令。一個很好的選擇是 TLDR 手冊。使用 TLDR 手冊,我們可以通過實際示例快速輕鬆地學習一個 Linux 命令。要使用 TLDR 手冊,我們需要 TLDR 客戶端。有很多客戶。今天我們就來了解一個這樣的客戶端,名為 「Tldr++」。
  • linux虛擬攝像頭vivid配置
    本文轉載自【微信公眾號:羽林君,ID:Conscience_Remains】,經微信公眾號授權轉載,如需轉載與原文作者聯繫總述最近在看攝像頭驅動,需要配置虛擬攝像頭的驅動,但是教程裡面是linux2.6內核的,實際電腦的是Ubuntu16,內核是linux4.15版本,從2.6到4.15內核好多文件發生了變化,所以我們該怎麼操作呢?