什么是Yum?
yum 是一个交互式的、基于 rpm 的包管理器。
它可以自动执行系统更新,包括基于“存储库”元数据的依赖性分析和过时处理。
它还可以执行新包的安装、旧包的删除以及在许多其他命令/服务中对已安装和/或者可用包执行查询。
yum 是 Yellowdog Updater Modified 的缩写
如何在没有互联网连接的情况下使用 yum?
默认情况下,yum 会在操作成功后不再需要下载的数据文件时将其删除。
这样可以最大限度地减少 yum 使用的存储空间量。
但是,我们可以启用缓存,以便 yum 下载的包文件保留在缓存目录中。
通过使用缓存数据,我们可以在没有网络连接的情况下进行某些操作,还可以复制缓存中存储的包并在其他地方重复使用
注意:我们还可以下载 rpm 包和所有依赖项或者下载整个存储库以供离线使用。
yum 将临时文件存储在 /var/cache/yum/$basearch/$releasever/目录中,其中 $basearch 和 $releasever 是 Yum 变量,指的是系统的基本架构和 Red Hat Enterprise Linux 的发行版本。
我们可以在 yum version 命令的输出中找到 $basearch 和 $releasever 变量的值。
# yum version Loaded plugins: fastestmirror, refresh-packagekit, security Warning: RPMDB altered outside of yum. Installed: 6/i386 1143:95f0fe20d81af24850e6364a81367b66c9f4a1e2 Group-Installed: yum 14:3224f04a082a6cc0af5bc42667a6c5315ca35e96 version
清除 yum 缓存
删除 /var/cache/yum/目录中累积的条目通常很有用。
如果从缓存中删除软件包,则不会影响系统上安装的软件副本。
要从缓存中删除当前启用的存储库的所有条目,请以 root 身份键入以下内容:
# yum clean all
启用缓存
要在成功安装后保留包的缓存,请将以下文本添加到 /etc/yum.conf 的 [main] 部分。
keepcache = 1 启用缓存后,每个 yum 操作都可能从配置的存储库下载包数据。
要下载当前启用的 yum 存储库的所有元数据并使其可用,执行:
# yum makecache Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.ispros.com.bd * extras: mirror.doirstar.vn * updates: mirror.vietoss.com base | 3.7 kB 00:00 base/group_gz | 214 kB 00:11 base/filelists_db | 5.1 MB 07:31 base/primary_db | 3.6 MB 08:58 base/other_db | 2.2 MB 05:25 extras | 3.3 kB 00:00 extras/filelists_db | 31 kB 00:00 extras/prestodelta | 78 B 00:00 extras/primary_db | 28 kB 00:00 extras/other_db | 35 kB 00:01 updates | 3.4 kB 00:00 updates/filelists_db | 614 kB 00:08 updates/prestodelta | 58 kB 00:00 updates/primary_db | 800 kB 00:10 updates/other_db | 6.0 MB 00:58 Metadata Cache Created
如果我们想确保缓存与所有元数据完全同步,这将非常有用。
要设置元数据过期的时间,请使用 /etc/yum.conf 中的 metadata-expire 设置。
From man page makecache: Is used to download and make usable all the metadata for the currently enabled yum repos.
在仅缓存模式下使用 yum
要在没有网络连接的情况下执行 yum 命令,请添加 -C 命令行选项。
使用此选项,yum 不检查任何网络存储库而继续运行,并且仅使用缓存文件。
在这种模式下,yum 可能只安装先前操作已下载并缓存的包。
# yum -C list glibc Loaded plugins: fastestmirror, refresh-packagekit, security Installed Packages glibc.i686 2.12-1.132.el6 @base Available Packages glibc.i686 2.12-1.149.el6 base
因此,如我们所见,我们有一个 glibc 包的更新,我们可以使用以下命令在没有互联网连接的情况下使用缓存进行安装
# yum -C update glibc