스냅을 통해 설치된 프로그램은 실행기에 표시되지 않습니다


37

Ubuntu 16.04로 업데이트되었고 처음으로 스냅 패키지를 시도했습니다.

그래서 일부 stl 파일을 보려면 meshlab이 필요했습니다. pitn 로그인 문제가 발생했습니다. snap 패키지의 명령 행 설치에 로그인 할 필요가 없음을 발견했습니다.

sudo snap install meshlab

그리고 presto meshlap이 설치되었고, 로그인이 필요 없습니다. 커맨드 라인에서 잘 작동합니다. 그러나 프로그램은 실행기에 표시되지 않습니다. 왜 이런거야? 런처에 스냅 패키지가 표시되지 않습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변:


40

zsh를 사용하는 경우 스냅 바이너리 및 데스크탑 디렉토리가 환경 변수에 자동으로 추가되지 않습니다. 이 문제를 해결하기 위해 다음 줄을 / etc / zsh / zprofile (Arch에서 가져옴)에 추가했습니다.

emulate sh -c 'source /etc/profile'

이것은 / etc / profile 파일을 bash 에뮬레이션으로 처리하여 /etc/profile.d/*를 소싱하고 적절한 PATH 등을 설정합니다.

나머지 모든 기본 bash 프로파일을 포함하지 않고 경로에 snap 디렉토리 만 추가하려면 다음을 수행하십시오.

emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'

1
감사! 17.10에서도 잘 작동합니다. zsh로 전환하면이 문제가 발생했습니다.
danwit

2
설치 과정에서이 문제를 해결하거나 스냅 샷에 대한 FAQ / 문제 해결 단계를 추가해야합니다.
BradErzwh

1
고마워, 18.10에 나를 위해 일했다. 이것이 어떻게 든 수정 될 수 있기를 바랍니다.
Pavel Davydov

1
화려한, 불행히도 여전히 19.04의 문제
jhole89

11

스냅 시스템에 내장되어 있지만 대시에 링크를 추가해야합니다. 프로그램 유형을 시작하려면

snap run meshlab

일단 실행되면 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "대시에 추가"를 클릭하십시오.


7

나에게 그것은 우분투 18.04에서 Wayland / ZSH의 조합과 관련이있는 것 같습니다- 변수에 /var/lib/snapd/desktop나열되어 있지만 (실행자가 수행함 ) 런처는 해당 폴더에서 앱을 인식하지 못합니다.XDG_DATA_DIRS/etc/profile.d/apps-bin-path.sh

빠른 해결 방법은 다음과 같이 원하는 데스크탑 파일을 sym-link하는 것입니다.

ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications

5

런처에 스냅 패키지가 표시되지 않습니까?

스냅이 적절한 .desktop 파일을 제공하는 한 유지됩니다. Meshlab만이 meshlabserver적절한 데스크탑 파일을 가지고 있습니다 (실제로 런처에 나타납니다). 그러나 meshlab.desktop 파일 은 .exe를 사용하려고 할 meshlab.meshlab때 exec를 시도하고 있습니다 meshlab. 결과적으로 표시되지 않습니다.

이 문제를 어떻게 해결할 수 있습니까?

실행 snap info meshlab하면 게시자의 연락처 정보가 표시됩니다. 나는 그들에게 버그를보고하는 것이 좋습니다. 그때까지는 항상 meshlabCLI에서 실행 하거나 고유 한 .desktop 파일을 만들 수 있습니다.


5

Kubuntu 18.04를 추가하여 솔루션을 실행하십시오.

export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/snapd/desktop/"

와 같은 사용자 정의 파일 snap-apps.sh~/.config/plasma-workspace/env. 그러나 그것은 Plasma 5에만 적용되며 우분투 18.10에서 이미 수정되었을 수 있습니다.

dsager가 이미 그의 답변에서 언급했듯이 평소 /etc/profile.d/apps-bin-path.sh에는 효과가없는 것 같습니다.


2
이것은 Kubuntu 사용자와 완벽하게 작동했습니다.
john

감사! 쿠분투에서 나를 위해 문제를 해결했습니다.
Дмитрий Полянин

3

당신은 snap run meshlab터미널 에서 실행 하고 중지 해야 응용 프로그램 목록에 Meshlab 이 표시 됩니다


3

다른 사람의 게시물에 댓글을 달 수 없습니다. 그러나 이것은 페도라 28에 도움이되는 dsager의 답변에 추가하는 것입니다 (가능한 한 Wayland를 사용합니다)

~ / .bash_profile에 다음 코드를 추가하여 / var / lib / snapd / desktop / applications의 각 파일에 로그인 할 때 연결했습니다. 마찬가지로 for 줄과 if 줄의 경로를 전환 한 다음 ln을 rm으로 바꾸면 더 이상 존재하지 않는 앱의 링크를 제거하도록 수정할 수 있습니다.

for i in /var/lib/snapd/desktop/applications/*.desktop; do
    if [ ! -f ~/.local/share/applications/${i##*/} ];then
            ln -s /var/lib/snapd/desktop/applications/${i##*/} ~/.local/share/applications/${i##*/};
    fi;
done

이 작업을 수행하는 데는 몇 가지 다른 방법이있을 수 있지만 작동합니다.


1
쓸모없는 사용 ls. for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...대신 사용하십시오 . 이를 달성하는 더 짧은 방법은 다음과 같습니다 ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null.
David Foerster

첫 번째 예제를 실행할 방법이 있다는 것을 알았지 만 처음에 이것을 쓸 때 $ {i ## * /} 부분을 기억할 수 없었습니다. 해당 변형을 포함하도록 게시물을 편집하겠습니다. 그러나 후자의 제안은 링크가 이미 존재하는지 확인하지 않으므로 ln 명령을 불필요하게 다시 실행합니다. 사실, grep을 피하고 실행하는 동안 발생하는 프로세스 수를 줄이는 방법을 찾고 싶었습니다. 귀하의 의견에 감사드립니다.
에릭 니코 노 비치

두 번째 제안 대상 파일이 이미 존재하는지 확인하고 그 경우 오류 메시지를 표시합니다 (리디렉션 /dev/null되어 억제됨). "무용지물"은하지 않습니다 : 포크와 실행은 한 번만 수행되며 일치하는 파일마다 symlink(2)또는 하나의 시스템 호출을 symlinkat(2)합니다. 루프를 사용하여 파일 유형 ( stat(2)) 을 확인한 다음 (조건부) fork & exec ln(1)를 확인하면 symlink*(2)훨씬 더 쓸모없는 작업입니다.
David Foerster

1

블렌더도 마찬가지입니다.

snap run blender

작동하지만 문제를 해결하지 못했습니다.

blender.desktop에서 /snap/blender/current/blender.desktop/usr/share/applications(을 sudo) 복사해야했고 모든 것이 수정되었습니다. 블렌더가 그놈 메뉴에 표시되고 노틸러스가 .blend파일 과 연결 합니다.

스냅과 그놈 사이의 균열처럼 보입니다. 아마도 우리에게 필요한 것은 뻔뻔스러운 그놈입니다 (또는 gnomey snap; ^).


1
안녕하세요, 당신이 말한 것을했지만 지금은 내가 한 모든 프로그램에 대해 두 개의 아이콘이 있습니다 ... i.imgur.com/aamlQJZ.png 참조 이것이 당신에게도 일어 났습니까?
Cirelli94

1

응용 프로그램 바로 가기를에서 /var/lib/snapd/desktop/applications/로 복사/usr/share/applications/

예: sudo cp /var/lib/snapd/desktop/applications/brave_brave.desktop /usr/share/applications/

GalliumOS 3.0 (Xubuntu 기반)에서이 작업을 수행해야했습니다.


0

우분투 18.04에서 같은 문제가 발생했습니다. Wayland에 문제가있는 것 같습니다. 나를위한 해결책은 Wayland에서 Xorg로 다시 전환하는 것이 었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.