如何在 Linux 上安装软件应用程序

了解在您的计算机上获取优秀软件的来龙去脉。
468 位读者喜欢这篇文章。
Top 5 Linux pain points in 2017

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

如何在 Linux 上安装应用程序?与许多操作系统一样,这个问题没有唯一的答案。应用程序可能来自非常多的来源——几乎无法计数——每个开发团队都可以选择他们认为最好的方式来交付他们的软件。了解如何安装您所获得的东西是成为您的操作系统的真正高级用户的一部分。

 

 

软件仓库

十多年来,Linux 一直使用软件仓库来分发软件。在这种情况下,“仓库”是托管可安装软件包的公共服务器。Linux 发行版提供一个命令,通常还有一个该命令的图形界面,用于从服务器拉取软件并将其安装到您的计算机上。这是一个如此简单的概念,它已成为所有主要手机操作系统以及最近两个主要的闭源计算机操作系统的“应用商店”的模型。

 

Linux repository

opensource.com

从软件仓库安装是 Linux 上安装应用程序的主要方法。它应该是您查找任何打算安装的应用程序的首选位置。

要从软件仓库安装,通常有一个命令

$ sudo dnf install inkscape

您使用的实际命令取决于您使用的 Linux 发行版。Fedora 使用 dnf,OpenSUSE 使用 zypper,Debian 和 Ubuntu 使用 apt,Slackware 使用 sbopkg,FreeBSD 使用 pkg_add,而基于 Illumos 的 OpenIndiana 使用 pkg。无论您使用什么,这个“咒语”通常都涉及到搜索您要安装的软件的正确名称,因为有时您所称呼的软件并不是它的官方或唯一名称

$ sudo dnf search pyqt
PyQt.x86_64 : Python bindings for Qt3
PyQt4.x86_64 : Python bindings for Qt4
python-qt5.x86_64 : PyQt5 is Python bindings for Qt5

一旦您找到了要安装的软件包的名称,请使用 install 子命令来执行实际的下载和自动安装

$ sudo dnf install python-qt5

有关从软件仓库安装的详细信息,请参阅您的发行版的文档。

图形工具通常也是如此。搜索您认为想要的东西,然后安装它。

 

Apper

opensource.com

与底层命令一样,图形安装程序的名称取决于您正在运行的发行版。相关的应用程序通常标有软件软件包关键字,因此在您的启动器或菜单中搜索这些术语,您就会找到您需要的内容。由于开源完全关乎用户选择,如果您不喜欢您的发行版提供的图形用户界面 (GUI),则可能有一个您可以安装的替代方案。现在您知道如何做到这一点了。

额外的软件仓库

您的发行版有其用于为您打包的软件的标准仓库,并且通常还有您的发行版常见的额外仓库。例如,EPEL 为红帽企业 Linux 和 CentOS 提供服务,RPMFusion 为 Fedora 提供服务,Ubuntu 具有各种级别的支持以及个人软件包存档 (PPA) 网络,Packman 为 OpenSUSE 提供额外的软件,而 SlackBuilds.org 为 Slackware 提供社区构建脚本。

默认情况下,您的 Linux 操作系统设置为仅查看其官方仓库,因此,如果您想使用额外的软件集合,则必须自己添加额外的仓库。您通常可以像安装软件包一样安装仓库。事实上,当您安装某些软件时,例如 GNU Ring 视频聊天、Vivaldi 网络浏览器、Google Chrome 和许多其他软件时,您实际安装的是对其私有仓库的访问权限,从中将最新版本的应用程序安装到您的机器上。

 

Installing a repo

opensource.com

您还可以通过编辑文本文件并将其添加到软件包管理器的配置目录中,或通过运行命令来安装仓库来手动添加仓库。与往常一样,您使用的确切命令取决于您正在运行的发行版;例如,这是一个将仓库添加到系统的 dnf 命令

$ sudo dnf config-manager --add-repo=http://example.com/pub/centos/7

在没有仓库的情况下安装应用程序

仓库模型之所以如此受欢迎,是因为它提供了用户(您)和开发者之间的链接。当重要的更新发布时,您的系统会友好地提示您接受更新,您可以从一个中心位置接受所有更新。

