Как правильно запустить AppImage и другие программы в /opt?
У меня сложилось впечатление, что это хороший идеал для установки приложений на /opt
Поэтому, когда я загружаю программу, я помещаю ее в /opt, Однако некоторые из них являются AppImages, а некоторые - папками.
Однако теперь, чтобы запустить одно из этих приложений, мне нужно запустить /opt/pathtoapp/ из терминальной подсказки - и обычно с sudo из-за расположения приложения в opt,
Существует ли простой способ сделать значок на рабочем столе, добавить его в мою систему и сделать приложение распознаваемым как собственное приложение (например, для открытия других файлов) и запускаться без привилегий sudo, когда оно находится в /opt?
2 ответа
appimaged является необязательным демоном, который отслеживает определенные местоположения для AppImages и, если он обнаруживает некоторые, регистрирует их в системе, чтобы они отображались в меню, отображались их значки, ассоциировались типы MIME и т. д. Он также снова регистрирует AppImages из Система, если они удалены.
appimaged зарегистрирует AppImages в вашей системе из следующих мест:
$HOME/Downloads(или его локализованный эквивалент, как определеноG_USER_DIRECTORY_DOWNLOADв бой)$HOME/.local/bin$HOME/bin$HOME/Applications/Applications[any mounted partition]/Applications/opt/usr/local/bin
https://github.com/AppImage/appimaged
Есть несколько вещей, которые вы должны сделать с установленным извне приложением, чтобы оно было "интегрировано" в вашу систему. Но сначала давайте уточним каталоги установки:
Установочные каталоги
/opt это папка для общесистемного хранения и установки внешних приложений.
~/.local/ это набор папок для хранения и установки одних и тех же приложений только для вашего пользователя.
Замечания:
~средства$HOMEвар, который обычно/home/your_username- ваша домашняя папка
Проблемы с судо
Там не должно быть необходимости sudo приложение, где бы оно ни было сохранено, если только само приложение не нуждается в привилегиях суперпользователя. Проверьте следующее:
Если права доступа к файлам приложения в порядке:
Вы можете узнать о системе разрешений Linux по всему Интернету. Один учебник находится здесь: https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions
Файл должен иметь (когда
ls -l [filename]) эти разрешения:775 =
rwxrwxr-xОсторожно: изменение разрешения может быть опасным.
Если это не так, просто:
chmod 775 filenameЕсли все папки, содержащие файлы этого приложения, имеют правильные разрешения:
775 =
rwxrwxr-xЕсли нет, просто
chmod 775 folderЕсли приложение не пытается получить доступ к файлам с несоответствующими разрешениями:
Это может быть сложнее проверить, но обычно вы можете просто включить режим отладки в приложении с помощью (например)
-vвариант (отличается от приложения к приложению - иногда вы можете узнать по--helpили на страницах man или info), а затем просмотрите ошибки, которые выводит приложение.Примечание. Вы можете спросить на форумах (например, здесь) о приложении, которое вызывает проблемы. Не забудьте предоставить:
- В чем проблема
- Что такое приложение
- ЛОГИ - Действительно важно. Они помогают людям узнать, что является причиной проблемы.
(Предупреждение: с этим вопросом вы не показали США, что заставляет вас использовать
sudoв этих приложениях! Если ни один из этих методов не сработает, это, безусловно, будет, потому что МЫ НЕ знаем, что происходит на вашем компьютере!)
ДЭ "интеграция"
DE = Настольная среда
Средства запуска приложений сохраняются в файле (файлах) (как и все в Linux).
Получить больше информации о
AppName.desktopфайлы: https://developer.gnome.org/integration-guide/stable/desktop-files.html.en и https://wiki.archlinux.org/index.php/Desktop_entries
На большинстве дистрибутивов Linux (включая Ubuntu), AppName.desktop файлы используются. Если приложение, которое вы используете, не предоставляет их, вы можете сделать это самостоятельно (и не только для приложений).
Просто поместите это в файл с именем AnyNameYouWantHere.desktop файл:
[Desktop Entry]
Type=Application
Name=Total Legit App Name
Comment=Lorem ipsum Comment Magic
Icon=/path/to/icon.png
Exec=/home/your_username/.local/share/AppName/AppImage
Terminal=false
Categories=game
Примечание: exec не обязательно должен быть AppImage, он просто должен быть исполняемым файлом. Проверьте с вашим приложением. Также проверьте разрешения как в главе выше (775).
Затем запустите:
xdg-desktop-menu install --novendor AnyNameYouWantHere.desktop
Вы можете также предоставить --mode опция: (согласно справочной странице xdg-desktop-menu)
--mode mode
modeможет быть пользователем или системой. В режиме пользователя файл (не) устанавливается только для текущего пользователя. В системном режиме файл (не) устанавливается для всех пользователей в системе. Обычно только root разрешено устанавливать в системном режиме.По умолчанию используется системный режим при вызове от root и пользователь
Теперь вы можете удалить файл - xdg-desktop-menu скопировал его на свое место.
Примечание. Управление приложениями, используемыми по умолчанию, должно быть в системных настройках.
Интеграция с оболочкой
Чтобы запустить приложение из оболочки без указания его полного местоположения, вы должны добавить его в свою переменную PATH.
Что такое ПУТЬ, вы можете спросить...
$ PATH - это переменная в вашей оболочке, которая сообщает bash, dash, zsh или любая другая оболочка, в которой сохраняются приложения. На большинстве систем в нем будет что-то вроде этого:
$PATH=/bin:/usr/bin
Примечание: PATH также доступен в большинстве систем. Даже MS W*ndows имеет аналог этого.
Это говорит вашей оболочке, что когда вы помещаете в нее имя приложения, оно должно искать его в этих местах.
Где тогда сохранить приложение?
Если он установлен для всей системы:Просто свяжите это в /usr/bin каталог:
ln -s /opt/amazingapp/AppImage /usr/bin/
Если он установлен пользователем:Примечание: Вы должны связать это символически и абсолютно, а не относительно. (Это зависит от типа использования.) Больше информации о ссылках здесь: https://en.wikipedia.org/wiki/Ln_(Unix) и здесь: https://en.wikipedia.org/wiki/Symbolic_link
Снова свяжите это как выше, но на этот раз в /home/your_username/.local/bin, затем добавьте /home/your_username/.local/bin в ваш путь, если он еще не там. (Больше информации ЗДЕСЬ: /questions/537651/kak-perezagruzit-interfejs-wifi-bez-perezagruzki-on-razryivaet-soedinenie/537655#537655) Вы можете проверить это после того, как вы связали программу, закрыв и снова открыв оболочку, и попробовав полное имя приложения.