Linux软件管理
- 一、rpm
- 1.1、默认配置
- 1.1.1、安装文件的默认位置
- 1.1.2、配置文件位置
- 1.1.3、查询已安装软件包的文件位置
- 1.1.4、自定义安装路径
- 1.1.5、rpm包缓存位置
- 1.1.6、总结
- 1.2、使用方式
- 1.2.1、基本用法
- 1.2.2、常用示例
- 1.2.3、高级用法
- 1.2.4、注意事项
- 1.2.5、与其它工具的比较
- 1.3、rpm源
- 二、yum
- 2.1、默认配置
- 2.1.1、安装包的默认位置
- 2.1.2、下载的 RPM 包缓存位置
- 2.1.3、配置文件位置
- 2.1.4、日志文件位置
- 2.1.5、查询已安装软件包的文件位置
- 2.1.6、自定义安装路径
- 2.1.7、总结
- 2.2、yum源
- 2.2.1、源配置文件
- 2.2.2、默认yum源
- 2.2.3、源配置文件格式
- 2.2.4、管理源
- 2.2.5、常用源
- 2.2.6、本地源
- 2.2.7、常见问题
- 2.2.8、国内镜像源
- 2.3、yum使用
- 2.3.1、基本用法
- 2.3.2、常用操作
- 2.3.3、高级用法
- 2.3.4、注意事项
- 2.3.5、与dnf的关系
- 三、apt-get
- 3.1、默认配置
- 3.1.1、安装文件的默认位置
- 3.1.2、配置文件位置
- 3.1.3、查询已安装软件包的文件位置
- 3.1.4、自定义安装路径
- 3.1.5、软件包缓存位置
- 3.1.6、总结
- 3.2、使用方式
- 3.2.1、基本用法
- 3.2.2、常用操作
- 3.2.3、高级用法
- 3.2.4、注意事项
- 3.2.5、与apt的关系
- 3.3、apt-get源
- 3.3.1、apt-get 源配置文件
- 3.3.2、默认 apt-get 源
- 3.3.3、apt-get 源配置文件格式
- 3.3.4、管理 apt-get 源
- 3.3.5、常用 apt-get 源
- 3.3.6、本地源
- 3.3.7、常见问题
- 3.3.8、国内镜像源
- 3.3.9、总结
一、rpm
rpm(Red Hat Package Manager)是用于管理 RPM 软件包的命令行工具,主要用于 Red Hat、CentOS、Fedora 等基于 RPM 的 Linux 发行版。它可以用于安装、查询、验证、升级和删除软件包。
1.1、默认配置
1.1.1、安装文件的默认位置
通过 rpm 安装的软件包会被解压并安装到系统的标准目录中,以下是常见目录:
#可执行文件:
/usr/bin/ # 普通用户可执行文件
/usr/sbin/ # 系统管理员可执行文件#库文件:
/usr/lib/ # 32 位库文件
/usr/lib64/ # 64 位库文件#配置文件:
/etc/ # 配置文件目录#日志文件:
/var/log/ # 日志文件目录#数据文件:
/var/lib/ # 数据文件目录#文档文件:
/usr/share/doc/ # 文档文件目录#头文件:
/usr/include/ # 头文件目录#服务文件:
/usr/lib/systemd/system/ # systemd 服务文件
1.1.2、配置文件位置
配置文件通常位于 /etc/ 目录下。具体路径取决于软件包的设计。例如:
#安装 httpd 后,配置文件位于:
/etc/httpd/conf/httpd.conf#安装 nginx 后,配置文件位于:
/etc/nginx/nginx.conf
1.1.3、查询已安装软件包的文件位置
如果你想查看某个已安装软件包的文件被安装到了哪些目录,可以使用以下命令:
rpm -ql package_name#例如,查看 httpd 的安装文件:
rpm -ql httpd#输出示例:
/etc/httpd/conf/httpd.conf
/usr/sbin/httpd
/usr/lib64/httpd/modules/mod_ssl.so
/var/log/httpd/
1.1.4、自定义安装路径
默认情况下,rpm 会将软件包安装到系统的标准目录中。如果需要自定义安装路径,可以通过以下方式:
- 手动解压 RPM 包并指定安装目录。
- 使用 rpm 命令的 --prefix 选项(如果软件包支持)。
例如:
rpm -ivh package.rpm --prefix=/custom/path
1.1.5、rpm包缓存位置
通过 yum 或 dnf 安装的 RPM 包会被缓存到以下目录:
/var/cache/yum/
#具体路径为:
/var/cache/yum/<仓库名>/packages/
1.1.6、总结
- 安装文件默认位置:根据软件包设计,分散在
/usr/
、/etc/
、/var/
等目录。 - 配置文件位置:通常位于
/etc/
目录下。 - 查询文件位置:使用
rpm -ql package_name
。 - 自定义安装路径:使用
--prefix
选项(如果支持)。
1.2、使用方式
1.2.1、基本用法
rpm [选项] [软件包名]
安装与升级:
-i
或--install
安装一个 RPM 包。-U
或--upgrade
升级一个 RPM 包(如果未安装,则安装)。-F
或--freshen
仅升级已安装的 RPM 包。--force
强制安装或升级,即使存在冲突。--nodeps
忽略依赖关系,强制安装或升级。
查询:
-q
或--query
查询已安装的 RPM 包。-qa
查询所有已安装的 RPM 包。-qi
显示 RPM 包的详细信息。-ql
列出 RPM 包安装的文件。-qf <文件>
查询某个文件属于哪个 RPM 包。-qc
列出 RPM 包的配置文件。-qd
列出 RPM 包的文档文件。-qR
列出 RPM 包的依赖关系。
验证:
-V
或--verify
验证已安装的 RPM 包。-Va
验证所有已安装的 RPM 包。
删除:
-
-e
或--erase
删除一个 RPM 包。 -
--nodeps
忽略依赖关系,强制删除。 -
其他:
-
-v
显示详细输出。 -
-h
显示安装进度条。 -
--import <密钥文件>
导入 RPM 签名密钥。 -
--checksig <RPM包>
验证 RPM 包的签名。
1.2.2、常用示例
安装 RPM 包
sudo rpm -ivh package.rpm
-i:安装。
-v:显示详细输出。
-h:显示进度条。
升级 RPM 包
sudo rpm -Uvh package.rpm
-U:升级。
仅升级已安装的 RPM 包
sudo rpm -Fvh package.rpm
-F:仅升级已安装的包。
查询已安装的 RPM 包
rpm -q package_name
#例如:
rpm -q httpd
查询所有已安装的 RPM 包
rpm -qa
显示 RPM 包的详细信息
rpm -qi package_name
# 例如:
rpm -qi httpd
列出 RPM 包安装的文件
rpm -ql package_name
#例如:
rpm -ql httpd
查询某个文件属于哪个 RPM 包
rpm -qf /path/to/file
#例如:
rpm -qf /etc/httpd/conf/httpd.conf
删除 RPM 包
sudo rpm -e package_name
#例如:
sudo rpm -e httpd
验证已安装的 RPM 包
rpm -V package_name
#例如:
rpm -V httpd
验证所有已安装的 RPM 包
rpm -Va
导入 RPM 签名密钥
sudo rpm --import /path/to/keyfile
#例如:
sudo rpm --import RPM-GPG-KEY-CentOS-7
验证 RPM 包的签名
rpm --checksig package.rpm
1.2.3、高级用法
强制安装或升级
sudo rpm -ivh --force package.rpm
忽略依赖关系
sudo rpm -ivh --nodeps package.rpm
显示 RPM 包的依赖关系
rpm -qR package_name
显示 RPM 包的配置文件
rpm -qc package_name
显示 RPM 包的文档文件
rpm -qd package_name
1.2.4、注意事项
- 依赖关系:rpm 不会自动解决依赖关系。如果需要自动解决依赖,可以使用 yum 或 dnf。
- 权限:安装、升级和删除操作需要管理员权限(sudo)。
- 签名验证:安装 RPM 包时,建议验证签名以确保软件包的安全性。
1.2.5、与其它工具的比较
- rpm:直接操作 RPM 包,不解决依赖关系。
- yum:基于 rpm,自动解决依赖关系,适合 CentOS/RHEL 7 及以下版本。
- dnf:yum 的替代品,适合 CentOS/RHEL 8 及以上版本。
1.3、rpm源
rpm 本身并不直接管理源,而是依赖 yum 或 dnf 来管理源。因此,rpm 源的配置文件与 yum 或 dnf 的配置文件相同。
二、yum
yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理 RPM 软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
2.1、默认配置
2.1.1、安装包的默认位置
通过 yum 安装的软件包会被解压并安装到系统的标准目录中,具体位置取决于软件包的设计和 Linux 文件系统层次结构(FHS)。以下是常见目录:
- 可执行文件:
/usr/bin/
或/usr/sbin/
- 库文件:
/usr/lib/
或/usr/lib64/
- 配置文件:
/etc/
- 日志文件:
/var/log/
- 数据文件:
/var/lib/
- 文档文件:
/usr/share/doc/
- 头文件:
/usr/include/
例如,安装 httpd 后:
- 可执行文件:
/usr/sbin/httpd
- 配置文件:
/etc/httpd/conf/httpd.conf
- 日志文件:
/var/log/httpd/
2.1.2、下载的 RPM 包缓存位置
yum 在安装软件包时,会先将 RPM 包下载到本地缓存目录。默认的缓存位置是:
/var/cache/yum/
具体路径为:
/var/cache/yum/<仓库名>/packages/
例如:
/var/cache/yum/base/packages/
你可以通过以下命令清理缓存:
sudo yum clean all
2.1.3、配置文件位置
yum 的配置文件主要位于 /etc/yum/ 目录下,以下是关键文件:
主配置文件:
/etc/yum.conf
#该文件定义了 yum 的全局配置,如缓存目录、日志文件、是否保留安装包等。
仓库配置文件:
/etc/yum.repos.d/
#该目录下存放了所有仓库的配置文件,每个仓库对应一个 .repo 文件。例如:
/etc/yum.repos.d/CentOS-Base.repo
2.1.4、日志文件位置
yum 的操作日志默认存储在:
/var/log/yum.log
#该文件记录了 yum 的安装、更新、删除等操作的历史记录。
2.1.5、查询已安装软件包的文件位置
如果你想查看某个已安装软件包的文件被安装到了哪些目录,可以使用 rpm 命令:
rpm -ql package_name
#例如:
rpm -ql httpd
2.1.6、自定义安装路径
默认情况下,yum 会将软件包安装到系统的标准目录中。如果需要自定义安装路径,可以通过以下方式:
- 手动解压 RPM 包并指定安装目录。
- 使用 rpm 命令的 --prefix 选项(如果软件包支持)。
例如:
rpm -ivh package.rpm --prefix=/custom/path
2.1.7、总结
- 安装包默认位置:根据软件包设计,分散在
/usr/
、/etc/
、/var/
等目录。 - RPM 包缓存位置:
/var/cache/yum/
- 配置文件位置:
- 主配置文件:
/etc/yum.conf
- 仓库配置文件:
/etc/yum.repos.d/
- 日志文件位置:
/var/log/yum.log
- 主配置文件:
2.2、yum源
2.2.1、源配置文件
yum 源的配置文件位于以下目录:
/etc/yum.repos.d/
#每个源对应一个 .repo 文件,文件名通常以 .repo 结尾。例如:
/etc/yum.repos.d/CentOS-Base.repo
2.2.2、默认yum源
不同的 Linux 发行版默认的 yum 源可能不同。以下是一些常见发行版的默认源:
CentOS:
- Base:基础软件包源。
- Updates:软件包更新源。
- Extras:额外的软件包源。
- EPEL:Extra Packages for Enterprise Linux,提供额外的软件包(需要手动启用)。
默认配置文件:
/etc/yum.repos.d/CentOS-Base.repo
Fedora:
- Fedora:基础软件包源。
- Updates:软件包更新源。
默认配置文件:
/etc/yum.repos.d/fedora.repo
/etc/yum.repos.d/fedora-updates.repo
RHEL (Red Hat Enterprise Linux):
- Base:基础软件包源。
- Updates:软件包更新源。
- Optional:可选的软件包源。
默认配置文件:
/etc/yum.repos.d/redhat.repo
2.2.3、源配置文件格式
.repo 文件的格式如下:
[repository-id]
name=Repository Name
baseurl=URL
enabled=1
gpgcheck=1
gpgkey=URL
- [repository-id]:源的唯一标识符。
- name:源的描述名称。
- baseurl:源的 URL 地址(可以是 HTTP、FTP 或本地路径)。
- enabled:是否启用该源(1 启用,0 禁用)。
- gpgcheck:是否检查软件包的 GPG 签名(1 检查,0 不检查)。
- gpgkey:GPG 密钥的 URL 地址。
2.2.4、管理源
查看已启用的源
yum repolist
查看所有源(包括禁用的)
yum repolist all
启用或禁用源
#修改 .repo 文件中的 enabled 值:
enabled=1 # 启用
enabled=0 # 禁用#使用命令行临时启用或禁用源:
yum --enablerepo=repo_id install package_name
yum --disablerepo=repo_id install package_name
添加新的源
- 创建一个新的 .repo 文件,例如 /etc/yum.repos.d/my.repo。
- 编辑文件并添加源配置。例如:
[my-repo]
name=My Custom Repository
baseurl=http://example.com/path/to/repo
enabled=1
gpgcheck=0
删除源
#删除对应的 .repo 文件即可。例如:
rm /etc/yum.repos.d/my.repo
2.2.5、常用源
EPEL 源:
EPEL(Extra Packages for Enterprise Linux)提供了许多 CentOS/RHEL 默认源中没有的软件包。
安装 EPEL 源:
sudo yum install epel-release
Remi 源:
Remi 源提供了最新的 PHP 和其他软件包。
安装 Remi 源:
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
RPMForge 源:
RPMForge 提供了额外的软件包,但需要手动配置。
2.2.6、本地源
如果你有本地的 RPM 包或镜像,可以配置本地源。
创建本地源
- 将 RPM 包放入一个目录,例如 /mnt/local-repo。
- 生成仓库元数据:
createrepo /mnt/local-repo
创建 .repo 文件:
[local-repo]
name=Local Repository
baseurl=file:///mnt/local-repo
enabled=1
gpgcheck=0
2.2.7、常见问题
源不可用或速度慢
- 检查网络连接。
- 更换为国内镜像源(如阿里云、腾讯云、清华镜像等)。
GPG 签名验证失败
- 确保 gpgkey 配置正确。
- 或者禁用 GPG 检查(gpgcheck=0)。
2.2.8、国内镜像源
阿里云镜像:
CentOS:
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' \-i.bak /etc/yum.repos.d/CentOS-*.repo
清华镜像:
CentOS:
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \-i.bak /etc/yum.repos.d/CentOS-*.repo
2.3、yum使用
2.3.1、基本用法
yum [选项] [命令] [软件包名]
安装与升级:
install
安装一个或多个软件包。update
更新一个或多个软件包。upgrade
升级所有已安装的软件包。downgrade
降级一个软件包到旧版本。
查询:
search
搜索软件包。list
列出软件包(已安装、可用、更新等)。info
显示软件包的详细信息。provides
查找提供某个文件或功能的软件包。whatprovides
同 provides。
删除:
remove
删除一个或多个软件包。erase
同 remove。
清理:
clean
清理缓存(元数据、软件包等)。autoremove
删除不再需要的依赖包。
其他:
check-update
检查可用的更新。history
查看 yum 操作历史。reinstall
重新安装一个软件包。groupinstall
安装一个软件包组。groupremove
删除一个软件包组。
2.3.2、常用操作
安装软件包
sudo yum install package_name
# 例如:
sudo yum install httpd
安装多个软件包
sudo yum install package1 package2
更新软件包
sudo yum update package_name
#例如:
sudo yum update httpd
更新所有软件包
sudo yum update
删除软件包
sudo yum remove package_name
#例如:
sudo yum remove httpd
搜索软件包
yum search keyword
#例如:
yum search nginx
列出所有软件包
yum list
列出已安装的软件包
yum list installed
列出可更新的软件包
yum list updates
显示软件包信息
yum info package_name
#例如:
yum info httpd
查找提供某个文件的软件包
yum provides /path/to/file
#例如:
yum provides /etc/httpd/conf/httpd.conf
清理缓存
sudo yum clean all
检查可用更新
sudo yum check-update
重新安装软件包
sudo yum reinstall package_name
#例如:
sudo yum reinstall httpd
安装软件包组
sudo yum groupinstall "Group Name"
#例如:
sudo yum groupinstall "Development Tools"
删除软件包组
sudo yum groupremove "Group Name"
查看操作历史
sudo yum history
撤销操作
sudo yum history undo <ID>
#例如:
sudo yum history undo 5
2.3.3、高级用法
仅下载软件包而不安装
sudo yum install --downloadonly package_name
#例如:
sudo yum install --downloadonly httpd
指定下载目录
sudo yum install --downloadonly --downloaddir=/path/to/dir package_name
启用或禁用仓库
sudo yum --enablerepo=repo_name install package_name
sudo yum --disablerepo=repo_name install package_name
排除特定软件包
sudo yum update --exclude=package_name
查看依赖关系
yum deplist package_name
2.3.4、注意事项
- 权限:安装、更新和删除操作需要管理员权限(sudo)。
- 仓库配置:yum 依赖于仓库配置文件(位于 /etc/yum.repos.d/),确保仓库配置正确。
- 缓存:yum 会缓存元数据和软件包,定期清理缓存可以节省磁盘空间。
- 替代工具:在 CentOS/RHEL 8 及以上版本中,dnf 是 yum 的替代品,用法与 yum 类似。
2.3.5、与dnf的关系
- yum 是较旧的包管理工具,dnf 是其改进版。
- 在 CentOS/RHEL 8 及以上版本中,yum 实际上是 dnf 的符号链接,因此两者用法几乎相同。
三、apt-get
apt-get 命令是 Debian Linux 发行版中的 APT 软件包管理工具。所有基于 Debian 的发行都使用这个包管理系统。deb 包可以把一个应用的文件包在一起,大体就如同 Windows 上的安装文件。
3.1、默认配置
3.1.1、安装文件的默认位置
通过 apt-get 安装的软件包会被解压并安装到系统的标准目录中,以下是常见目录:
#可执行文件:
/usr/bin/ # 普通用户可执行文件
/usr/sbin/ # 系统管理员可执行文件#库文件:
/usr/lib/ # 库文件目录
/usr/lib/x86_64-linux-gnu/ # 64 位库文件目录#配置文件:
/etc/ # 配置文件目录#日志文件:
/var/log/ # 日志文件目录#数据文件:
/var/lib/ # 数据文件目录#文档文件:
/usr/share/doc/ # 文档文件目录#头文件:
/usr/include/ # 头文件目录#服务文件:
/lib/systemd/system/ # systemd 服务文件
3.1.2、配置文件位置
配置文件通常位于 /etc/ 目录下。具体路径取决于软件包的设计。例如:
#安装 apache2 后,配置文件位于:
/etc/apache2/apache2.conf#安装 nginx 后,配置文件位于:
/etc/nginx/nginx.conf
3.1.3、查询已安装软件包的文件位置
如果你想查看某个已安装软件包的文件被安装到了哪些目录,可以使用以下命令:
dpkg -L package_name#例如,查看 apache2 的安装文件:
dpkg -L apache2
#输出示例:
/etc/apache2/apache2.conf
/usr/sbin/apache2
/var/log/apache2/
3.1.4、自定义安装路径
默认情况下,apt-get 会将软件包安装到系统的标准目录中。如果需要自定义安装路径,可以通过以下方式:
- 手动编译软件并指定安装目录。
- 使用 dpkg 命令解压软件包并手动安装。
3.1.5、软件包缓存位置
通过 apt-get 下载的软件包会被缓存到以下目录:
/var/cache/apt/archives/
#你可以通过以下命令清理缓存:
sudo apt-get clean
3.1.6、总结
- 安装文件默认位置:根据软件包设计,分散在 /usr/、/etc/、/var/ 等目录。
- 配置文件位置:通常位于 /etc/ 目录下。
- 查询文件位置:使用 dpkg -L package_name。
- 软件包缓存位置:/var/cache/apt/archives/。
3.2、使用方式
3.2.1、基本用法
sudo apt-get [选项] [命令] [软件包名]
常用命令:
install
安装一个或多个软件包。update
更新软件包列表(从源服务器获取最新的软件包信息)。upgrade
升级所有已安装的软件包到最新版本。dist-upgrade
升级整个系统(包括处理依赖关系的更改)。remove
删除一个或多个软件包(保留配置文件)。purge
删除一个或多个软件包(同时删除配置文件)。autoremove
删除不再需要的依赖包。clean
清理下载的软件包缓存。autoclean
清理过期的软件包缓存。search
搜索软件包。show
显示软件包的详细信息。check
检查依赖关系是否完整。
3.2.2、常用操作
更新软件包列表
sudo apt-get update
安装软件包
sudo apt-get install package_name
#例如:
sudo apt-get install vim
安装多个软件包
sudo apt-get install package1 package2
升级已安装的软件包
sudo apt-get upgrade
升级整个系统
sudo apt-get dist-upgrade
删除软件包(保留配置文件)
sudo apt-get remove package_name
#例如:
sudo apt-get remove vim
删除软件包(同时删除配置文件)
sudo apt-get purge package_name
#例如:
sudo apt-get purge vim
删除不再需要的依赖包
sudo apt-get autoremove
清理软件包缓存
sudo apt-get clean
清理过期的软件包缓存
sudo apt-get autoclean
搜索软件包
apt-cache search keyword
#例如:
apt-cache search web server
显示软件包详细信息
apt-cache show package_name
#例如:
apt-cache show vim
检查依赖关系
sudo apt-get check
3.2.3、高级用法
安装特定版本的软件包
sudo apt-get install package_name=version
#例如:
sudo apt-get install vim=2:8.1.2269-1ubuntu5
仅下载软件包而不安装
sudo apt-get install --download-only package_name
#例如:
sudo apt-get install --download-only vim
重新安装软件包
sudo apt-get install --reinstall package_name
#例如:
sudo apt-get install --reinstall vim
模拟操作(不实际执行)
sudo apt-get install -s package_name
#例如:
sudo apt-get install -s vim
排除特定软件包
sudo apt-mark hold package_name
#例如:
sudo apt-mark hold vim
3.2.4、注意事项
- 权限:apt-get 需要管理员权限,因此需要使用 sudo。
- 网络连接:apt-get 需要从源服务器下载软件包,确保网络连接正常。
- 源配置:apt-get 依赖于 /etc/apt/sources.list 文件中的源配置,确保源配置正确。
- 替代工具:在较新的 Ubuntu 版本中,apt 是 apt-get 的改进版,提供了更简洁的命令行界面。
3.2.5、与apt的关系
- apt 是 apt-get 的改进版,提供了更简洁的命令行界面。
- apt 和 apt-get 可以互换使用,但 apt 更推荐用于日常操作。
例如:
sudo apt update
sudo apt install vim
3.3、apt-get源
3.3.1、apt-get 源配置文件
apt-get 源的配置文件位于以下文件:
/etc/apt/sources.list
此外,还可以在以下目录中添加额外的源配置文件:
/etc/apt/sources.list.d/
每个源对应一个 .list 文件,文件名通常以 .list 结尾。例如:
/etc/apt/sources.list.d/my-repo.list
3.3.2、默认 apt-get 源
不同的 Linux 发行版默认的 apt-get 源可能不同。以下是一些常见发行版的默认源:
Ubuntu:
- Main:官方支持的免费和开源软件。
- Universe:社区维护的免费和开源软件。
- Restricted:专有驱动程序。
- Multiverse:受版权或法律限制的软件。
默认配置文件:
/etc/apt/sources.list
Debian:
- Main:官方支持的免费软件。
- Contrib:依赖非自由软件的免费软件。
- Non-free:非自由软件。
默认配置文件:
/etc/apt/sources.list
3.3.3、apt-get 源配置文件格式
sources.list 文件的格式如下:
deb [选项] URL 发行版 组件
#或
deb-src [选项] URL 发行版 组件
- deb:表示二进制软件包源。
- deb-src:表示源代码软件包源。
- URL:源的 URL 地址。
- 发行版:发行版代号(如 focal 表示 Ubuntu 20.04)。
- 组件:源的分组(如 main、universe、restricted、multiverse)。
例如:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
3.3.4、管理 apt-get 源
查看已启用的源:
cat /etc/apt/sources.list
cat /etc/apt/sources.list.d/*.list
添加新的源:
- 编辑 /etc/apt/sources.list 文件,或创建一个新的 .list 文件(如 /etc/apt/sources.list.d/my-repo.list)。
- 添加源配置。例如:
deb http://example.com/ubuntu/ focal main
删除源:
删除对应的 .list 文件或注释掉 /etc/apt/sources.list 中的相关行。
更新软件包列表:
添加或修改源后,需要更新软件包列表:
sudo apt-get update
3.3.5、常用 apt-get 源
Ubuntu 官方源:
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
Debian 官方源:
deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free
PPA 源:
PPA(Personal Package Archive)是 Ubuntu 的第三方源,提供额外的软件包。
添加 PPA 源:
sudo add-apt-repository ppa:user/ppa-name
#例如:
sudo add-apt-repository ppa:ondrej/php
删除 PPA 源:
sudo add-apt-repository --remove ppa:user/ppa-name
3.3.6、本地源
如果你有本地的 DEB 包或镜像,可以配置本地源。
创建本地源
- 将 DEB 包放入一个目录,例如 /mnt/local-repo。
- 生成仓库元数据:
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
- 创建 .list 文件:
deb file:///mnt/local-repo ./
3.3.7、常见问题
源不可用或速度慢
- 检查网络连接。
- 更换为国内镜像源(如阿里云、腾讯云、清华镜像等)。
GPG 签名验证失败
- 确保 GPG 密钥已导入。
- 或者禁用 GPG 检查(不建议)。
3.3.8、国内镜像源
阿里云镜像:
Ubuntu:
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list
Debian:
sudo sed -i 's|http://deb.debian.org|https://mirrors.aliyun.com|g' /etc/apt/sources.list
清华镜像:
Ubuntu:
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
Debian:
sudo sed -i 's|http://deb.debian.org|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
3.3.9、总结
- 配置文件位置:/etc/apt/sources.list 和 /etc/apt/sources.list.d/。
- 默认源:根据发行版不同,默认源可能不同。
- 管理源:通过编辑 .list 文件或使用 add-apt-repository 命令。
- 国内镜像源:可以加速下载。