但是,有时软件包在没有附加仓库的情况下提供。这些可安装的软件包有多种形式。

Linux 软件包

有时,开发者以常见的 Linux 软件包格式分发软件,例如 RPM、DEB 或更新但非常流行的 FlatPak 或 Snap 格式。您可能无法通过此下载访问仓库;您可能只是获得了软件包。

例如,视频编辑器 Lightworks 为 APT 用户提供 .deb 文件,为 RPM 用户提供 .rpm 文件。当您想要更新时,您返回网站并下载最新的相应文件。

这些一次性软件包可以使用从仓库安装时使用的所有相同工具进行安装。如果您双击您下载的软件包,图形安装程序将启动并引导您完成安装过程。

或者,您可以从终端安装。这里的区别在于,您从互联网下载的单个软件包文件不是来自仓库。这是一个“本地”安装,这意味着您的软件包管理软件无需下载即可安装它。大多数软件包管理器都会透明地处理这种情况

$ sudo dnf install ~/Downloads/lwks-14.0.0-amd64.rpm

在某些情况下,您需要采取额外的步骤才能使应用程序运行,因此请仔细阅读有关您正在安装的软件的文档。

通用安装脚本

一些开发者以几种通用格式之一发布他们的软件包。常见的扩展名包括 .run.sh。NVIDIA 显卡驱动程序、Foundry 视觉特效软件包(如 Nuke 和 Mari)以及来自 GOG 的许多无 DRM 游戏都使用这种安装程序样式。

这种安装模型依赖于开发者来交付安装“向导”。一些安装程序是图形化的,而另一些则仅在终端中运行。

有两种方法可以运行这些类型的安装程序。

  1. 您可以直接从终端运行安装程序
$ sh ./game/gog_warsow_x.y.z.sh
  1. 或者,您可以通过将其标记为可执行文件从桌面运行它。要将安装程序标记为可执行文件,请右键单击其图标并选择属性

 

Giving an installer executable permission

opensource.com

一旦您授予其运行权限,请双击图标以开始安装。

 

GOG installer

opensource.com

对于安装的其余部分,只需按照屏幕上的说明进行操作即可。

AppImage 便携式应用

AppImage 格式对于 Linux 来说相对较新,尽管它的概念基于 NeXT 和 Rox。这个想法很简单:运行应用程序所需的一切都放在一个目录中,然后将该目录视为一个“应用程序”。要运行应用程序,您只需双击图标,它就会运行。无需或不期望以传统意义上的方式安装应用程序;它只是从您硬盘驱动器上的任何位置运行。

尽管 AppImage 具有作为独立应用程序运行的能力,但它通常会提供一些软系统集成。

 

AppImage system integration

opensource.com

如果您接受此提议,则会在您的主目录中安装一个本地 .desktop 文件。.desktop 文件是 Linux 桌面的应用程序菜单和 mimetype 系统使用的小型配置文件。本质上,将桌面配置文件放在您的主目录的应用程序列表中“安装”应用程序,而无需实际安装它。您可以获得已安装某些东西的所有好处,以及能够作为“便携式应用程序”本地运行某些东西的好处。

应用程序目录

有时,开发者只是编译一个应用程序并将结果作为下载发布,没有安装脚本,也没有打包。通常,这意味着您下载一个 TAR 文件,解压它,然后双击可执行文件(通常是您下载的软件名称的文件)。

 

Twine downloaded for Linux

opensource.com

当遇到这种软件交付方式时,您可以将其保留在您下载的位置,并在需要时手动启动它,或者您可以自己进行快速而简陋的安装。这涉及两个简单的步骤

  1. 将目录保存到标准位置,并在需要时手动启动它。
  2. 将目录保存到标准位置并创建一个 .desktop 文件以将其集成到您的系统中。

如果您只是为自己安装应用程序,则传统上在您的主目录中保留一个 bin 目录(“binary”的缩写),作为本地安装的应用程序和脚本的存储位置。如果您的系统上有其他用户需要访问这些应用程序,则传统上将二进制文件放在 /opt 中。最终,应用程序的存储位置取决于您自己。

