介紹
在linux下使用QQ等流行的windows軟件一直是國內(nèi)很多l(xiāng)inux用戶的需求,之前要實(shí)現(xiàn)這個(gè)需求用戶往往需要對wine進(jìn)行很多繁瑣的配置,但即使這樣最后跑出來的軟件也是功能殘缺的,只能滿足最基本的使用需求。深度操作系統(tǒng)的開發(fā)人員在這方面做出了很多卓越的工作,在深度操作系統(tǒng)上提供了一批幾乎完美的使用wine來執(zhí)行的windows軟件,包括QQ,TIM,迅雷,百度云等。將這些軟件從深度移植到其他發(fā)行版是可行的,但是依據(jù)發(fā)行版的不同要做很多繁瑣的操作,容易出錯(cuò),并且不易于進(jìn)行管理。
Flatpak是一個(gè)發(fā)行版無關(guān)的下一代linux軟件打包格式,只需打包一次就可以在不同的發(fā)行版上方便的安裝和執(zhí)行,當(dāng)然完全的發(fā)行版無關(guān)是很難實(shí)現(xiàn)的,發(fā)行版的不同也會(huì)導(dǎo)致flatpak軟件的行為有所不同,但終究要強(qiáng)于傳統(tǒng)打包方式。
本項(xiàng)目提供了一種使用flatpak打包深度基于wine的windows應(yīng)用的方式,可以實(shí)現(xiàn)一次打包,到處運(yùn)行,并且管理方便,兼容性好。
已打包的應(yīng)用
已使用flatpak打包的deepinwine應(yīng)用:
-
com.deepin.wine - deepinwine的運(yùn)行時(shí) 2.18
- 構(gòu)建倉庫: https://gitee.com/wsgalaxy/com.deepin.wine.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.deepin.wine.git
- 預(yù)構(gòu)建文件:com.deepin.wine.Platform.2.18.1.flatpak
-
com.tencent.tim - 騰訊TIM 2.0
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.tencent.tim.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.tencent.tim.git
- 預(yù)構(gòu)建文件:com.tencent.tim.2.0.1.flatpak
- 擴(kuò)展:
- com.tencent.tim.ext.fcitx - fcitx輸入法支持
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.tencent.tim.ext.fcitx.json.git
- 預(yù)構(gòu)建文件:com.tencent.tim.ext.fcitx.2.0.1.flatpak
- com.tencent.tim.ext.xsettingsd - KDE桌面支持
- com.tencent.tim.ext.fcitx - fcitx輸入法支持
-
com.tencent.qqlight - 騰訊QQ輕聊版 7.9
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.tencent.qqlight.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.tencent.qqlight.git
- 預(yù)構(gòu)建文件:com.tencent.qqlight.7.9.1.flatpak
- 擴(kuò)展:
- com.tencent.qqlight.ext.fcitx - fcitx輸入法支持
- com.tencent.qqlight.ext.xsettingsd - KDE桌面支持
-
com.tencent.wechat - 騰訊微信PC版 2.6
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.tencent.wechat.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.tencent.wechat.git
- 預(yù)構(gòu)建文件:com.tencent.wechat.2.6.1.flatpak
- 擴(kuò)展:
- com.tencent.wechat.ext.fcitx - fcitx輸入法支持
- com.tencent.wechat.ext.xsettingsd - KDE桌面支持
-
com.xunlei.thunderspeed - 迅雷極速版 7.10
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.xunlei.thunderspeed.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.xunlei.thunderspeed.git
- 預(yù)構(gòu)建文件:com.xunlei.thunderspeed.7.10.1.flatpak
- 擴(kuò)展:
- com.xunlei.thunderspeed.ext.xsettingsd - KDE桌面支持
-
com.baidu.pan - 百度網(wǎng)盤 5.7
- 構(gòu)建倉庫:https://gitee.com/wsgalaxy/com.baidu.pan.json.git
- 二進(jìn)制文件倉庫:https://gitee.com/wsgalaxy/com.baidu.pan.git
- 預(yù)構(gòu)建文件:com.baidu.pan.5.7.1.flatpak
- 擴(kuò)展:
- com.baidu.pan.ext.xsettingsd - KDE桌面支持
安裝
檢查文件來源
將深度的deepinwine應(yīng)用打包成flatpak格式使用了從深度軟件倉庫提取的二進(jìn)制文件,為了防止文件的原始鏈接隨著應(yīng)用倉庫的更新失效,我把所使用的二進(jìn)制文件存放到了我的gitee倉庫(即[已打包的應(yīng)用]中的二進(jìn)制文件倉庫)。為了保證你的數(shù)據(jù)安全,請你在安裝前始終檢查倉庫中的這些二進(jìn)制文件是否與原始來源的文件相同。除了二進(jìn)制文件之外其余文件均是字體文件(font.tar.xz)或者簡單的文本文件,也請檢查這些文件的內(nèi)容是否有異常。在倉庫中的urls文件中提供了這些二進(jìn)制文件的原始鏈接,你可以通過如下步驟進(jìn)行檢查,以com.deepin.wine的[二進(jìn)制倉庫]為例:
- 下載倉庫
git clone --depth=1 https://gitee.com/wsgalaxy/com.deepin.wine.git
cd com.deepin.wine
下載原始來源文件
mkdir dl
cd dl
wget cat ../urls
計(jì)算二進(jìn)制文件的sha256sum
sha256sum ./* > sha256sum.ori
sha256sum ../* > sha256sum.repo
- 請比較sha256sum.ori和sha256sum.repo中各個(gè)二進(jìn)制文件的hash值是否相同。 如果不相同或者因?yàn)樵兼溄邮?dǎo)致文件無法下載比較,則之后是否進(jìn)行下一步安裝請慎重考慮。 如果你執(zhí)意繼續(xù)安裝,你可以嘗試通過原始鏈接下載更新的文件版本,或者使用倉庫中的過時(shí)版本,但無論你怎樣安裝,你都需要為所有可能后果。
使用構(gòu)建文件自行構(gòu)建安裝(推薦)
對于有l(wèi)inux使用經(jīng)驗(yàn),且對安全十分看重的人,推薦在檢查二進(jìn)制文件來源之后,使用構(gòu)建文件自行構(gòu)建安裝。
- 配置環(huán)境
為你的發(fā)行版安裝flatpak并添加flathub倉庫,以同樣的方法安裝flatpak-builder
安裝基礎(chǔ)的Platform和Sdk
flatpak install flathub org.freedesktop.Platform/i386/18.08
flatpak install flathub org.freedesktop.Sdk/i386/18.08
構(gòu)建并安裝deepinwine的運(yùn)行時(shí) com.deepin.wine.Platform
取決于你的電腦性能,這一步可能很耗時(shí)。
git clone https://gitee.com/wsgalaxy/com.deepin.wine.json.git
cd com.deepin.wine.json
mkdir .build
cd .build
flatpak-builder --repo=repo --arch=i386 build ../com.deepin.wine.json
flatpak remote-add --user --no-gpg-verify repodeepinwine ./repo
flatpak install --user repodeepinwine com.deepin.wine.Platform構(gòu)建并安裝應(yīng)用
構(gòu)建應(yīng)用的流程大同小異,這里以com.tencent.tim為例。
構(gòu)建應(yīng)用本身
git clone https://gitee.com/wsgalaxy/com.tencent.tim.json.git
cd com.tencent.tim.json
mkdir .build
cd .build
flatpak-builder --repo=repo --arch=i386 build ../com.tencent.tim.json
flatpak remote-add --user --no-gpg-verify repotim ./repo
flatpak install --user repotim com.tencent.tim要獲得fcitx支持,需要構(gòu)建應(yīng)用對應(yīng)的fcitx擴(kuò)展
與tim對應(yīng)的fcitx擴(kuò)展是 com.tencent.tim.ext.fcitx。
git clone https://gitee.com/wsgalaxy/com.tencent.tim.ext.fcitx.json.git
cd com.tencent.tim.ext.fcitx.json
mkdir .build
cd .build
flatpak-builder --repo=repo --arch=i386 build ../com.tencent.tim.ext.fcitx.json
flatpak remote-add --user --no-gpg-verify repotimextfcitx ./repo
flatpak install --user repotimextfcitx com.tencent.tim.ext.fcitx要獲得KDE支持,需要構(gòu)建應(yīng)用對應(yīng)的xsettingsd擴(kuò)展
與tim對應(yīng)的KDE支持?jǐn)U展是 com.tencent.tim.ext.xsettingsd。
git clone https://gitee.com/wsgalaxy/com.tencent.tim.ext.xsettingsd.json.git
cd com.tencent.tim.ext.xsettingsd.json
mkdir .build
cd .build
flatpak-builder --repo=repo --arch=i386 build ../com.tencent.tim.ext.xsettingsd.json
flatpak remote-add --user --no-gpg-verify repotimextxsettingsd ./repo
flatpak install --user repotimextxsettingsd com.tencent.tim.ext.xsettingsd
使用預(yù)構(gòu)建文件安裝
我為[已打包的應(yīng)用]提供了已經(jīng)構(gòu)建好的安裝包,如果你不想自己通過構(gòu)建文件自行構(gòu)建,可以使用已經(jīng)構(gòu)建好的安裝包直接安裝。你首先需要下載對應(yīng)的安裝包,以com.deepin.wine.Platform.2.18.1.flatpak為例:
在安裝包的同一目錄中打開終端
flatpak install --user ./com.deepin.wine.Platform.2.18.1.flatpak
安裝順序及注意事項(xiàng)
無論你已哪種方式安裝,都要遵循一定的安裝順序:運(yùn)行時(shí) com.deepin.wine.Platform 必須第一個(gè)安裝,之后安裝對應(yīng)的應(yīng)用,如安裝TIM的話就安裝 com.tencent.tim,然后再根據(jù)需要安裝應(yīng)用對應(yīng)的擴(kuò)展,如TIM對應(yīng)的 fcitx 支持?jǐn)U展是 com.tencent.tim.ext.fcitx、對應(yīng)的KDE支持?jǐn)U展是 com.tencent.tim.ext.xsettingsd。
只在你使用的是fcitx而無法輸入中文的情況下安裝fcitx擴(kuò)展,如果你使用的是ibus輸入法請不要安裝該擴(kuò)展;
只在你使用的是KDE桌面而無法啟動(dòng)應(yīng)用的情況下安裝xsettingsd擴(kuò)展,切記不要在gnome環(huán)境下安裝xsettingsd擴(kuò)展,否則可能導(dǎo)致桌面異常。
運(yùn)行應(yīng)用可以使用應(yīng)用菜單的圖標(biāo)直接啟動(dòng),或者使用命令行 flatpak run APPID 運(yùn)行,如運(yùn)行 com.tencent.tim:
安裝完之后的第一次執(zhí)行建議使用命令行,迅雷 com.xunlei.thunderspeed 和百度云 com.baidu.pan 第一次執(zhí)行必須使用命令行,并在命令的提示中輸入 y 回車,之后才能通過應(yīng)用菜單啟動(dòng)。
卸載
使用 flatpak run APPID -h可以查看幫助。
卸載時(shí),需要先刪除wine容器,再卸載應(yīng)用和擴(kuò)展,當(dāng)所有的deepinwine應(yīng)用卸載完后,才可以卸載運(yùn)行時(shí):
卸載 com.tencent.tim 以及對應(yīng)的fcitx和xsettingsd擴(kuò)展
flatpak run com.tencent.tim -e
flatpak remove com.tencent.tim
flatpak remove com.tencent.tim.ext.fcitx
flatpak remove com.tencent.tim.ext.xsettingsd
所有deepinwine應(yīng)用都卸載后,卸載運(yùn)行時(shí):
常見問題
- 應(yīng)用無法啟動(dòng)
嘗試使用flatpak run APPID -r來重新解壓運(yùn)行時(shí),當(dāng)詢問時(shí)回答y。
- fcitx安裝擴(kuò)展之后仍無法啟用
安裝擴(kuò)展后使用 flatpak kill APPID 終結(jié)應(yīng)用后重新啟動(dòng),在輸入前注意確保fcitx已是中文輸入模式(通過點(diǎn)擊fcitx圖標(biāo)切換)
- 即使沒有安裝fcitx擴(kuò)展但無法使用ibus
如果你同時(shí)安裝了fcitx和ibus,請卸載fcitx然后重新啟動(dòng)。