내 스냅 설치 앱은 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 .
시끄러운.
내 멍청한 프로젝트를 보고 싶은 사람이 있다면 다음에서 복제할 수 있습니다.
http://github.com/spencerparkin/RubiksCube.git
snapcraft.yaml 파일은 scons를 실행하도록 구성됩니다. 나는 프로젝트 루트에서 snapcrafting을 시도하지 않을 것입니다. 시도하기 전에 snapcraft.yaml 파일을 다른 디렉터리에 복사합니다.
나는 먼 길을 왔고 실제로 이 일이 작동하게 만드는 데 너무 가까워졌다고 느낍니다. 장애물이 하나씩 하나씩... 짜증나네요.
답변1
여기에는 많은 문제가 있으므로 이 아파트를 살펴보겠습니다.
다음에서 실행prime
클래식 시스템에서 직접 실행하면 prime
클래식 시스템에 있는 모든 라이브러리가 표시되므로 실제로는 최선의 방법은 아닙니다. 다음과 같이 실행할 때스냅실제로 표시되는 루트 파일 시스템은 이 경우 ubuntu-core
또는 입니다 core
.
환경이 어떤 느낌인지 경험하려면 해당 환경의 셸로 이동하는 것이 더 나을 수 있습니다. 다음을 실행하면 됩니다.
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-announce-new-snap-desktop-launchers/