下载通常以带有版本号的目录形式出现,例如 twine_2.13pcgen-v6.07.04。由于可以合理地假设您将在某个时候更新应用程序,因此最好删除版本号或创建指向该目录的符号链接。这样,您为应用程序创建的启动器可以保持不变,即使您更新了应用程序本身。

要创建 .desktop 启动器文件,请打开文本编辑器并创建一个名为 twine.desktop 的文件。桌面条目规范FreeDesktop.org 定义。这是一个用于名为 Twine 的游戏开发 IDE 的简单启动器,已安装到系统范围的 /opt 目录中

[Desktop Entry]
Encoding=UTF-8
Name=Twine
GenericName=Twine
Comment=Twine
Exec=/opt/twine/Twine
Icon=/usr/share/icons/oxygen/64x64/categories/applications-games.png
Terminal=false
Type=Application
Categories=Development;IDE;

棘手的行是 Exec 行。它必须包含启动应用程序的有效命令。通常,它只是您下载的内容的完整路径,但在某些情况下,它会更复杂一些。例如,Java 应用程序可能需要作为 Java 本身的参数启动

Exec=java -jar /path/to/foo.jar

有时,一个项目包含一个包装脚本,您可以运行该脚本,这样您就不必弄清楚正确的命令

Exec=/opt/foo/foo-launcher.sh

在 Twine 示例中,下载中没有捆绑图标,因此示例 .desktop 文件分配了一个随 KDE 桌面一起提供的通用游戏图标。您可以使用这样的解决方法,但如果您更有艺术感,您可以自己创建图标,或者您可以在 Internet 上搜索一个好的图标。只要 Icon 行指向有效的 PNG 或 SVG 文件,您的应用程序就会继承该图标。

示例脚本还将应用程序类别主要设置为“开发”,因此在 KDE、GNOME 和大多数其他应用程序菜单中,Twine 会出现在“开发”类别下。

要使此示例出现在应用程序菜单中,请将 twine.desktop 文件放在以下两个位置之一

  • 如果您将应用程序存储在您自己的主目录中,请将其放在 ~/.local/share/applications 中。
  • 如果您将应用程序存储在 /opt 或其他系统范围的位置,并且希望它出现在所有用户的应用程序菜单中,请将其放在 /usr/share/applications 中。

现在,应用程序已按需安装并与系统的其余部分集成。

从源代码编译

最后,还有真正的通用安装格式:源代码。从源代码编译应用程序是了解应用程序的结构、它们如何与您的系统交互以及如何自定义它们的好方法。但这绝不是一个一键式过程。它需要构建环境,通常涉及安装依赖库和头文件,有时还需要进行少量调试。

要了解有关从源代码编译的更多信息,请阅读我的文章,了解有关该主题的内容。

现在您知道了

有些人认为安装软件是一个只有开发者才懂的神奇过程,或者他们认为它“激活”了一个应用程序,就好像二进制可执行文件在“安装”之前是无效的一样。希望通过了解许多不同的安装方法,您已经了解到安装实际上只是“将文件从一个位置复制到系统上的适当位置”的简写。这没有什么神秘之处。只要您在进行每次安装时都没有期望它应该如何发生,而是寻找开发者设置的安装过程,它通常都很容易,即使它与您习惯的不同。

重要的是安装程序对您是诚实的。如果您遇到一个安装程序,试图在未经您同意的情况下安装其他软件(或者可能它会征求同意,但以令人困惑或误导的方式),或者试图以不明原因对您的系统运行检查,那么请不要继续安装。

好的软件是灵活、诚实和开放的。现在您知道如何将好的软件安装到您的计算机上了。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

1 条评论

Seth,这是一个很好的概述。编译的链接似乎是错误的 - 至少我找不到任何解释它的内容。
还值得一提的是,dnf 是对 yum 的巨大改进,而 yum 是对直接 rpm 安装的巨大改进。关于为什么无法安装某些东西的莫名其妙的消息的“依赖地狱”的日子已经一去不复返了。

 

每周在您的收件箱中获取精彩内容。

© . All rights reserved.