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

評論