Програми, встановлені за допомогою оснастки, не відображаються у програмі Launcher


37

Щойно оновлено до Ubuntu 16.04 та вперше пробує оснащення пакетами.

Тому мені знадобився meshlab, щоб переглянути деякі файли stl. Виявився, щоб вийти з pitn входом. Виявив, що для встановлення командних рядків оснащення пакетів не потрібен вхід.

sudo snap install meshlab

і hey presto meshlap встановлений, увійти не пітн. Добре працює з командного рядка. Однак програма не відображається в пусковій установці. Чому це? Чи не з'являються пакети оснащення в пусковій установці? Як я можу це виправити?

Відповіді:


40

Якщо ви використовуєте zsh, оснащені бінарні та настільні каталоги автоматично не будуть додані до змінних вашого середовища. Для того, щоб вирішити це питання, я додав наступний рядок до / etc / zsh / zprofile (взятий з Arch):

emulate sh -c 'source /etc/profile'

Це обробить ваш файл / etc / profile з емуляцією bash, яка, в свою чергу, джерела /etc/profile.d/* та встановлює відповідні PATHs тощо.

Щоб додати у свій шлях лише каталоги оснащення, не включаючи всі інші профілі bash за замовчуванням:

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

1
Спасибі! Також добре працює 17.10. Перехід на zsh також вирішив цю проблему для мене.
danwit

2
Вони повинні виправити це в процесі встановлення або додати відповіді на поширені запитання / усунення несправностей для оснащення.
BradErzwh

1
Дякую, працювали для мене 18.10. Сподіваюсь, це буде якось виправлено в майбутньому.
Павло Давидов

1
Блискуча, на жаль, її проблема все ще залишається 19.04
jhole89

11

Він вбудований у систему оснащення, але вам потрібно додати посилання на тире. Щоб запустити тип програми

snap run meshlab

як тільки він працює і працює, клацніть правою кнопкою миші на піктограмі та натисніть «додати тире».


7

Для мене, здається, це також пов’язано з комбінацією Wayland / ZSH під Ubuntu 18.04 - навіть незважаючи на те /var/lib/snapd/desktop, що вказано у XDG_DATA_DIRSзмінній (це робиться /etc/profile.d/apps-bin-path.sh), запускаючий не розпізнає програми з цієї папки.

Швидкий спосіб вирішити це, щоб позначити потрібні файли на робочому столі, наприклад:

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

5

Чи не з'являються пакети оснащення в пусковій установці?

Вони виконуються до тих пір, поки оснащення не доставляє належні файли .desktop. Тільки Meshlab meshlabserverмає належний файл на робочому столі (і справді він відображається в моєму запуску). Файл meshlab.desktop, однак, намагається виконати meshlab.meshlab, коли його потрібно просто використовувати meshlab. Як результат, вона не відображається.

Як я можу це виправити?

Якщо ви запустите, snap info meshlabви побачите контактну інформацію для видавця. Я пропоную вам повідомити про помилку. До цього часу ви завжди можете запустити meshlabз CLI або створити для нього власний .desktop файл.


5

Запуск Kubuntu 18.04 рішення для мене як додавання

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

до користувацького файлу, як snap-apps.shу ~/.config/plasma-workspace/env. Але це стосується лише Плазми 5 і може бути вже виправлено в Ubuntu 18.10.

Як уже говорив у своїй відповіді dsager, звичайно, /etc/profile.d/apps-bin-path.shце не працює.


2
Це спрацювало чудово - колега користувач Kubuntu.
Джон

Спасибі! Вирішили проблему для мене на Kubuntu.
Дмитрій Полянин

3

Вам потрібно бігти snap run meshlabз терміналу і зупиняти його, тоді ви побачите Meshlab у списку додатків


3

Я не міг коментувати чужий пост. Однак до цього слід додати відповідь dsager, яка допомогла мені в Fedora 28 (який, наскільки я можу сказати, використовує Wayland)

Я додав наступний знімок до свого ~ / .bash_profile, щоб посилатися на вхід для кожного файлу в / var / lib / snapd / desktop / apps. Так само це можна змінити для видалення посилань на додатки, які вже не існують, перемикаючи шляхи в рядку 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.
Девід Фоерстер

Я знав, що існує спосіб виконати ваш перший приклад, однак я не міг запам'ятати частину $ {i ## * /}, коли я писав це. Я відредагую свою публікацію, щоб включити цей варіант. Однак остання пропозиція не перевіряє, чи існує посилання, таким чином, марно повторно виконувати команду ln. Насправді я хотів знайти спосіб уникнути грепу, а також зменшити кількість процесів, що запускаються під час виконання. Дякуємо за ваш коментар.
Ерік Ніконович

Моє друге речення робить перевірку , якщо цільовий файл вже існує , і якщо це так, то виводить повідомлення про помилку (редирект /dev/nullі , таким чином , пригнічується). Він не робить нічого "марного": він розсилає & exec одноразово і робить один системний дзвінок у symlink(2)або symlinkat(2)для кожного відповідного файлу. Якщо ви використовуєте цикл для перевірки типу файлу ( stat(2)), а потім (умовно) fork & exec, ln(1)який викликає, symlink*(2)що це набагато більше "марної" роботи.
Девід Фоерстер

1

Те ж саме з блендером.

snap run blender

все-таки працює, однак проблему не виправили.

Мені довелося копіювати blender.desktopз /snap/blender/current/blender.desktopдо /usr/share/applicationssudo), і тоді все було виправлено: blender показує в меню gnome, а nautilus пов'язує його з .blendфайлами.

Мені схоже на якусь щілину між знімками та гномами. Можливо, нам потрібен спритний гном (або це гномейський оснащення; ^).


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

Я зіткнувся з тим же номером на Ubuntu 18.04. Здається, це проблема з Wayland. Для мене рішенням було перейти назад з Wayland до Xorg.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.