Приложения Snap не отображаются после повторного входа в систему с использованием fish shell

В Ubuntu 18.04 я изменил свою оболочку на fish с помощью

chsh -s `which fish`

Я установил приложения моментальных снимков Maillspring и Visual Studio Code, они установились нормально и могли быть изначально запущены из панели инструментов, но после входя в систему и выходя из нее, никто из них больше не появлялся в тире.

Поиск их в магазине ПО показывает, что они установлены, и я могу запустить их оттуда.

Почему для этого будет иметь значение оболочка по умолчанию?

4
задан 15 May 2018 в 17:03

5 ответов

Команда Вы имели первоначально в Вашем вопросе chsh -s which bash был, как Вы говорите, что опечатка, которая вызвала много беспорядка вокруг Вашего вопроса. Даже если это было правильно сформировано с 'символами вокруг который удар как показано ниже.

enter image description here это изменило бы оболочку на bash (значение по умолчанию). Изменить оболочку на fish использовать

enter image description here или просто используйте команду chsh и введите путь к оболочке, которую Вы хотите использовать. Посмотрите ниже:

me@zippy-64bit:~$ chsh
Password: 
Changing the login shell for me
Enter the new value, or press ENTER for the default
    Login Shell [/bin/bash]: 

Для получения дополнительной информации о рыбе оболочка посмотрите это.

Править: Относительно поспешных пакетов: значение по умолчанию окружит вопрос? ответ возможно, поскольку он зависит от предположений, сделанных и подход, проявленный программистом. Обратитесь к различиям в том, как удар и как рыбы обрабатывают вещи в предыдущей ссылке. Например, у рыбы нет неявной подоболочки, которая может вызвать удивительные побочные эффекты в переменном присвоении для программиста, который ожидает поведение, подобное удару. Существует хороший пример ожидания неявной подоболочки в вопросе здесь.

Почему? В попытке разъясниться кажется, что понятие наследования обрабатывается по-другому между рыбой и другими более общими оболочками как удар. Мое понимание - то, что это может привести к неожиданному поведению от каналов, циклов и функций (Все из которых являются наиболее часто используемыми стратегиями программирования).

Программист может также полагаться на оболочку builtins, который или не может существовать у рыбы или может быть реализован неожиданным способом.

Источники:

3
ответ дан 1 December 2019 в 10:15

Снимки, которые Вы установили, могут быть найдены в/snap/bin/, у Вас должен быть тот каталог в Вашем $PATH.

Ubuntu автоматически добавляет/snap/bin к Вашему $PATH. Это происходит в/etc/profile.d/apps-bin-path.sh, который работает, когда Вы получаете оболочку входа в систему.

Я проверил, и fish также добавляет /snap/bin в $PATH поэтому обычно это должно быть прекрасным.

Можно ли показать нам вывод команды

echo $PATH

Если вывод имеет /snap/bin, затем поздравления, Вы нашли ошибку в Ubuntu и можно зарегистрировать отчет о Панели запуска для нее.

дополнение: Ubuntu внутренне, вероятно, использует $SHELL для некоторых сценариев. fish оболочка не на 100% совместима с bash и похоже, что это - причина проблемы. Это - распространенная проблема при изменении оболочки входа в систему на что-то другое, чем bash. См., например, этот отчет https://youtrack.jetbrains.com/issue/CPP-2919 с пользователями, изменяющими их оболочку на /bin/tcsh.

Необходимо зарегистрировать отчет об ошибках Ubuntu так, чтобы кто-то исследовал и исправил внутренние сценарии для работы с fish. Если Вы действительно любите fish, это - то, что необходимо сделать.;-)

-1
ответ дан 1 December 2019 в 10:15

Та же проблема здесь (Ubuntu 18.10): после chsh -s `which fish`, Gnome Shell больше не находит snapp приложения, даже после добавления /snap/bin к $PATH.

Мое обходное решение:

  • открытый терминал
  • перейдите к Предпочтениям, нажмите на свой профиль, затем управляют вкладкой, галочка "выполняет пользовательскую команду вместо моей оболочки" затем в пользовательской помещенной команде fish.
  • сделайте это для каждого профиля

enter image description here

После этого стартовый Терминал Gnome (или от Gnome Shell или с Ctrl+Alt+T) запустит оболочку Рыбы, но системная оболочка все еще будет Bash, таким образом, ничто не повредится.

Однако это означает, что другие приложения, порождающие стоящую с пользователем оболочку (Код Visual Studio, например), могут потребовать, чтобы настройка также использовала Рыбу вместо Bash.

0
ответ дан 1 December 2019 в 10:15

Существует TL; DR внизу.

Чтобы оболочка гнома смогла запустить Снимки, требуется две вещи (оценивает, в скобках находятся на моем рабочем столе Fedora 29, который имеет ту же проблему):

  • ПУТЬ для включения Снимка (/var/lib/snapd/snap/bin)
  • XDG_DATA_DIRS к Поспешным Файлам на рабочем столе (/var/lib/snapd/desktop)

Эти переменные настроены в /etc/profile.d/snapd.sh через /etc/profile стандартный запуск удара.

Когда Вы переключаетесь для рыбалки к целому /etc/profile запуск пропускается.

Так как большинство дистрибутивов принимает использование удара и устанавливает сценарии конфигурации в /etc/profile.d, просто chsh -s /bin/fish не будет использовать их. Снимки, не находимые оболочкой гнома, являются одним таким признаком.

Лучшее решение, которое я имею до сих пор, состоит в том, чтобы использовать рыбу только интерактивная оболочка и удар отпуска на месте, чтобы сделать другое обслуживание.

TL; DR

Оставьте пользовательскую оболочку значения по умолчанию как удар:

chsh -s /bin/bash

В ~/.bashrc имейте следующее:

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

if [ -z "$BASH_EXECUTION_STRING" ]; then
    exec /bin/fish
fi

Для bash --login случай (как вызвано через X11/Wayland) удаляет ~/.profile и добавьте .bash_profile (заставьте его колотить конкретный):

# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

0
ответ дан 1 December 2019 в 10:15

добавьте это в свой файл ~/.config/fish/config.fish

for file in /etc/profile.d/*.sh
        bass source $file
end

установите бас с помощью fisher:

fisher add edc/bass

или установите бас с помощью omf:

omf install bass

перезагрузите сеанс и все теперь должно работать :)

0
ответ дан 3 September 2020 в 18:59

Другие вопросы по тегам:

Похожие вопросы: