運行自prime

運行自prime

我的快照安裝應用程式是 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-corecore

為了體驗環境的感覺,最好跳入該環境的 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/

相關內容