Các chương trình được cài đặt qua snap không hiển thị trong Launcher


37

Chỉ cần cập nhật lên Ubuntu 16.04 và thử các gói snap lần đầu tiên.

Vì vậy, tôi cần lướilab để xem một số tập tin stl. Chạy vào để phát hành với đăng nhập pitn. Tìm thấy rằng cài đặt dòng lệnh của các gói snap không cần đăng nhập. Đã:

sudo snap install meshlab

và hey lưới được cài đặt, không đăng nhập pitn. Hoạt động tốt từ dòng lệnh. Tuy nhiên chương trình không hiển thị trong launcher. Tại sao lại thế này? Các gói snap không hiển thị trong launcher? Làm thế nào tôi có thể sửa lỗi này?

Câu trả lời:


40

Nếu bạn đang sử dụng zsh, các thư mục nhị phân và máy tính để bàn sẽ không tự động được thêm vào các biến môi trường của bạn. Để giải quyết vấn đề này, tôi đã thêm dòng sau vào / etc / zsh / zprofile (lấy từ Arch):

emulate sh -c 'source /etc/profile'

Điều này sẽ xử lý tệp / etc / hồ sơ của bạn bằng mô phỏng bash, lần lượt các nguồn /etc/profile.d/* và thiết lập các PATH thích hợp, v.v.

Để chỉ thêm các thư mục snap vào đường dẫn của bạn, không bao gồm tất cả phần còn lại của hồ sơ bash mặc định:

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

1
Cảm ơn! Hoạt động tốt vào ngày 17.10. Chuyển sang zsh đã mang đến vấn đề này cho tôi.
danwit

2
Họ nên sửa lỗi này trong quá trình cài đặt hoặc thêm các bước FAQ / Xử lý sự cố để chụp nhanh.
BradErzwh

1
Cảm ơn, làm việc cho tôi vào ngày 18.10. Hy vọng điều này sẽ được khắc phục bằng cách nào đó trong tương lai.
Pavel Davydov

1
Rực rỡ, thật không may, nó vẫn là một vấn đề vào ngày 19.04
jhole89

11

Nó được tích hợp vào hệ thống snap, nhưng bạn phải thêm liên kết vào dấu gạch ngang của mình. Để bắt đầu loại chương trình

snap run meshlab

một khi nó hoạt động, nhấp chuột phải vào biểu tượng và nhấp vào "thêm vào dấu gạch ngang".


7

Đối với tôi, nó dường như cũng liên quan đến sự kết hợp của Wayland / ZSH trong Ubuntu 18.04 - mặc dù /var/lib/snapd/desktopđược liệt kê trong XDG_DATA_DIRSbiến (điều này được thực hiện bởi /etc/profile.d/apps-bin-path.sh), trình khởi chạy không nhận ra các ứng dụng từ thư mục đó.

Cách giải quyết nhanh là liên kết sym các tệp máy tính để bàn, ví dụ:

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

5

Các gói snap không hiển thị trong launcher?

Họ làm miễn là các tệp snap .desktop thích hợp. Chỉ có Meshlab là meshlabservercó một tệp máy tính để bàn thích hợp (và thực tế, nó hiển thị trong trình khởi chạy của tôi). Các meshlabtập tin .desktop, tuy nhiên, đang cố gắng exec meshlab.meshlab, khi nó chỉ nên được sử dụng meshlab. Kết quả là, nó không xuất hiện.

Làm thế nào tôi có thể sửa lỗi này?

Nếu bạn chạy, snap info meshlabbạn sẽ thấy thông tin liên hệ của nhà xuất bản. Tôi đề nghị bạn báo cáo một lỗi cho họ. Cho đến lúc đó, bạn luôn có thể chạy meshlabtừ CLI hoặc tạo tệp .desktop của riêng bạn cho nó.


5

Chạy Kubfox 18.04 giải pháp cho tôi khi thêm

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

đến một tập tin tùy chỉnh như snap-apps.shtrong ~/.config/plasma-workspace/env. Nhưng điều đó chỉ áp dụng cho Plasma 5 và có thể đã được sửa trong Ubuntu 18.10.

Như câu trả lời đã được đề cập trong câu trả lời của anh ấy, thông thường /etc/profile.d/apps-bin-path.shdường như không hoạt động.


2
Điều này đã làm việc hoàn hảo - người dùng Kubfox đồng nghiệp.
John

Cảm ơn! Đã giải quyết vấn đề cho tôi trên Kubfox.
Làm việc

3

Bạn phải chạy snap run meshlabtừ thiết bị đầu cuối và dừng nó, sau đó bạn sẽ thấy Meshlab trong danh sách ứng dụng của bạn


3

Tôi không thể bình luận về bài viết của người khác. Tuy nhiên, điều này là để thêm vào câu trả lời của DS đã giúp tôi trên Fedora 28 (theo như tôi có thể nói, sử dụng Wayland)

Tôi đã thêm đoạn trích sau vào ~ / .bash_profile để liên kết đăng nhập từng tệp trong / var / lib / snapd / desktop / application. Tương tự, điều này có thể được sửa đổi để loại bỏ các liên kết cho các ứng dụng không còn tồn tại nữa bằng cách chuyển đổi các đường dẫn trong dòng for và dòng if sau đó thay thế ln bằng một 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

Có lẽ có một số cách khác nhau để thực hiện điều này, nhưng nó hoạt động.


1
Sử dụng vô dụng ls. Sử dụng for in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...thay thế. Một cách ngắn hơn để đạt được điều này sẽ là ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null.
David Foerster

Tôi biết có một cách để thực hiện ví dụ đầu tiên của bạn, tuy nhiên tôi không thể nhớ phần $ {i ## * /} khi tôi viết bài này. Tôi sẽ chỉnh sửa bài viết của mình để bao gồm biến thể đó. Tuy nhiên, đề xuất sau của bạn không kiểm tra xem liên kết đã tồn tại chưa, do đó thực hiện lại lệnh ln một cách vô ích. Trong thực tế, tôi muốn tìm một cách để tránh grep cũng như giảm số lượng quá trình xuất hiện trong khi thực thi. Cám ơn bạn đã góp ý.
Eric Niconovich

Đề xuất thứ hai của tôi sẽ kiểm tra xem tệp mục tiêu đã tồn tại chưa và nếu đúng như vậy, sẽ in một thông báo lỗi (chuyển hướng đến /dev/nullvà do đó bị loại bỏ). Nó không làm bất cứ điều gì mà Vv vô dụng, nó chỉ thực hiện một lần duy nhất và thực hiện một cuộc gọi hệ thống tới symlink(2)hoặc symlinkat(2)cho mỗi tệp phù hợp. Nếu bạn sử dụng một vòng lặp để kiểm tra loại tệp ( stat(2)) và sau đó (có điều kiện) fork & exec ln(1), điều này sẽ gọi công symlink*(2)việc đó vô dụng hơn rất nhiều.
David Foerster

1

Điều tương tự với máy xay sinh tố.

snap run blender

không hoạt động, tuy nhiên không khắc phục vấn đề.

Tôi đã phải sao chép blender.desktoptừ ( /snap/blender/current/blender.desktopsang ) và sau đó tất cả đã được sửa: máy xay hiển thị trong menu gnome và nautilus liên kết nó với các tệp./usr/share/applicationssudo.blend

Trông giống như một số vết nứt giữa snaps và gnomes với tôi. Có lẽ những gì chúng ta cần là một gnome snappy (hoặc nó là một snap gnomey; ^).


1
Xin chào, tôi đã làm những gì bạn đã nói nhưng giờ đây tôi đã có hai biểu tượng cho mọi chương trình Tôi đã làm điều này ... xem i.imgur.com/aamlQJZ.png Điều này có xảy ra với bạn không?
Cirelli94

1

Sao chép lối tắt ứng dụng từ /var/lib/snapd/desktop/applications/sang/usr/share/applications/

Thí dụ: sudo cp /var/lib/snapd/desktop/applications/brave_brave.desktop /usr/share/applications/

Tôi đã phải làm điều này trên GalliumOS 3.0 (dựa trên Xubfox)


0

Tôi gặp vấn đề tương tự trên Ubuntu 18.04. Nó dường như là một vấn đề với Wayland. Giải pháp cho tôi là chuyển trở lại từ Wayland sang Xorg.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.