扫描二维码关注“指尖聆听”,共同学习成长
Linux中有很多软件程序只是以源码包的形式存在,无法通过apt(Ubuntu)或yum(Centos)来安装,所以我们必须使用源码包来安装程序。
1.1 解压源码包
为了方便网络传输,通常会将源代码包打包压缩,常见后缀为.tar.gz。 如果要使用源码包安装服务程序,必须先解压内容,然后切换到源码包文件所在目录:
root@ubuntu:~# tar xzvf .tar.gz
root@ubuntu:~# cd
1.2 编译源码包代码
在正式使用源码包安装业务程序之前,需要使用编译脚本对当前系统进行一系列评估,包括源码包文件、软件与函数库之间的依赖关系、编译器、汇编器和连接等。 检查设备。 我们还可以根据需要添加--prefix参数,用于后面指定源码包程序的安装路径,这样服务程序的安装过程更加可控。 编译工作完成后,如果系统环境满足安装要求,一般会在当前目录下自动生成一个Makefile安装文件。
root@ubuntu:~# ./configure --prefix=/usr/local/program
其中/usr/local/program为安装路径,用户可以自行选择安装路径。
1.3 生成二进制安装程序
刚刚生成的Makefile会保存系统环境、软件依赖、安装规则等信息,然后就可以使用make命令,根据相应的规则编译生成一个可供用户实际使用的安装服务程序的二进制包由 Makefile 的内容提供。 执行了该文件。
root@debian:~# make
1.4 运行二进制服务程序安装包
由于不需要检查系统环境或编译代码,运行二进制服务程序安装包应该是最快的一步。 如果在源码包编译阶段使用了--prefix参数,那么服务程序就会安装在该目录下。 如果不使用参数定义目录,一般会默认安装在/usr/local/bin目录下。
root@ubuntu:~# make install
1.5 清理源码包临时文件
由于服务程序安装过程中进行了代码编译,因此安装后目录中会残留很多临时垃圾文件。 本着不浪费磁盘存储空间的原则,可以使用make clean命令彻底清理临时文件。 清理工作。
root@ubuntu:~# 清理干净
源代码包的编译(configure)和生成二进制文件(make)的工作会花费很长时间debian软件列表,这是正常的。
1.6 卸载软件包
删除软件安装目录即可卸载软件包。 如果设置了自定义安装目录,则删除对应目录; 如果不手动指定安装目录,软件会安装在/usr/local/bin目录下,该目录下对应的软件包可以删除。
root@ubuntu:~# rm -rf /usr/local/bin/
第2部分dpkg
dpkg 是 Debian Packager 的缩写。 它是专门为Debian开发的包管理系统,方便软件的安装、更新和删除。 所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix等。dpkg用于:管理已经下载到本地并安装的软件包,还可以提供安装后的软件信息、管理本地的deb包系统,并可以安装、卸载、deb打包、deb解压等操作。 可以简单理解为离线安装软件。
2.1 安装
dpkg -i 软件包名称.deb
2.2 卸载
dpkg -r package_name:remove,删除包但保留其配置文件
dpkg -P package_name:purge,卸载软件,并清除配置文件
2.3 查询
dpkg -l:显示所有已安装的软件包
dpkg -l |grep keywods:查询所有已安装软件包中与关键字相关的所有软件包的状态
dpkg -l 确切的软件包名称:查询软件包的安装状态
dpkg -l keywords:查询源软件包库中与关键字相关的软件包(卸载的也会显示)
常见状态如下:
ii ——表示系统已正常安装软件
pn - 表示该软件已安装,后来被清除
un - 表示该软件从未安装过
iu - 表示软件已安装但未配置
rc - 软件已被删除,但配置文件仍然存在
第三部分APT、apt-get、apt
与源码安装相比,dpkg 简单很多,但它仍然是离线安装方式,无法进行更方便的在线安装,而且 dpkg 无法自动处理软件包之间的依赖关系。
3.1 高级测试
在Ubuntu系统的母版Debian中,使用了一套称为高级打包工具(APT)的工具来管理软件包。 但是debian软件列表,请不要将其与 apt 命令混淆。 它们不是同一件事。
APT采用集中式软件仓库机制,将各种软件分类到软件仓库中,进行有效的组织和管理。 然后,将软件仓库放置在多台镜像服务器中,并保持基本一致。 这样所有用户都可以获得最新的软件安装包。 对于用户来说,这些图像是软件源。 由于用户所在网络不同,无法随意访问各个镜像站点。 为了让用户有选择地访问镜像站点,软件源配置文件/etc/apt/sources.list用于列出最适合访问的镜像站点的地址。
后面的apt-get、apt和aptitude命令实际上是APT机制的不同实现,不同的参数代表不同的操作。 例如,更新是下载镜像中的软件列表; install是从软件列表中下载对应的软件; Upgrade将本地软件包的版本与软件列表中对应软件包的版本进行比较,如果版本落后则更新; 等等。
3.2 apt-get
在早期,apt-get 是一种流行的包管理工具。 但它也存在很多问题。 如果你读过 apt-get 命令指南,你可能遇到过很多类似的命令,比如 apt-cache、apt-config 等。可以看到,这些命令的级别都比较低,并且包含了很多普通命令所不具备的功能。 Linux用户可能永远不会使用。 换句话说,最常用的Linux包管理命令分散在apt-get、apt-cache和apt-config这三个命令中。
今天,虽然 apt-get 命令还没有被弃用,但它已经完全被 apt 取代了,所以我们不会详细介绍 apt-get。
3.3 适配
apt命令的引入就是为了解决命令过于分散的问题。 它包括自 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少使用的功能。 使用 apt 命令时,用户不再需要从 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,为用户提供了管理软件包所需的选项。 下面介绍apt的常用命令:
apt update:更新软件列表
apt update:升级软件包
apt full-upgrade:升级软件包。 升级前请删除需要更新的软件包。
易于安装
:安装指定软件命令
易于安装
: 安装多个包
易于更新
:更新指定软件命令
适合展示
:显示软件包的具体信息,如版本号、安装大小、依赖关系等。
易于删除
:删除包
apt autoremove:清理不再使用的依赖项和库文件
易于清除
:删除软件包和配置文件
apt search:查找包
apt list --installed:列出所有已安装的软件包
第四部分能力
aptitude 和 apt-get 一样,是 Debian 及其衍生系统中极其强大的包管理工具。 它基于著名的APT机制,集成了dselect和apt-get的所有功能,并提供了更多的功能,特别是在依赖关系管理方面。 与 apt-get 不同,aptitude 更擅长处理依赖问题。 例如,当 aptitude 删除一个包时,它所依赖的包也会被删除。 这样系统中就不会残留无用的包了,整个系统会更加干净。下面介绍一下aptitude的常用命令
aptitude update 更新可用软件包列表
aptitude safe-upgrade 执行安全升级
aptitude full-upgrade 将系统升级到新版本
能力安装
安装包
能力删除
删除包
能力净化
删除包及其配置文件
aptitude search 搜索包
能力展示
显示包裹详情
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件
Part5snap(Ubuntu软件商店安装)
Snap是Canonical(Ubuntu发行版背后的公司)推出的一种新的软件打包格式,彻底解决了Linux软件的依赖问题。 Snap软件包具有更加稳定、安全的特性。 用snap安装的软件可以在软件商店找到。 下面介绍常用的Snap命令:
snap list:列出所有已安装的 snap 包
snap find:根据关键字查找可以安装的snap包
快照安装:安装软件
快速刷新:更新软件
快速刷新全部:更新所有软件
快速删除:卸载软件
恢复:将软件恢复到以前的版本
snap 更改:查看最近安装的 snap 文件
snap abort num:结束该数字代表的下载任务
第六部分总结
看了这么多的软件安装/管理方法,你是不是不知道该使用哪种包管理方法呢? 下面我们来梳理一下:
源码安装相对来说比较费时费力,但是如果遇到一些只提供源码的软件,就只能通过源码的方式安装了。
apt 比 apt-get 有更多优点。 对于大多数开发人员来说,apt 可以用来覆盖 apt-get 命令。
aptitude的软件搜索结果比apt更加简洁,所以如果你要搜索软件,可以使用aptitude。
能力倾向搜索结果
适当的搜索结果
apt安装软件时有进度条,而aptitude没有,所以其他情况建议使用apt。
dpkg 无法在线安装,也无法处理依赖关系。 建议仅在安装本地软件包时使用 dpkg。
snap工具目前主要针对普通Ubuntu用户,包含了更多日常生活中使用的软件。 Snap可能无法满足开发者的所有需求,很多软件包都无法使用。 因此,推荐使用apt来安装和管理开发软件包。
结尾