感謝社區(qū)用戶@mozixun 投稿,本篇將以 motrix 為例為大家展示如何將 Linux 安裝包快速轉(zhuǎn)成玲瓏包。
本教程適用于使用 AppImage 或基于 Electron 框架構(gòu)建等幾乎不需要額外依賴的應(yīng)用。
01前置知識(shí)
在開(kāi)始教程之前,建議大家提前了解 deb/rpm 應(yīng)用及玲瓏容器內(nèi)的工作流程,這有助于深入理解后續(xù)轉(zhuǎn)換過(guò)程。
XDG_DATA_DIRS 變量
玲瓏應(yīng)用運(yùn)行環(huán)境 VSdeb/rpm 應(yīng)用運(yùn)行環(huán)境
更多詳細(xì)理論知識(shí)可參考:
一級(jí)包管理器和二級(jí)?包管理器的區(qū)別 玲瓏內(nèi)應(yīng)用運(yùn)行和直接用deb/rpm安裝應(yīng)用的區(qū)別,以及玲瓏應(yīng)用內(nèi)的調(diào)用轉(zhuǎn)發(fā)機(jī)制 如意玲瓏應(yīng)用構(gòu)建指南(一):規(guī)范體系與配置文件全解析
通過(guò)以上基礎(chǔ)知識(shí)后,我們不難發(fā)現(xiàn),順利實(shí)現(xiàn)玲瓏應(yīng)用的打包聚焦有 3 個(gè)關(guān)鍵點(diǎn):
應(yīng)用本體 :這是打包的基礎(chǔ),缺少應(yīng)用本體則無(wú)從談起打包。
XDG_DATA_DIRS 下的快捷方式與圖標(biāo) :在指定目錄設(shè)置應(yīng)用快捷方式和圖標(biāo),便于用戶在系統(tǒng)中快速定位與啟動(dòng)應(yīng)用。
響應(yīng)調(diào)用能力 :部分應(yīng)用需具備對(duì)文件或網(wǎng)頁(yè)調(diào)用做出響應(yīng)的功能,以實(shí)現(xiàn)與其他應(yīng)用或系統(tǒng)功能的交互。
02轉(zhuǎn)換教程(以motrix為例)
Step 1下載打包樣板并解壓到合適目錄
首先,我們需要下載打包樣板并解壓到一個(gè)你認(rèn)為合適的目錄,本教程使用安裝包如下:
https://gitee.com/LFRon/linyaps-packaging-guide/releases/download/1.1/com.id.linyaps.tar.gz
Step 2解壓軟件安裝包
.deb 解壓
dpkg-deb-R.appimage 解壓<解壓到文件夾>
/xx/app.appimage --appimage-extract
Step 3
將軟件本體放置到合適位置 首先進(jìn)入至解壓樣板后的文件夾,再進(jìn)入 linglong/sources。隨后將 Step 2 中得到的軟件本身(可能在 deb 解壓后的/opt/xx 或者 /usr/lib 等位置)直接將文件夾本體替換。
以 motrix 為例,在 linglong/sources 文件夾中解壓 motrix.appimage 后得到 squashfs-root 文件夾,將其復(fù)制到 linglong/sources 里,取代 your_app 文件夾,并重命名為你想要的文件夾名,如 motrix。
經(jīng)過(guò)上述操作后,linglong/sources 文件夾會(huì)成為如下結(jié)構(gòu)。
最后,確定程序的執(zhí)行文件是哪一個(gè)。以 motrix 為例,我們發(fā)現(xiàn)并不需要執(zhí)行 AppRun,直接執(zhí)行 motrix 二進(jìn)制文件就可以直接啟動(dòng)。于是,我們就了解了在這個(gè)文件夾下啟動(dòng)它的命令是 ./motrix。
Step 4編輯 linglong.yaml 及 build 文件
4.1 編輯 linglong.yaml 文件
退回到工程目錄后,編輯 linglong.yaml 文件,編寫方法如下:
id:對(duì)標(biāo) deb 包 debian/control 文件里的 Package,這是應(yīng)用唯一的識(shí)別符;
name:玲瓏商店上顯示的應(yīng)用名字;
description:應(yīng)用的介紹。
注意,在基礎(chǔ)運(yùn)行環(huán)境中,使用的 base(基礎(chǔ)環(huán)境)必須聲明,使用的 Runtime(運(yùn)行庫(kù))可以不加。比如類似 motrix 這樣的 Electron 應(yīng)用,使用 org.deepin.base 作底已經(jīng)足夠,那就可以把 runtime 刪了變成如下的樣子。
接著,在 Command 命令中,把"com.id.linyaps"字樣改成你自己設(shè)置的 id 即可。 之所以沒(méi)有要在 Command 里直接執(zhí)行,是由于 Command 這一行在玲瓏打包識(shí)別應(yīng)用時(shí)會(huì)自動(dòng)調(diào)整,無(wú)需人工干預(yù),打包者只需在 Command 處調(diào)整好包名即可。如果需要,可以在自定義腳本中添加其他參數(shù)以適應(yīng)玲瓏環(huán)境或增加新功能。
4.2 編輯 build 腳本
將腳本中對(duì)應(yīng)應(yīng)用本體文件夾名稱的部分改為你的應(yīng)用本體文件夾名稱。例如,案例中將文件夾名稱改為 motrix,就直接在腳本中修改為 motrix。
接下來(lái),根據(jù)已知的軟件啟動(dòng)方式,修改腳本中的啟動(dòng)命令。對(duì)于 motrix,由于其 appimage 安裝包設(shè)計(jì)是進(jìn)入程序主文件夾后直接執(zhí)行 motrix,因此將腳本中 "./樣本啟動(dòng)文件.sh" 改為直接執(zhí)行 motrix即可,如下圖所示。
若想開(kāi)啟 Electron 的 Wayland 會(huì)話,那也可以如下圖所示修改(但目前 Electron 的 Wayland 顯示協(xié)議版并不成熟,不建議使用)。
最終,build 構(gòu)建腳本應(yīng)如下所示(以 motrix 為例):
Step 5加入 desktop 啟動(dòng)快捷方式和應(yīng)用圖標(biāo)
主要的部分完成后,剩下的就是讓應(yīng)用的快捷方式可以正常運(yùn)行應(yīng)用,以及能正常顯示圖標(biāo)。
5.1 修改 desktop 文件
首先,從 deb 安裝包和 appimage 解壓后的文件里找出 .desktop 的快捷方式,將其復(fù)制到工作目錄 /linglong/sources/share/applications 文件夾。
打開(kāi) .desktop 文件,設(shè)置關(guān)鍵屬性:
Name:設(shè)置啟動(dòng)菜單里會(huì)顯示的應(yīng)用名字;
Categories:設(shè)置應(yīng)用快捷方所在的文件夾類型 (如圖會(huì)放在網(wǎng)絡(luò)應(yīng)用里);
Exec:設(shè)置雙擊快捷方式后會(huì)執(zhí)行的命令;
Icon:設(shè)置圖標(biāo)顯示,如果你只如圖設(shè)置應(yīng)用名字那么桌面環(huán)境就會(huì)自動(dòng)去尋找以該名字(不包括后綴名)對(duì)應(yīng)的圖片。
在這里我們主要設(shè)置 Exec 和 Icon 兩個(gè)屬性,Exec 只需要填寫容器內(nèi)執(zhí)行路徑,玲瓏會(huì)自動(dòng)生成前置路徑。
所以我們?nèi)缦聢D填寫 Exec 路徑即可。
圖像直接填寫成你想要的名字即可(不要填絕對(duì)路徑),比如我這里填成motrix。
最后保存 desktop 文件即可完成對(duì)desktop快捷方式的編輯。
5.2 放置對(duì)應(yīng)應(yīng)用圖標(biāo)
首先找到你想給應(yīng)用設(shè)置成的圖標(biāo),注意分辨率不要過(guò)高(以 KDE Plasma 為例,最高支持 512x512 像素)。
隨后返回工作目錄 /linglong/sources/share 并新建文件夾,命令如下:
mkdir -p icons/hicolor/512x512/apps在文件管理器打開(kāi)效果如下:
將圖標(biāo)重命名為 desktop 文件中設(shè)置的 Icon 名稱加上后綴(如 motrix.png),然后復(fù)制到新建的圖標(biāo)路徑中,效果如下:
完成以上步驟,桌面快捷方式和應(yīng)用圖標(biāo)就設(shè)置成功了。如果 AppImage 應(yīng)用直接提供 usr/share 下的 icons 文件夾,只需確認(rèn)圖標(biāo)名稱,然后將圖標(biāo)復(fù)制到對(duì)應(yīng)路徑并按設(shè)置的名稱重命名即可。
Step 6構(gòu)建和調(diào)試應(yīng)用
返回工作目錄(linglong.yaml所在的文件夾),打開(kāi)終端運(yùn)行以下命令,開(kāi)啟構(gòu)建應(yīng)用。
ll-builder build
運(yùn)行情況如下所示:
若報(bào)錯(cuò)提示缺少 so 二進(jìn)制庫(kù)文件,需在 pkgs.org 或 Debian Packages 下載對(duì)應(yīng)安裝包,解包后將 so 文件放到工作目錄的 linglong/sources/libs 文件夾下,重新執(zhí)行 ll-builder build,如有需要重復(fù)此操作。
·pkgs.org:https://pkgs.org
·Debian Packages:https://www.debian.org/distrib/packages#search_contents
構(gòu)建完成后,在終端中運(yùn)行以下命令調(diào)試,檢查應(yīng)用是否正常運(yùn)行。
ll-builder run隨后會(huì)出現(xiàn)以下界面:
若出現(xiàn)由于 org.deepin.base 缺失 xdg-open 和 systemd-run 導(dǎo)致文件夾內(nèi)打開(kāi)和內(nèi)置瀏覽器打開(kāi)異常的問(wèn)題,可下載以下壓縮包,將 bin 和 libs 覆蓋原文件夾以解決。
Step 7導(dǎo)出 layer 安裝包
由于導(dǎo)出可運(yùn)行的 uab 文件在除 deepin/UOS 以外的發(fā)行版不支持,而且導(dǎo)出的文件體積會(huì)巨大(因?yàn)榘?Runtime),所以本文只提供導(dǎo)出安裝包的教程。 在 ll-builder run 測(cè)試通過(guò)后,終端運(yùn)行以下命令導(dǎo)出安裝包。
ll-builder export --layer
輸出內(nèi)容示例如下:
導(dǎo)出安裝包后的工作區(qū)目錄如下:
隨后安裝本地導(dǎo)出的 layer 包即可。 經(jīng)過(guò)檢查,桌面圖標(biāo)顯示正常,那么一個(gè)樣板玲瓏應(yīng)用就已經(jīng)打包成功了。本教程至此結(jié)束,希望這個(gè)教程能更好地幫助您構(gòu)建玲瓏包!
再次感謝社區(qū)用戶@mozixun 的分享。如果您在構(gòu)建過(guò)程中遇到了任何問(wèn)題,或者對(duì)我們的教程有任何建議,歡迎隨時(shí)在deepin 社區(qū)論壇與我們交流,參與項(xiàng)目討論。
關(guān)于項(xiàng)目
如意玲瓏(Linyaps)是一種新型的獨(dú)立包管理工具集,專注于解決 Linux 系統(tǒng)下由傳統(tǒng)軟件包格式的復(fù)雜性和交叉依賴關(guān)系引起的兼容性問(wèn)題。項(xiàng)目通過(guò)先進(jìn)的隔離技術(shù),將應(yīng)用與系統(tǒng)完全解耦,從根本上解決因環(huán)境變化引發(fā)的應(yīng)用兼容性問(wèn)題,實(shí)現(xiàn)“一個(gè)架構(gòu),一次構(gòu)建”,致力于簡(jiǎn)化軟件開(kāi)發(fā)流程、降低維護(hù)成本、加強(qiáng)數(shù)據(jù)安全,促進(jìn)技術(shù)與平臺(tái)間的協(xié)同合作,構(gòu)建一個(gè)更加繁榮、安全和高效的 Linux 軟件生態(tài)環(huán)境。
-
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213845 -
軟件
+關(guān)注
關(guān)注
69文章
5154瀏覽量
89231 -
容器
+關(guān)注
關(guān)注
0文章
511瀏覽量
22458 -
安裝包
+關(guān)注
關(guān)注
1文章
16瀏覽量
3705
原文標(biāo)題:技術(shù)市集 | 如何將 Linux 安裝包快速轉(zhuǎn)成玲瓏包
文章出處:【微信號(hào):linux_deepin,微信公眾號(hào):深度操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
labview程序生成安裝包問(wèn)題
labview程序生成安裝包問(wèn)題
求Linux版的labview安裝包
如何將多個(gè)LabVIEW生成的exe打包進(jìn)同一個(gè)安裝包??
altium designer 09安裝包
照明護(hù)照APP安裝包如何安裝到手機(jī)

評(píng)論