linux笔记(yum本地源仓库搭建)
一、准备工作
安装必要的软件包
在大多数 Linux 发行版中,Yum 已经默认安装。如果系统中没有安装,可以根据发行版的包管理器进行安装。
准备本地源文件
可以是光盘镜像(如果是从光盘安装系统),或者是已经下载好的系统安装包。
二、挂载光盘(如果使用光盘镜像作为源)
创建挂载点
mkdir /mnt/cdrom
挂载光盘
mount /dev/cdrom /mnt/cdrom/AppStream
如果不是使用物理光盘,而是光盘镜像文件(例如 .iso 文件),可以使用以下命令挂载(假设镜像文件路径为 /path/to/your_iso_file.iso):
mount -o loop /path/to/your_iso_file.iso /mnt/cdrom
三、配置 Yum 本地源
备份原始的 Yum 配置文件(可选,但建议)
cp /etc/yum.repos.d/* /etc/yum.repos.d/backup/
创建本地源配置文件
使用文本编辑器创建一个新的 .repo 文件,例如 /etc/yum.repos.d/local.repo,内容如下:
[local]
name=Local Yum Repository
baseurl=file:///mnt/cdrom/AppStream
enabled=1
gpgcheck=0
解释:
[local]:这是仓库的标识,可以自定义。
name:仓库的名称,用于描述该仓库。
baseurl:指定源的路径,file:// 表示本地文件系统,/mnt/cdrom/AppStream 是我们挂载光盘或镜像文件的目录。
enabled:设置为 1 表示启用该仓库。
gpgcheck:设置为 0 表示不检查 GPG 签名。
- BaseOS 中的软件依赖
- 内核相关依赖
- 内核模块:BaseOS 包含了各种内核模块,这些模块是操作系统内核功能的扩展。例如,网络驱动模块(如
e1000e
用于英特尔以太网网卡驱动)、文件系统驱动模块(如ext4
文件系统相关模块)等。当安装需要特定网络功能或者存储功能的软件时,会依赖这些内核模块。 - 内核工具:如
kmod
工具,用于管理内核模块的加载和卸载。其他软件如果需要动态加载或卸载内核模块,会依赖这个工具。
- 内核模块:BaseOS 包含了各种内核模块,这些模块是操作系统内核功能的扩展。例如,网络驱动模块(如
- 系统库依赖
- C 标准库(glibc):这是 Linux 系统中最基本的库之一,几乎所有的软件都间接或直接依赖它。它提供了诸如内存管理、字符串处理、文件 I/O 等基本功能。许多编程语言运行时环境(如 C、C++)和系统工具都依赖 glibc 来实现基本的功能操作。
- 系统安全库(如 OpenSSL):用于加密、解密、数字证书等安全相关的操作。软件如果涉及网络通信的安全(如 HTTPS 协议的实现)、用户认证等功能,会依赖 OpenSSL 库。
- 系统配置库(如 libconfig):一些软件需要读取和解析系统配置文件,例如
/etc
目录下的各种配置文件,就可能依赖像 libconfig 这样的库来进行配置文件的读取和处理。
- 基本命令行工具依赖
- 文件和目录操作工具(如
cp
、mv
、rm
):这些工具的共享库是许多脚本和自动化工具依赖的基础。例如,一个用于备份文件的脚本可能会依赖cp
命令的功能来复制文件,而cp
命令本身的运行依赖于 BaseOS 中的文件系统操作相关的库。 - 文本处理工具(如
grep
、sed
、awk
):在处理日志文件、配置文件等文本文件时,很多软件会调用这些工具或者依赖它们的功能。例如,日志分析软件可能会依赖grep
来过滤特定的日志记录。
- 文件和目录操作工具(如
- 内核相关依赖
- AppStream 中的软件依赖
- 开发工具依赖
- 编程语言运行时和编译器:如 Python、Java 的运行时环境(
python3
和java - openjdk
)以及对应的编译器。当开发和运行 Python 或 Java 程序时,软件会依赖这些运行时环境提供的库和工具。例如,一个基于 Django(Python web 框架)开发的网站应用程序,会严重依赖 Python 运行时环境及其相关的库。 - 代码编辑器和集成开发环境(IDE):像
vim
、emacs
等文本编辑器或者更复杂的 IDE(如Eclipse
、IntelliJ IDEA
)的软件依赖。例如,开发 Java 程序可能会依赖Eclipse
的相关插件和库来进行代码编辑、调试和构建。
- 编程语言运行时和编译器:如 Python、Java 的运行时环境(
- 图形化软件依赖
- 图形库(如 GTK+、Qt):许多图形化应用程序依赖这些图形库来构建用户界面。例如,
GIMP
(图像编辑软件)依赖 GTK + 库来实现其图形界面的显示和交互功能。而Qt
库则被许多跨平台的软件(如VLC
媒体播放器)使用,用于在不同操作系统上提供一致的图形界面体验。 - 桌面环境组件(如 GNOME、KDE):如果安装的软件是基于特定桌面环境开发的,会依赖桌面环境的相关组件。例如,一个 GNOME 桌面环境下的小工具软件会依赖 GNOME 的库来实现与桌面环境的集成,如在系统托盘显示图标、与 GNOME 的主题风格保持一致等。
- 图形库(如 GTK+、Qt):许多图形化应用程序依赖这些图形库来构建用户界面。例如,
- 服务器和网络应用程序依赖
- Web 服务器软件(如
httpd
、nginx
):它们有自己的一套依赖关系,包括配置文件解析库、网络通信库等。例如,httpd
依赖apr
(Apache Portable Runtime)库来实现跨平台的运行和高效的网络通信功能。 - 数据库服务器(如
mariadb
、postgresql
):数据库软件依赖大量的库来实现数据存储、查询、事务处理等功能。例如,mariadb
依赖系统的存储库来实现数据在磁盘上的存储,还依赖网络通信库来处理客户端的连接请
- Web 服务器软件(如
- 开发工具依赖
四、测试 Yum 本地源
清除 Yum 缓存
yum clean all
生成新的缓存
yum makecache
尝试安装软件包
例如,安装一个常用的软件包,如 tree:
yum install tree
如果能够正常安装,说明 Yum 本地源仓库搭建成功