如何在Linux上安装应用程序?因为有许多操作系统,这个问题不止有一个答案。应用程序可以可以来自许多来源——几乎不可能数的清,并且每个开发团队都可以以他们认为最好的方式提供软件。知道如何安装你所得到的软件是成为操作系统高级用户的一部分。
十多年来,Linux已经在使用软件库来分发软件。在这种情况下,“仓库”是一个托管可安装软件包的公共服务器。Linux发行版提供了一条命令,以及该命令的图形界面,用于从服务器获取软件并将其安装到你的计算机。这是一个非常简单的概念,它已经成为所有主流手机操作系统的模式,最近,该模式也成为了两大闭源计算机操作系统的“应用商店”。
不是应用程序商店
从软件仓库安装是在Linux上安装应用程序的主要方法,它应该是你寻找想要安装的任何应用程序的首选地方。
从软件仓库安装,通常需要一个命令,如:
$sudodnfinstallinkscape
实际使用的命令取决于你所使用的Linux发行版。Fedora使用dnf,OpenSUSE使用zypper,Debian和Ubuntu使用apt,Slackware使用sbopkg,FreeBSD使用pkg_add,而基于lllumos的Openlndiana使用pkg。无论你使用什么,该命令通常要搜索你想要安装应用程序的正确名称,因为有时候你认为的软件名称不是它官方或独有的名称:
$sudodnfsearchpyqt
PyQt.x86_64:PythonbindingsforQt3
PyQt4.x86_64:PythonbindingsforQt4
python-qt5.x86_64:PyQt5isPythonbindingsforQt5
一旦你找到要安装的软件包的名称后,使用install子命令执行实际的下载和自动安装:
$sudodnfinstallpython-qt5
有关从软件仓库安装的具体信息,请参阅你的Linux发行版的文档。
图形工具通常也是如此。搜索你认为你想要的,然后安装它。
与底层命令一样,图形安装程序的名称取决于你正在运行的Linux发行版。相关的应用程序通常使用“软件(software)”或“包(package)”等关键字进行标记,因此请在你的启动项或菜单中搜索这些词汇,然后你将找到所需的内容。由于开源全由用户来选择,所以如果你不喜欢你的发行版提供的图形用户界面(GUI),那么你可以选择安装替代品。你知道该如何做到这一点。
额外仓库
你的Linux发行版为其打包的软件提供了标准仓库,通常也有额外的仓库。例如,EPEL[1]服务于RedHatEnterpriseLinux和CentOS,RPMFusion[2]服务于Fedora,Ubuntu有各种级别的支持以及个人包存档(PPA),Packman[3]为OpenSUSE提供额外的软件以及SlackBuilds.org[4]为Slackware提供社区构建脚本。
默认情况下,你的Linux操作系统设置为只查看其官方仓库,因此如果你想使用其他软件集合,则必须自己添加额外库。你通常可以像安装软件包一样安装仓库。实际上,当你安装例如GNURing[5]视频聊天,Vivaldi[6]web浏览器,谷歌浏览器等许多软件时,你的实际安装是访问他们的私有仓库,从中将最新版本的应用程序安装到你的机器上。
安装仓库
你还可以通过编辑文本文件将仓库手动添加到你的软件包管理器的配置目录,或者运行命令来添加添加仓库。像往常一样,你使用的确切命令取决于Linux发行版本。例如,这是一个dnf命令,它将一个仓库添加到系统中:
$sudodnfconfig-manager--add-repo=http://example.com/pub/centos/7
不使用仓库来安装应用程序
仓库模型非常流行,因为它提供了用户(你)和开发人员之间的链接。重要更新发布之后,系统会提示你接受更新,并且你可以从一个集中位置接受所有更新。
然而,有时候一个软件包还没有放到仓库中时。这些安装包有几种形式。
Linux包
有时候,开发人员会以通用的Linux打包格式分发软件,例如RPM、DEB或较新但非常流行的FlatPak或Snap格式。你不是访问仓库下载的,你只是得到了这个包。
例如,视频编辑器Lightworks[7]为APT用户提供了一个.deb文件,RPM用户提供了.rpm文件。当你想要更新时,可以到网站下载最新的适合的文件。
这些一次性软件包可以使用从仓库进行安装时所用的一样的工具进行安装。如果双击下载的软件包,图形安装程序将启动并逐步完成安装过程。
或者,你可以从终端进行安装。这里的区别在于你从互联网下载的独立包文件不是来自仓库。这是一个“本地”安装,这意味着你的软件安装包不需要下载来安装。大多数软件包管理器都是透明处理的:
$sudodnfinstall~/Downloads/lwks-14.0.0-amd64.rpm
在某些情况下,你需要采取额外的步骤才能使应用程序运行,因此请仔细阅读有关你正在安装软件的文档。
通用安装脚本
一些开发人员以几种通用格式发布他们的包。常见的扩展名包括.run和.sh。NVIDIA显卡驱动程序、像Nuke和Mari这样的FoundryvisualFX软件包以及来自GOG[8]的许多非DRM游戏都是用这种安装程序。(LCTT译注:DRM是数字版权管理。)
这种安装模式依赖于开发人员提供安装“向导”。一些安装程序是图形化的,而另一些只是在终端中运行。
有两种方式来运行这些类型的安装程序。
1、你可以直接从终端运行安装程序:
$sh./game/gog_warsow_x.y.z.sh
2、另外,你可以通过标记其为可执行文件来运行它。要标记为安装程序可执行文件,右键单击它的图标并选择其属性。
给安装程序可执行权限
一旦你允许其运行,双击图标就可以安装了。
GOG安装程序
对于其余的安装程序,只需要按照屏幕上的说明进行操作。
AppImage便携式应用程序
AppImage格式对于Linux相对来说比较新,尽管它的概念是基于NeXT和Rox的。这个想法很简单:运行应用程序所需的一切都应该放在一个目录中,然后该目录被视为一个“应用程序”。要运行该应用程序,只需双击该图标即可运行。不需要也要不应该把应用程序安装在传统意义的地方;它从你在硬盘上的任何地方运行都行。
尽管它可以作为独立应用运行,但AppImage通常提供一些系统集成。
AppImage系统集成
如果你接受此条件,则将一个本地的.desktop文件安装到你的主目录。.desktop文件是Linux桌面的应用程序菜单和mimetype系统使用的一个小配置文件。实质上,只是将桌面配置文件放置在主目录的应用程序列表中“安装”应用程序,而不实际安装它。你获得了安装某些东西的所有好处,以及能够在本地运行某些东西的好处,即“便携式应用程序”。
应用程序目录
有时,开发人员只是编译一个应用程序,然后将结果发布到下载中,没有安装脚本,也没有打包。通常,这意味着你下载了一个TAR文件,然后解压缩[9],然后双击可执行文件(通常是你下载软件的名称)。
下载Twine
当使用这种软件方式交付时,你可以将它放在你下载的地方,当你需要它时,你可以手动启动它,或者你可以自己进行快速但是麻烦的安装。这包括两个简单的步骤:
将目录保存到一个标准位置,并在需要时手动启动它。
将目录保存到一个标准位置,并创建一个.desktop文件,将其集成到你的系统中。
如果你只是为自己安装应用程序,那么传统上会在你的主目录中放个bin(“二进制文件(binary)”的简称)目录作为本地安装的应用程序和脚本的存储位置。如果你的系统上有其他用户需要访问这些应用程序,传统上将二进制文件放置在/opt中。最后,这取决于你存储应用程序的位置。
下载通常以带版本名称的目录进行,如twine_2.13或者pcgen-v6.07.04。由于假设你将在某个时候更新应用程序,因此将版本号删除或创建目录的符号链接是个不错的主意。这样,即使你更新应用程序本身,为应用程序创建的启动程序也可以保持不变。
要创建一个.desktop启动文件,打开一个文本编辑器并创建一个名为twine.desktop的文件。桌面条目规范[10]由FreeDesktop.org[11]定义。下面是一个简单的启动器,用于一个名为Twine的游戏开发IDE,安装在系统范围的/opt目录中:
[DesktopEntry]
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文件,你的应用程序就会以该图标为代表。
示例脚本还将应用程序类别主要设置为Development,因此在KDE、GNOME和大多数其他应用程序菜单中,Twine出现在开发类别下。
为了让这个例子出现在应用程序菜单中,把twine.desktop文件放这到两个地方之一:
现在,该应用程序已安装,因为它需要与系统的其他部分集成。
从源代码编译
最后,还有真正的通用格式安装格式:源代码。从源代码编译应用程序是学习如何构建应用程序,如何与系统交互以及如何定制应用程序的好方法。尽管如此,它绝不是一个点击按钮式过程。它需要一个构建环境,通常需要安装依赖库和头文件,有时还要进行一些调试。
要了解更多关于从源代码编译的内容,请阅读我这篇文章[12]。