該存儲庫創建並分發非官方的 Bottles Appimage。
放棄
動機
施工方法
使用 Conty 建造瓶子
為什麼是康蒂?
為什麼 Conty 成為 AppImage?
下載
以前的替代方法
故障排除
製作人員
輕鬆安裝和更新
官方 Bottles 包僅以 Flatpak 形式提供。
所有建置方法均基於非官方 AUR 包,位於 https://aur.archlinux.org/packages/bottles
任何抱怨都只是因為這種心理封閉!
作為一個打包者,我只能遵循我的上游或非官方開發人員給我的東西。
開發者和打包者是兩個完全相反的類別:
開發人員創建程式
打包者將其捆綁並分發(如 deb、rpm、flatpak、snap、appimage...)以供能力平台使用。
開發人員當然有興趣看到他的應用程式在任何地方都可以工作,因此如果一個套件在某個平台上工作或不工作,那麼打包者就有責任使其相容。
Bottles 計畫中最大的障礙是一些合作者,為了支持 Flatpak 作為唯一的包裝格式,他們對每個使用替代包裝格式的請求或建議都堅決拒絕。遇到一些傲慢的人後,他們繼續做與他們所說的相反的事情。
我感謝 Bottles 的開發者 @mirkobrombin,他在多次嘗試後幫助我建立了 AppImage,並告訴我提示和技巧。感謝米爾科!
我曾多次嘗試允許非 Flatpak 用戶以替代方式使用 Bottles,但並非沒有困難。
目前,唯一可靠的方法是透過 Conty。
目前,我製作的AppImage包含以下結構:
|---- AppRun |---- com.usebottles.bottles.desktop |---- com.usebottles.bottles.svg |---- conty.sh
AppRun是AppImage的核心腳本
Bottles 的 .desktop 文件
瓶子的圖標
Arch Linux 容器名為“conty.sh”,它包含 Bottles、WINE 和圖形驅動程式
第 1、2 和 3 點是任何 AppImage 的基本元素。
腳本「conty.sh」(4) 是此 AppImage 元素中最重要的一個。
這就是我工作流程中每個文件的用途:
create-arch-bootstrap.sh 建立一個 Arch Linux chroot,其中 Bottles 從 AUR 安裝。這是要使用的第一個腳本(需要“root”);
create-conty.sh 是此過程中使用的第二個腳本,它將“create-arch-bootstrap.sh”創建的Arch Linux chroot 轉換為名為“conty.sh”的大腳本,其中包括“ conty-start.sh” ”;
conty-start.sh 是負責啟動初始化過程以使 Conty 運作的腳本。它包含一個偵測所需 Nvidia 驅動程式版本的功能,如果需要,腳本會下載並將它們安裝在 ~/.local/share/Conty 中。它還負責使用“bubbblewrap;”將 Conty 與主機系統完全整合。
utils_dwarfs.tar.gz包含“dwarfs”,一組類似squashfs的壓縮檔案系統的工具,需要盡可能地壓縮“conty.sh”;
Bottles-conty-builder.sh 是我編寫的腳本,用於在 AppRun、.desktop 檔案和圖示附近處理“conty.sh”,以將所有內容轉換為 AppImage。它可以在 github 操作中使用,但可以在本地執行,以使用我的 Conty 分支中的「conty.sh」測試版本來建立建立 AppImage。
文件 1、2、3 和 4 來自我的 https://github.com/Kron4ek/Conty 分支
文件 1、2 和 3 是原始文件的修改版,使它們更小,並且僅包含使 Bottles 工作所需的內容。
要了解有關“Conty”的更多信息、下載更完整的版本或了解有關如何創建自己的版本的更多信息,請訪問該項目的官方存儲庫:
Conty 是一個具有自己資源的便攜式 Arch Linux 容器。
如果容器本身沒有可用的話,它是唯一安裝自己的 Nvidia 驅動程式副本的解決方案(見下圖)。
驅動程式安裝在 ~/.local/share/Conty 目錄中,最多可佔用 700 MB 的空間。
考慮到 Bottles 在第一次啟動時下載必要的庫並為 WINE 創建配置文件,在 ~/.local/share/bottles 中達到了大約 1.4 GB 的空間,我想說這個大小是可以接受的。
這有點像安裝 Flatpak 運行時。但只有一個。其餘檔案則儲存在 Conty 本身。
將 Conty 包裝到 AppImage 中可以使用我的套件管理器「AM」將其隔離(透過 bubblewrap 沙箱)。
此 AppImage 是新一代 AppImage(Type3 AppImage),因此您不需要在系統上安裝libfuse2
即可使用它。
您可以從 https://github.com/ivan-hc/Bottles-appimage/releases/tag/continuous 下載 AppImage
可用的資源很少,這促使我在自己的可能性範圍內不斷嘗試和犯錯,或多或少有效。
康蒂的使用只是一個長系列中的最新一個。
舊的建置腳本在此儲存庫的目錄中可用:
「legacy」包含在 JuNest 之上構建 AppImage 的實驗腳本,但它缺乏硬體加速,請參閱 ivan-hc/ArchImage#20
「hybrid」之所以有效,是因為我的兩個專案 AppImaGen 和 ArchImage 的混合,即 Arch Linux 和 Debian 軟體包的混合。它僅適用於較新的發行版,直到更新為基本的 Arch Linux 軟體包(python)為止,這種方法並不好繼續維護。仍可下載此方法的唯一可用版本,網址為 https://github.com/ivan-hc/Bottles-appimage/releases/tag/51.11-2
鑑於此存儲庫的“麻煩”歷史,我不知道 Conty 是否是我工作流程的最終解決方案。這完全取決於上游開發人員或第三方向我提供的軟體包。
首次啟動時,如有必要,將透過 Conty 下載視訊卡的驅動程式(請參閱上面的螢幕截圖)。這可能需要幾秒鐘甚至幾分鐘。只有在您首次啟動時從終端啟動 Bottles 而不是使用啟動器時,才會注意到此行為。
bottles-cli
用法為此 Appimage 建立一個符號連結「 bottles-cli
」並將其新增至 $PATH 中,因此當您將程式新增至桌面時,您將能夠從帶有相關圖示的選單中啟動它。如果您使用“AM”和“AppMan”安裝“bottles”,則該功能已經可用。
@mirkobrombin 感謝我所表現出的耐心和可用性
康蒂 https://github.com/Kron4ek/Conty
「AM」/「AppMan」是一組用於安裝、更新和管理 AppImage 套件和其他可移植格式的腳本和模組,就像 APT 管理 DEB 套件、DNF 管理 RPM 等一樣...使用受Arch用戶儲存庫啟發的大型Shell 腳本資料庫,每個資料庫專用於一個應用程式或一組應用程式。
“AM”/“AppMan”的引擎是“APP-MANAGER”腳本,根據您安裝或重新命名的方式,它允許您在系統範圍內(對於單一系統管理員)或本地(對於每個使用者)安裝應用程式).
“AM”/“AppMan”旨在成為所有 AppImage 套件的預設套件管理器,為它們提供一個安身之所。
您可以在portable-linux-apps.github.io/apps查閱託管應用程式的完整清單。
安裝“AM” | 查看所有可用的應用程式 | 在 ko-fi.com 上支持我 | 在 PayPal.me 上支持我 |
---|