我认为安装应用程序来/opt
因此,每当我下载程序时,我都会将其放在 中/opt
。但是,其中一些是 AppImage,一些是文件夹。
但是,现在要运行其中一个应用程序,我必须/opt/pathtoapp/
从终端提示符运行 - 并且通常是sudo
由于应用程序位于 中opt
。
有没有一种简单的方法来制作桌面图标,将其添加到我的系统并使该应用程序被识别为本机应用程序(就像打开其他文件一样)并且在位于时无需 sudo 权限运行/opt
?
答案1
appimaged
是一个可选的守护进程,它监视 AppImages 的某些位置,如果检测到某些位置,则将它们注册到系统中,以便它们显示在菜单中、显示其图标、关联 MIME 类型等。如果 AppImages 被删除,它还会从系统中再次取消注册它们。
appimaged
将从以下位置向你的系统注册 AppImages:
$HOME/Downloads
G_USER_DIRECTORY_DOWNLOAD
(或其本地化等价物,由glib决定 )$HOME/.local/bin
$HOME/bin
$HOME/Applications
/Applications
[any mounted partition]/Applications
/opt
/usr/local/bin
答案2
您需要做的事情很少外部安装的应用程序以便将其“集成”到您的系统中。但首先让我们明确安装目录:
安装目录
/opt
是一个文件夹全系统存储和安装外部安装的应用程序。
~/.local/
是一组文件夹仅限你的用户存储和安装相同的应用程序。
注意:
~
表示$HOME
var,通常是/home/your_username
- 您的主文件夹
Sudo 问题
sudo
除非应用程序本身需要 root 权限,否则应用程序不应该需要保存在任何地方。请检查以下内容:
如果应用程序文件的文件权限没有问题:
您可以在互联网上了解 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
手册或信息页面找到)然后查看应用程序打印出的错误。注意:您可以在论坛(如这里)询问导致问题的应用程序。请记得提供:
- 问题是什么
- 应用程序是什么
- 日志 -真的很重要。这些可以帮助人们了解问题的原因。
(警告:对于这个问题,你没有告诉我们你使用
sudo
这些应用程序的原因!如果这些方法都不起作用,那肯定是因为我们不知道你的电脑里发生了什么!)
DE“一体化”
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
file: 的文件中即可。
[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 调用时使用系统模式,当由 user 调用时使用用户模式
您现在可以删除该文件 -xdg-desktop-menu
已将其复制到其自己的位置。
笔记:管理默认使用的应用程序应该在系统选项中。
Shell 集成
要从 shell 运行应用程序而不需要提供其整个位置,您必须将其添加到您的 PATH 中。
您可能会问,什么是 PATH......
$PATH 是 shell 中的一个变量,它告诉bash
、dash
、zsh
或任何其他 shell 应用程序保存在哪里。在大多数系统中,它里面会有类似这样的内容:
$PATH=/bin:/usr/bin
注意:PATH 在大多数系统中都可用。甚至 MS Windows 也有一个等效的版本。
这会告诉你的 shell,当你在其中输入应用程序名称时,它应该在这些位置寻找它。
那么将应用程序保存在哪里呢?
如果它是全系统已安装:
只需将其链接到/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
到您的 PATH 中(如果它尚未添加到其中)。(大部分信息在此处:https://unix.stackexchange.com/a/26059/316299)您可以在链接程序后,通过关闭并再次打开 shell,然后尝试应用程序的全名来测试。