对于任何一个操作系统来说,安装软件是必不可少的操作之一,在windows下我们有mis,exe等程序进行软件安装,在linux中,我们也有安装软件的方法
通过应用商店安装
使用应用商店安装软件和在Google Play和App store中一样,只需要点击安装就能自动下载软件并且打包依赖
Tip
使用应用商店安装仅仅限于自带应用商店的发行版,比如 Ubuntu,Manjaro等
通过包管理器进行安装
包管理器是一系列工具的集合,用于自动化的完成软件的安装,更新,配置和移除功能。
在Linux中,安装软件和管理中,包管理器应用更加广泛,许多软件均可以通过一行命令完成安装,优雅且快速
软件包管理器的一个重要组成结构是软件仓库,软件仓库一般是在线上,收集了大量互联网上可用软件包的Lib,其包含了数万个可供下载的软件安装包
有了软件仓库,我们就不需要在手动下载软件包然后再到包管理中安装,我们只需要知道软件在软件仓库的包名就能进行下载安装
包管理系统有很多,比如管理 Debian(.deb)软件包的 dpkg 以及它的前端 apt(用于 Debian 系的发行版);rpm 包管理器以及它的前端 dnf(用于 Fedora 和新版的 CentOS 和 RHEL),前端 yum(用于 CentOS 7 和 RHEL 7 等);pacman 包管理器(用于 Arch Linux 和 Manjaro)等等
为了方便,接下来我们使用 pacman 作为典型实例进行讲解。
pacman是 archlinux 的包管理器,Pacman的目标是简化对软件包的管理,无论软件包是来自官方软件仓库还是用户自己创建的软件包。1
当然,如果你使用的为其他Linux发行版,那命令对应关系 这篇对比文章将大有帮助
安装包
Warning
在Arch中安装软件包的时候,请尽量避免还没有更新系统前同步软件包列表,当我们试图安装软件前尽可能的使用
pacman -Syu同步软件依赖和包名
要安装单个或者一系列的包,请使用如下命令:
# pacman -S <包名_1> <包名_2>要通过正则表达式安装一系列软件包:
# pacman -S $(pacman -Ssq <包正则表达式>)要搜索某一个包的包名或者检查仓库中是否有这个包,可以使用:
# pacman -Ss <包名>更新软件包
arch 的更新十分简单,只需要输入:
# pacman -Syu镜像源列表
我们需要在网络中寻找一些镜像源,然后将其添加到镜像列表中:
# vim /etc/pacman.d/mirrorlist然后将镜像服务器地址添加到文件中,这里提供一些可用的镜像列表
Server = https://mirrors.jlu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirror.nyist.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.qlu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch安装预编译可执行文件
对于用户数量较多的发行版,软件提供商还可能提供预编译好的二进制文件,可以直接运行。对于没有在软件仓库中提供的软件,免去了从源码编译安装的麻烦。
Warning
我们不建议在arch下进行安装预编译可执行文件的操作,特别是对于底层依赖软件,因为这意味这个可执行文件不会进入pacman的依赖管理和更新同步体系,容易引发依赖问题
[!安装预编译的LLVM]
下面我们以LLVM为例,LLVM是一个编译器组件工具集,可以帮助开发者开发编译器和周边工具
注意,使用LLVM需要安装clang,使用
sudo pacman -S Clang命令安装即可在LLVM的github仓库的Release界面可以找到我们需要的包
# 下载包的二进制压缩文件存档 wget https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.0/clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz # 创建一个目录用来保存clang mkdir clang # 将下载的压缩文件解压到当前目录 tar xf clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -C clang cd clang
- 这里的
clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz表示这个包是预编译的clang + llvm,版本是16.0.0,支持架构是 x86_64,适合于Linux,支持的最低Ubuntu版本是18.04在进入解压得到的目录后,可以查看当前的目录下有什么内容
$ ls bin include lib libexec share一般而言,软件的可执行文件都位于
bin目录下,我们需要将这些可执行文件都放到PATH中,我们可以直接将其添加到.bashrc或者你自己的shell环境下,也可以通过软连接的方式将可执行文件的目录链接到这个目录里ln -s <你的bin文件目录> ~/.local/bin/<你的app名称>[!Warning]
对于手工从 Internet 或者其他来源获取到的软件,在使用前务必注意检查其完整性(例如检查压缩文件的 hash 和官方网站上提供的是否一致)和安全性。运行有问题的程序,或者特别是安装有问题的程序(例如上面那样安装到 /usr/local),会导致系统安全受到损害。如非必要,请尽可能使用包管理器从官方软件源中安装软件。
从源码编译安装
这部分内容见 编译安装