Linux运维——软件管理

news/2025/3/3 21:42:59/

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

添加新的源

  1. 创建一个新的 .repo 文件,例如 /etc/yum.repos.d/my.repo。
  2. 编辑文件并添加源配置。例如:
[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 包或镜像,可以配置本地源。
创建本地源

  1. 将 RPM 包放入一个目录,例如 /mnt/local-repo。
  2. 生成仓库元数据:
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 会将软件包安装到系统的标准目录中。如果需要自定义安装路径,可以通过以下方式:

  1. 手动编译软件并指定安装目录。
  2. 使用 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

添加新的源:

  1. 编辑 /etc/apt/sources.list 文件,或创建一个新的 .list 文件(如 /etc/apt/sources.list.d/my-repo.list)。
  2. 添加源配置。例如:
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 包或镜像,可以配置本地源。
创建本地源

  1. 将 DEB 包放入一个目录,例如 /mnt/local-repo。
  2. 生成仓库元数据:
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
  1. 创建 .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 命令。
  • 国内镜像源:可以加速下载。

http://www.ppmy.cn/news/1576385.html

相关文章

git和gitee在idea中的使用

1.下载git 2.注册一个gitee且创建一个项目 3.在idea的plunge中下在gitee 4.登录gitee 别人使用的话复制 粘贴 commit提交到本地仓库 push推送到云端仓库

自动驾驶FSD技术的核心算法与软件实现

引言&#xff1a;FSD技术的定义与发展背景 在当今快速发展的科技领域中&#xff0c;自动驾驶技术已经成为全球关注的焦点之一。其中&#xff0c;“FSD”&#xff08;Full Self-Driving&#xff0c;全自动驾驶&#xff09;代表了这一领域的最高目标——让车辆在无需人类干预的情…

2.4 自动化评测答疑机器人的表现-大模型ACP模拟题-真题

真题 真题1&#xff1a;哪些是生成阶段的评估指标&#xff1f;哪些是召回阶段的评估指标&#xff1f; 整体回答质量的评估&#xff1a; Answer Correctness&#xff0c;用于评估 RAG 应用生成答案的准确度。 生成环节的评估&#xff1a; Answer Relevancy&#xff0c;用于评…

牛客刷题自留-深度学习

1、当在卷积神经网络中加入池化层(pooling layer)时&#xff0c;平移变换的不变性会被保留&#xff0c;是吗&#xff1f; 正常答案: C A 不知道 B 看情况 C 是 D 否 平移变换不变性的概念 平移变换不变性指的是当输入图像发生小范围的平移时&#xff0c;模型的输出结果不会发…

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略 作者: 网络安全专家 日期: 2025-02-27 分类: [网络安全] 标签: [漏洞防护, 信息安全, 企业安全] 引言:漏洞是攻击者的入口,防御是安全的基石 2025年,网络安全威胁持续升级。根据Gartner最新报告,全球企业因漏洞…

MATLAB的msgbox函数使用教程(一)

msgbox 是 MATLAB 中用于创建消息对话框的核心函数,支持多种交互模式和自定义选项。本文档从基础到高级分步详解其用法,并提供完整代码示例和注意事项。 如需帮助,或有导航、定位滤波相关的MATLAB代码定制需求,请点击文末卡片联系作者 文章目录 一、基础用法1. 简单消息对话…

Python毕业设计选题:基于django+vue的疫情数据可视化分析系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 员工管理 疫情信息管理 检测预约管理 检测结果…

Apache部署Vue操作手册(SSL部分)

1. Apache配置&#xff08;windows版本&#xff09; 1.1 httpd.conf 配置 找到apache配置文件 httpd.conf&#xff0c;将下面两条文件的注释#去掉&#xff0c;如果没搜到就新增这两条配置。一个是开启ssl模块&#xff0c;一个是引用专门的ssl配置文件。 LoadModule ssl_modu…