Не отображаются snap приложения
Только что обновлено до 16.04 & сначала попробуйте оснастить пакеты.
Мне понадобился meshlab для просмотра некоторых stl-файлов. Ran in, чтобы выполнить вход в систему p-i-t-n. Найдено, что для командной строки для установки snap-пакетов не требуется вход в систему. Did:
Если вы используете zsh, привязанные двоичные и настольные каталоги не будут автоматически добавляться в переменные среды. Чтобы решить эту проблему, я добавил следующую строку в /etc /zsh /zprofile (взято из Arch):
Это обработает ваш файл /etc /profile с эмуляцией bash, который, в свою очередь, станет источником /etc/profile.d/* и задает правильные PATH и т. д.
Чтобы добавить только привязанные каталоги к вашему пути, не включая весь остальной профиль bash по умолчанию:
Делают ли пакеты snap в панели запуска?
Они работают до тех пор, пока snap отправляет файлы .desktop. Только в meshlabserver Meshlab есть собственный файл рабочего стола (и действительно, он отображается в моей панели запуска). Однако файл meshlab .desktop пытается выполнить exec meshlab.meshlab , когда нужно просто использовать meshlab . В результате он не появляется.
Если вы запустите snap info meshlab , вы увидите контактную информацию для издателя. Я предлагаю вам сообщить об ошибке. До этого вы всегда можете запустить meshlab из CLI или создать для него свой собственный файл .desktop.
Вам необходимо запустить snap run meshlab с терминала и остановить его, после чего вы увидите Meshlab в своем приложении список
То же самое с блендером.
действительно работает, однако проблема не устранена.
Мне пришлось скопировать blender.desktop из /snap/blender/current/blender.desktop to /usr/share/applications (с помощью sudo ) а затем все было исправлено: blender показывает в меню gnome, а nautilus связывает его с файлами .blend .
Похоже, какая-то трещина между снимками и гномами для меня. Возможно, нам нужен мгновенный гном (или это гномный щелчок; ^).
Для меня это также похоже на комбинацию Wayland /ZSH под Ubuntu 18.04 - даже если /var/lib/snapd/desktop указан в переменную XDG_DATA_DIRS (это делается с помощью /etc/profile.d/apps-bin-path.sh ), пусковая установка не распознает приложения из этой папки.
Быстрое обходное решение состоит в том, чтобы символизировать нужные файлы рабочего стола, например:
Я не мог комментировать чужую почту. Тем не менее, это добавить к ответу dsager, который помог мне на Fedora 28 (насколько я могу судить, использует Wayland)
Я добавил следующий snip в свой файл
/.bash_profile для ссылки на каждый файл в каталоге /var /lib /snapd /desktop /applications. Аналогичным образом это можно было бы изменить, чтобы удалить ссылки для приложений, которые больше не существуют, путем переключения путей в строке for и строки if, затем заменяя ln на rm.
Только что обновил до Ubuntu 16.04 и пробовал делать мгновенные пакеты.
Поэтому мне понадобился meshlab для просмотра некоторых файлов stl. Подбежал к проблеме с входом в систему pitn. Обнаружил, что для установки пакетов Snap не требуется вход в систему.
Если вы используете zsh, бинарные и настольные каталоги snap не будут автоматически добавляться в переменные среды. Чтобы решить эту проблему, я добавил следующую строку в / etc / zsh / zprofile (взято из Arch):
Это обработает ваш файл / etc / profile с помощью эмуляции bash, которая, в свою очередь, создаст /etc/profile.d/* и установит правильные пути и т.д.
Чтобы добавить только каталоги моментальных снимков в ваш путь, не включая все остальные профили bash по умолчанию:
Благодарность! Хорошо работает и на 17.10. Переход на zsh поднял и эту проблему для меня. Спасибо, у меня сработало 18.10. Надеюсь, что это будет исправлено в будущем. Бриллиант, к сожалению, это все еще проблема на 19.04Он встроен в систему привязки, но вы должны добавить ссылку на ваш тире. Для запуска типа программы
как только он будет запущен, щелкните правой кнопкой мыши по значку и нажмите «добавить в тире».
Для меня это также, похоже, связано с комбинацией Wayland / ZSH в Ubuntu 18.04 - даже если /var/lib/snapd/desktop она указана в XDG_DATA_DIRS переменной (это сделано /etc/profile.d/apps-bin-path.sh ), программа запуска не распознает приложения из этой папки.
Быстрый обходной путь - это символическая ссылка на нужные файлы рабочего стола, например:
Пакеты моментальных снимков не отображаются в программе запуска?
Они делают, пока оснастка отправляет правильные файлы .desktop. Только у Meshlab meshlabserver есть надлежащий настольный файл (и он действительно отображается в моем лаунчере). meshlab .Desktop файл, однако, пытается EXEC meshlab.meshlab , когда это нужно просто использовать meshlab . В результате это не обнаруживается.
Если вы запустите, snap info meshlab вы увидите контактную информацию для издателя. Я предлагаю вам сообщить им об ошибке. До этого вы всегда можете запустить meshlab из CLI или создать для него собственный файл .desktop.
Я установил приложения привязки Maillspring и Visual Studio Code, они установились нормально и изначально могли запускаться из тире, но после входа в систему и выхода из нее ни одно из них больше не появлялось в тире.
Поиск их в магазине программного обеспечения показывает, что они установлены, и я могу запустить их оттуда.
Почему для этого важна оболочка по умолчанию?
- Обновленный ответ на основе вашего комментария.
- @calin Можете ли вы привести примеры установленных пакетов snap, которые не отображаются после повторного входа в систему?
- Какая версия Ubuntu? Работают ли снимки нормально при запуске из fish оболочка?
- @estibordo Я сделал.
Команда, которую вы изначально указали в своем вопросе chsh -s which bash была, как вы говорите, опечаткой, которая вызвала большую путаницу вокруг вашего вопроса. Даже если он был правильно сформирован с помощью символов `, вокруг которых bash, как показано ниже.
это изменит оболочку на bash (по умолчанию). Чтобы изменить оболочку на fish использовать
или просто используйте команду chsh и введите путь к оболочке, которую вы хотите использовать. Смотри ниже:
Для получения дополнительной информации о панцире рыбы см. Здесь.
РЕДАКТИРОВАТЬ: Что касается пакетов snap: будет ли иметь значение оболочка по умолчанию? ответ возможно, поскольку это зависит от предположений и подхода программиста. Обратитесь к различиям в том, как bash и как рыба обрабатывает вещи, в предыдущей ссылке. Например, у рыбы нет неявной подоболочки, которая может вызывать неожиданные побочные эффекты при назначении переменных для программиста, ожидающего поведения, аналогичного bash. Здесь есть хороший пример ожидания неявной подоболочки в вопросе.
Почему? В попытке прояснить, похоже, что концепция наследования по-разному обрабатывается в Fish и других более распространенных оболочках, таких как bash. Насколько я понимаю, это может привести к неожиданному поведению каналов, циклов и функций (все из которых являются обычно используемыми стратегиями программирования).
Программист также может полагаться на встроенные функции оболочки, которые либо не существуют в fish, либо могут быть реализованы неожиданным образом.
подоболочки в Unix и Linux
Такая же проблема здесь (Ubuntu 18.10): после chsh -s `which fish` , Gnome Shell больше не находит приложения snapp даже после добавления /snap/bin к $PATH .
- открытый терминал
- идти к Предпочтения, нажмите на свой профиль, затем команда вкладка, отметьте "запустить пользовательскую команду вместо моей оболочки" затем в пользовательская команда положить fish .
- сделайте это для каждого профиля
После этого запуск Gnome-Terminal (либо из Gnome Shell, либо с Ctrl + Alt + Т ) запустит оболочку Fish, но системной оболочкой по-прежнему будет Bash, поэтому ничего не сломается.
Однако это означает, что другие приложения, порождающие оболочку, обращенную к пользователю (например, код Visual Studio), также могут потребовать настройки для использования Fish вместо Bash.
Внизу есть TL; DR.
Чтобы gnome-shell мог запускать Snaps, ему нужны две вещи (значения в скобках указаны на моем рабочем столе Fedora 29 с той же проблемой):
- ПУТЬ для включения Snap ( /var/lib/snapd/snap/bin )
- XDG_DATA_DIRS в файлы Snap Desktop ( /var/lib/snapd/desktop )
Эти переменные настраиваются в /etc/profile.d/snapd.sh через /etc/profile обычный запуск bash.
Когда вы переключаетесь на рыбу целиком /etc/profile запуск пропускается.
Поскольку большинство дистрибутивов предполагают использование bash и устанавливают скрипты конфигурации в /etc/profile.d просто chsh -s /bin/fish не буду их использовать. Один из таких симптомов - привязки, которые не находит gnome-shell.
Лучшее решение, которое у меня есть до сих пор, - использовать fish только в интерактивной оболочке и оставить bash на месте для выполнения других задач.
Оставьте оболочку пользователя по умолчанию как bash:
/.bashrc иметь следующее:
Для bash --login case (при вызове через X11 / Wayland) удалить
/.profile и добавить .bash_profile (сделайте его специфичным для bash):
добавьте это в свой
установить окунь с помощью fisher:
или установите бас с помощью omf:
перезагрузите сеанс, и теперь все должно работать :)
Установленные снимки можно найти в / snap / bin /. Этот каталог должен быть в вашем $ PATH.
Ubuntu автоматически добавляет / snap / bin в ваш $ PATH. Это происходит в /etc/profile.d/apps-bin-path.sh, который запускается, когда вы получаете оболочку входа в систему.
Я проверил, и fish также добавляет /snap/bin в $ PATH, так что обычно все должно быть в порядке.
Вы можете показать нам результат выполнения команды
Я установил приложения моментальной привязки Maillspring и Visual Studio Code, они отлично установились и могли быть запущены из черты вначале, но после входа и выхода из системы ни одно из них больше не появлялось в черте.
Поиск их в магазине ПО показывает, какие установлены, и я могу запустить их оттуда.
Почему для этого будет иметь значение Shell по умолчанию?
Команда, которую вы изначально задали в своем вопросе chsh -s which bash , была, как вы сказали, опечаткой, которая вызвала большую путаницу вокруг вашего вопроса. Даже если он был правильно сформирован символами `, вокруг которых bash, как показано ниже.
это изменит оболочку на bash (по умолчанию). Чтобы изменить оболочку на fish , используйте
или просто используйте команду chsh и введите путь к командной консоли, которую вы хотите использовать. Увидеть ниже:
Для получения дополнительной информации о раковине рыбы смотрите this.
РЕДАКТИРОВАТЬ: Относительно пакетов моментальных снимков: будет ли иметь значение Shell по умолчанию? ответ возможно , так как это зависит от сделанных предположений и подхода, принятого программистом. Обратитесь к различиям в том, как bash и как рыба справляется с вещами в предыдущей ссылке. Например, у fish нет неявной подоболочки, которая может вызвать неожиданные побочные эффекты при назначении переменной для программиста, который ожидает поведение, подобное bash. В этом вопросе есть хороший пример ожидания неявной подоболочки здесь.
Почему? В попытке прояснить это кажется, что концепция наследования обрабатывается по-разному между рыбой и другими более распространенными оболочками, такими как bash. Насколько я понимаю, это может привести к неожиданному поведению каналов, циклов и функций (все из которых являются обычно используемыми стратегиями программирования).
Программист также может полагаться на встроенные оболочки , которые либо не могут существуют в fish , либо могут быть реализованы неожиданным образом.
Внизу есть TL; DR.
Чтобы gnome-Shell мог запускать Snaps, ему нужны две вещи (значения в скобках указаны на моем рабочем столе Fedora 29, у которого такая же проблема):
- PATH для включения Snap ( /var/lib/snapd/snap/bin )
- XDG_DATA_DIRS к файлам Snap Desktop ( /var/lib/snapd/desktop )
Эти переменные настраиваются в /etc/profile.d/snapd.sh через /etc/profile при обычном запуске bash.
Когда вы переключаетесь на рыбалку на весь /etc/profile , запуск пропускается.
Поскольку большинство дистрибутивов предполагают использование bash и устанавливают конфигурационные сценарии в /etc/profile.d , просто chsh -s /bin/fish не будет их использовать. Снимки, не найденные gnome-Shell, являются одним из таких симптомов.
Лучшее решение, которое у меня есть, - это использовать рыбу только в интерактивной оболочке и оставить bash на месте, чтобы заняться другими делами.
TL; DR
Оставьте пользовательскую оболочку по умолчанию как bash:
/.bashrc есть следующее:
Для случая bash --login (как вызывается через X11/Wayland) удалите
/.profile и добавьте .bash_profile (сделайте его специфичным для bash):
Та же проблема здесь (Ubuntu 18.10): после chsh -s `which fish` Gnome Shell больше не находит приложения snapp, даже после добавления /snap/bin в $PATH .
Мой обходной путь:
- открытый терминал
- перейдите в Настройки , нажмите на свой профиль, затем вкладку команды , отметьте "запустить пользовательскую команду вместо моей оболочки" , затем в поставить пользовательскую команду fish .
- сделать это для каждого профиля
После этого запускается Gnome-Terminal (либо из Gnome Shell, либо с помощью Ctrl + Alt + T ) запустит Fish Shell, но системная оболочка все равно будет Bash, поэтому ничего не сломается.
Однако это означает, что другие приложения, порождающие пользовательскую оболочку (например, код Visual Studio), могут также потребовать настройки для использования Fish вместо Bash.
Читайте также: