我的快照安裝應用程式是 wxWidgets 應用程式。它在編譯和連結後運行良好,但一旦安裝後就無法運行。我假設當我輸入應用程式的名稱時,「snapd」可能會在目錄下運行包裝器/snap/<myappname>/x1/
。無論如何,我得到...
Gtk-Message: Failed to load module "overlay-scrollbar"
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "unity-gtk-module"
23:11:06: Error: Unable to initialize GTK+, is DISPLAY set properly?
我唯一的猜測是,並非所有依賴項都能/snap/<mayappname>/x1/usr/lib/x86_64-linux-gnu/
透過快照安裝找到並放置在目錄中。我嘗試用兩種方式來檢驗這個假設。首先,透過在安裝之前運行prime
目錄,但該錯誤在那裡無法重現。其次,透過將我認為所需的庫複製到上述目錄中,但它是唯讀的,即使我將 snapcraft 限制更改為devmode
並--devmode
在安裝過程中使用該標誌,即使我嘗試chmod 777 .
以 root 身份大聲喊叫。
如果有人有興趣看看我的愚蠢項目,它可以從...克隆
http://github.com/spencerparkin/RubiksCube.git
snapcraft.yaml 檔案配置為運行 scons。我不會在專案根目錄中嘗試 snapcrafting。在嘗試之前,我將 snapcraft.yaml 檔案複製到其他目錄。
我已經走了很長一段路,感覺非常接近真正讓這件事發揮作用......只是一個又一個的障礙......我很糟糕。
答案1
因此,讓我們以這個應用程式為例,因為這裡存在著許多問題:
運行自prime
當您直接從經典系統運行時,prime
您將看到經典系統擁有的所有庫,因此這並不是最好的方法。當作為折斷在本例中,實際看到的根檔案系統是ubuntu-core
或core
。
為了體驗環境的感覺,最好跳入該環境的 shell,您可以透過執行以下命令來實現:
snap run --shell <snap-name>.<app-name>
只讀快照
為實際快照安裝時,快照是對 的掛載squashfs
,該檔案系統是唯讀的,這也是您無法對已安裝的快照進行寫入和修改的原因。
在開發過程中,最好從您的專案目錄進行:
snap try prime [--devmode]
透過這樣做,您可以對prime
目錄進行即時編輯以測試事物的變化。
讓應用程式啟動
模組載入警告並沒有那麼糟糕,它們也會發生在某些快照上。不好的是它找不到顯示器。為了快速入門,桌面啟動器可以讓您快速啟動。
它們作為零件交付,為了了解如何使用 snapcraft,運行
snapcraft update
snapcraft search desktop
要查看其中之一的parts
作用,請運行
snapcraft define <part-name>
有關桌面啟動器的更多信息,請訪問https://insights.ubuntu.com/2016/07/06/ubuntu-app-developer-blog-announcing-new-snap-desktop-launchers/