Fedora 下采用 Yum 管理 RPM 之间的依赖, 同时可以从 Repositories 端解析到合适的 RPM 依赖包,使得我们安装软件非常的方便。 很多 Linux 下的软件发布都会考虑发布一个 Yum 的 repo 文件, 让用户更加方便的安装。 本文先介绍客户机如何使用第三方的 repo 文件, 最后介绍下如何创建自己的 yum repository。
使用第三方的 repo 文件
我们以 virtualbox 为例, Oracle 为 virtualbox 发布提供了 repo 文件, 地址在:
http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
首先,我们切换到 root 用户:
[lgao@lgao ~]$ su -
Password:
然后, 到 /etc/yum.repos.d/ 目录下, virtualbox.repo 文件 downlod 下来:
[root@lgao ~]# cd /etc/yum.repos.d/
[root@lgao yum.repos.d]# wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
--2012-06-26 15:03:13-- http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
Resolving download.virtualbox.org... 137.254.16.69
Connecting to download.virtualbox.org|137.254.16.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 238 [text/plain]
Saving to: “virtualbox.repo”
100%[==============================================================>] 238 --.-K/s in 0s
2012-06-26 15:03:14 (17.7 MB/s) - “virtualbox.repo” saved [238/238]
之后, 我们可以采用 yum install VirtualBox 了:
从上面的输出我们看到, 这个 VirtualBox-4.1 的来源 Repository 是: virtualbox。 我们来细看下 virtualbox.repo 文件内容:
[root@lgao yum.repos.d]# cat virtualbox.repo
[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
其中:
- [virtualbox] 为 repository 名称, 表明接下来的数据是针对这个 repository 的, 类似 ini 文件。 一个 repo 文件里可以有多个 [XXX],且全局唯一。
- name=Fedora $releasever - $basearch - VirtualBox 该 repository 的 summary,全局唯一。 $releasever $basearch 是 yum 的变量, 具体含义请参考 man。 (command: man 5 yum.conf)
- baseurl=XXX 从哪里获取 pacakges 列表和 rpm 文件。
- enabled=1 表示此 repo 启用了。
- gpgcheck=1 表示需要检查 gpg 签名
- gpgkey=XXX 用来检查 gpg 签名的 key 文件
创建自己的 Yum repository
我们已经知道了如何使用第三方的 repo, 那么怎么创建自己的 yum repository 呢。我们从上一篇博客
中知道了如何创建一个 RPM 包, 我们就用这个 RPM 来演示下如何创建自己的 yum repository。
第一步, 选定 yum repository 的 base 地址
[lgao@lgao ~]$ mkdir -p yum_repo/Packages
我们选定 ~/yum_repo 作为 base 地址, 然后在里面创建一个 Packages 文件夹(可选,且文件夹名称随意)。
第二步, copy helloworld RPM 到 Packages 目录:
[lgao@lgao ~]$ tree yum_repo/
yum_repo/
`-- Packages
`-- helloworld-1.0.0-1.fc16.i386.rpm
这就是我们的目录结构。当然也可以简单的将 rpm 文件放在 ~/yum_repo 目录下。
第三步,到 ~/yum_repo 目录下, 运行 createrepo 命令创建 yum repository:
[lgao@lgao ~]$ cd yum_repo/
[lgao@lgao yum_repo]$ createrepo .
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
到这里为止, 我们的 yum repository 就创建好了。 如果你的机器里没有 createrepo 命令, 那么请使用:
[lgao@lgao yum_repo]$ sudo yum install createrepo
来安装。
第四步, 创建 helloworld.repo 文件:
[helloworld]
name=Hello World
baseurl=file:///home/lgao/yum_repo
enabled=1
gpgcheck=0
把 hello.repo 文件放在 /etc/yum.repos.d/ 下, 运行:
我们运行下 helloworld :
[root@lgao yum.repos.d]# helloworld
Hello World!
接下来我们看看如何在 yum repository 里升级 helloworld。
生成 helloworld-1.0.1-1.fc16.i386.rpm, 放进 ~/yum_repo/Packages 目录下, 删除 helloworld-1.0.0-1.fc16.i386.rpm, 重新执行 createrepo 命令:
[lgao@lgao yum_repo]$ createrepo .
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
然后执行:
[root@lgao yum.repos.d]# yum clean all
Loaded plugins: langpacks, presto, refresh-packagekit
Cleaning repos: helloworld:virtualbox
Cleaning up Everything
No delta-package files removed by presto
之后, 再次运行
yum install helloworld
系统会提示有新版本 helloworld,将进行 update。
之后我们再次运行 helloworld:
[root@lgao yum.repos.d]# helloworld
Hello World in New Version!
我们发现 helloworld 已经更新了。
通过发布一个 repo 文件来发布一套软件让软件安装更加方便,同时也避免了最终用户安装时找不到依赖的问题。 希望越来越多的软件发布采用更加人性化的技术。
- 大小: 23.8 KB
- 大小: 19.7 KB
分享到:
相关推荐
在Fedora 8系统中,本地Yum仓库的建立有助于在局域网内安装多台系统,因为这样可以从快速的局域网连接下载所有必要的软件包,从而节省互联网带宽。本教程将详细指导你创建一个针对Fedora 8的本地Yum镜像仓库。 1. ...
在服务器端,你需要创建一个目录来存储RPM包,并通过`createrepo`命令生成仓库数据(repodata),这些数据包含了RPM包的元信息,帮助YUM处理依赖关系。例如,你可以将RHEL 6安装光盘的内容复制到 `/var/ftp/rhel6/` ...
在没有网络连接或者网络不稳定的情况下,创建本地YUM源变得尤为重要,因为它可以让你离线安装和更新软件。 本资料包专注于在Red Hat和CentOS 6版本上创建本地YUM源的过程,这对于那些需要在无网络环境或网络受限的...
二、创建本地 yum 源 1. dd if=/dev/cdrom of=/home/rhce.iso(补充)mount /dev/cdrom /mnt/cdrom 2. 设置 yum 源,在/etc/yum.repos.d 目录下添加一个文件,文件的内容如下: [dvd] name=install dvd baseurl=...
`yum`通过与在线仓库(Repository)交互来获取软件包信息。这些仓库包含了各种软件包及其依赖关系。当用户执行`yum install`命令时,`yum`会自动解决软件包的依赖问题,确保所有必要的组件都被正确安装。 1. 安装...
2. **仓库(Repository)**:仓库是存放软件包的服务器,用户可以通过`yum`从中下载和安装所需的软件。在CentOS 8中,常见的仓库有BaseOS、AppStream、Extras等,这些仓库提供了不同的软件包,如系统核心、常用应用...
name=My Local YUM Repository baseurl=http://仓库服务器IP地址/repo/centos/ enabled=1 gpgcheck=0 ``` 8. 测试安装:在内网服务器上运行`yum clean all`清理缓存,然后尝试`yum update`或`yum install`命令...
总结来说,离线安装`yum`工具需要准备软件包,创建本地仓库,配置`yum`源,最后通过`yum`进行安装。在解决`yum`源问题时,要关注网络连接、仓库配置和RPM包的完整性。通过这些步骤,即使在无网络的环境中,也能顺利...
创建自定义 YUM 源仓库需要准备自己的 RPM 包,例如在上述示例中,我们创建了一个名为 `/myrpms` 的目录,并上传了一个名为 `package_rpms.tar.gz` 的 RPM 包压缩文件。然后,我们可以使用 `tar` 命令解压缩该文件,...
name=Local YUM Repository baseurl=file:///var/www/html/repo enabled=1 gpgcheck=0 ``` 3. **执行更新**:使用`yum update`或`yum install`命令,参照新配置的`local`仓库进行操作。 通过以上步骤,你可以...
### Linux 创建本地 YUM 仓库并添加 SNMP 服务详解 #### 一、前言 在 Linux 生产环境中,网络受限时无法直接访问外部资源,这时就需要建立本地 YUM 仓库来满足软件包的安装需求。此外,SNMP(简单网络管理协议)...
配置完成后,运行`yum clean all`清除缓存,然后执行`yum makecache`创建新的软件包列表。如果`gpgcheck`设置为1,YUM会自动下载并验证GPG密钥。若GPG校验失败,可能需要手动导入密钥: ``` rpm --import ...
选择一个合适的位置创建YUM源目录,例如`/var/yumrepo`,然后在该目录下创建各个软件仓库的子目录,如`CentOS-7`。 ```bash sudo mkdir -p /var/yumrepo/CentOS-7 ``` 2. 将软件包复制到对应目录 将你需要提供的...
- **安装`createrepo`**:`createrepo`是一个用于创建和维护RPM仓库元数据的工具。使用以下命令进行安装: ``` rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm ``` ##### 2. 安装`vsftpd`并设置FTP服务 - **安装...
创建自己的YUM仓库可以帮助你管理内部的软件分发,特别是当你有定制的或者私有的软件包时。以下是一些基本步骤: 1. **准备服务器**:选择一台服务器作为仓库服务器,并确保它可被客户端访问。 2. **安装必要软件*...
yum源是RPM(Red Hat Package Manager)软件包管理器的 Repository,它提供了一个自动化的软件包管理系统,允许用户轻松安装、更新和删除软件包。 在VMware Workstation虚拟机中使用yum源可以解决软件包管理问题。...
进入`/etc/yum.repos.d/`目录并创建一个新的配置文件`rhel-media.repo`: ```shell [root@localhost yum.repos.d]# touch rhel-media.repo ``` 使用文本编辑器打开并编辑`rhel-media.repo`文件,添加以下内容:...
打开或创建 `/etc/yum.repos.d/local.repo` 文件,输入以下内容,其中`baseurl`指向你的本地仓库目录: ```ini [localrepo] name=Local CentOS7 Repository baseurl=file:///var/www/html/centos7repo gpgcheck=0 ...
本话题将详细介绍如何为CentOS 6.1创建并打包YUM源,以及如何将打包后的yum源应用到系统中。 首先,了解Yum源是什么至关重要。Yum源本质上是存储库,包含了可供系统安装或更新的各种RPM软件包及其依赖关系。在...