1 包管理
- 包管理系统利用一个数据库来记录各种相关内容
- 系统上安装了什么软件包
- 每个包安装了什么文件
- 每个已安装软件版的版本
- 包管理系统会检测依赖关系,并在安装需要的包之前,先安装好所依赖的软件包
- 基于Debian的发行版使用
dpkg
命令与包管理系统交互,基于Red Hat的发行版使用rpm
命令
2 基于Debian系统
2.1 apt的使用
- dpkg是低层的包管理工具,
apt
是基于dpkg
的高级工具。apt
是advanced packaging tool的简称,是一款安装包管理工具。在Ubuntu
下,我们可以使用apt
命令进行软件包的安装、删除、清理等,类似于Windows中软件管理工具- 在
Ubuntu
系统中,目录/etc/apt/sources.list
里会有很多的服务器的地址,这些服务器上有很多apt
的软件包,所以就可以通过apt指令来完成软件的安装、更新和卸载
- 在
- 更新包管理器的源列表
apt update
- 作用:同步系统中的软件源列表,确保从服务器获取最新的软件包信息。
- 执行时不会真正安装或更新软件,只更新包索引。
- 升级所有包
apt upgrade
- 更新所有已安装的软件包到当前源中的最新版本,但不移除现有软件或安装新软件。
- 完整升级
apt full-upgrade
,除了升级包,还会根据需要移除或安装其他依赖。 - 搜索软件包
apt search 包名
- 安装软件
apt install 包名
- 安装指定的软件包,并处理相关依赖。
- 安装指定版本
apt install <包名>=<版本号>
- 普通卸载
apt remove 包名
- 删除软件本身,但保留配置文件和数据。
- 完全卸载:
apt purge <包名>
- 列出可用的包
apt list
- 列出指定的包
apt list 包名
- 列出已安装的软件
apt list --installed
- 列出可升级的软件
apt list --upgradable
- 列出指定的包
- 显示详细包信息
apt show 包名
- 下载该包的源代码
apt source 包名
- 删除不需要的依赖
apt autoremove
2.2 apt和apt-get
APT(Advanced Package Tool)和 APT-GET 是 Debian 和 Ubuntu 等 Linux 发行版中用于管理软件包的工具。它们属于同一个包管理系统,但在使用方式和功能上有一些区别。
- APT
APT 是一个更现代、用户友好的命令行工具,整合了 APT-GET 和 APT-CACHE 的功能。
它提供了更简洁的命令和更直观的输出。
APT 是 APT-GET 的改进版本,旨在简化包管理操作。 - APT-GET
APT-GET 是 APT 系统的传统工具,功能强大但命令相对复杂。
它主要用于脚本和自动化任务,因为它的输出格式更稳定。
APT-GET 是 APT 的底层工具,APT 是基于它的封装。 - 主要区别
特性 | APT | APT-GET |
---|---|---|
用户友好性 | 更简洁、直观的命令和输出 | 命令较长,输出更技术化 |
进度条 | 支持进度条,更直观 | 不支持进度条 |
推荐用途 | 适合日常交互式使用 | 适合脚本和自动化任务 |
功能整合 | 整合了 apt-get 和 apt-cache | 需要单独使用 apt-cache 等工具 |
默认行为 | 默认启用推荐包(recommends) | 默认不启用推荐包 |
3 基于Red Hat的系统
rpm
是低层的包管理工具,yum
等是基于rpm
的高级工具。yum
是一个shell前端软件包管理区,基于rpm
包管理,能够从指定的服务器自动下载rpm
包并且安装(用rpm命令的话,需要先下载一个.rpm
的包,然后使用rpm命令安装),可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
3.1 yum的使用
- 列出已安装包
yum list installed
- 列出某个包的具体信息
yum list 包名
- 查看包是否安装
yum list installed 包名
- 查看yum服务器是否有需要安装的软件
yum list | grep xx
- 列出某个包的具体信息
- 找出系统上的某个特定文件属于哪个软件包
yum provides file_name
- yum会分别查找三个仓库:base、updates和installed,然后寻找匹配项。
- 安装软件
yum install 包名
- 手动下载rpm安装文件并用yum安装
yum localinstall 包名.rpm
- 手动下载rpm安装文件并用yum安装
- 列出所有已安装包的可用更新
yum update 包名
- 对更新列表中的所有包进行更新yum update
- 只删除软件包但是保留配置文件和数据文件
yum remove 包名
- 要删除软件和相关的文件
yum erase 包名
- 要删除软件和相关的文件
- 损坏的包依赖关系:在安装多个软件包时,某个包的依赖关系可能会被另一个包的安装覆盖。
- 第一种方法:先
yum clean all
,然后yum update
,有时,是文件放错了位置。 - 第二种方法:
yum deplist 包名
查看指定包依赖关系。通过这条命令,可以了解一个软件包在安装时需要的其他库或工具,以及哪些软件包可以提供这些功能。 - 第三种方法:
yum update --skip-broken
,这可能救不了损坏的包,但是可以更新其他的包
- 第一种方法:先
4 从源码安装包
- 先下载安装包,通常是
包.tar.gz
- 解压包
tar -zxvf 包.tar.gz
- 然后cd进入解压后的目录
- 其中通常又README文件,通常会介绍软件安装的操作
./configure
,检查依赖- 使用
make
命令,构建各种二进制文件- make命令会编译源码,然后连接器会为这个包创建最终的可执行文件
- 然后使用
make install
,这个命令的作用是将当前生成的各种二进制文件拷贝一份到/usr/bin
中,又因为/usr/bin
通常是在PATH
中的,所以在任何路径下,都可以直接使用可执行程序。- 使用这个命令后,就可以把当前的文件夹删除了
- 不使用这个命令也ok,但是每次使用命令时,都要带上路径才能使用(因为不在
PATH
环境变量中)。