首先收集需要放入本地仓库的RPM软件包,可通过以下方式获取:
yum install --downloadonly --downloaddir=/path/to/rpms <package_name>命令下载指定软件包及其依赖(需联网);Packages目录下的所有RPM包。createrepo是生成YUM仓库元数据的必需工具,用于记录软件包的名称、版本、依赖关系等信息,使YUM能识别并管理本地仓库中的软件包。
执行以下命令安装:
sudo yum install -y createrepo
选择一个合适的路径(如/opt/localrepo、/var/your-repo)作为本地仓库的根目录,用于存放RPM包和生成的元数据:
sudo mkdir -p /path/to/your/localrepo
将准备好的RPM包复制到上述创建的目录中:
sudo cp /path/to/source/*.rpm /path/to/your/localrepo/
进入仓库目录,运行createrepo命令生成元数据(会自动创建repodata目录,包含primary.xml.gz、filelists.xml.gz等关键文件):
sudo createrepo /path/to/your/localrepo
若后续添加或删除了RPM包,可使用--update参数更新元数据(避免重新生成全部数据):
sudo createrepo --update /path/to/your/localrepo
在/etc/yum.repos.d/目录下创建一个新的.repo文件(如local.repo),用于定义本地仓库的参数:
sudo vi /etc/yum.repos.d/local.repo
文件内容示例如下(需根据实际情况修改baseurl路径):
[localrepo] # 仓库唯一标识符(需唯一)
name=Local Repository # 仓库描述名称(便于识别)
baseurl=file:///path/to/your/localrepo # 本地仓库路径(file://表示本地文件系统)
enabled=1 # 启用该仓库(1=启用,0=禁用)
gpgcheck=0 # 不验证GPG签名(若需验证,设为1并配置gpgkey路径)
修改配置文件后,需清理旧缓存并重新生成新缓存,使YUM识别新的本地仓库:
sudo yum clean all
sudo yum makecache
通过安装一个软件包(如gcc)验证本地仓库是否配置成功:
sudo yum install -y gcc
若能从本地仓库中找到并安装该软件包,说明配置生效。
若需让局域网内的其他服务器访问本地仓库,可配置HTTP服务(如Apache)共享仓库目录:
sudo yum install -y httpd;/etc/httpd/conf.d/localrepo.conf),添加以下内容:<Directory "/path/to/your/localrepo">
Options Indexes
AllowOverride None
Require all granted
</Directory>
Alias /repo/ "/path/to/your/localrepo/"
sudo systemctl start httpd
sudo systemctl enable httpd
baseurl为HTTP路径(如baseurl=http://your-server-ip/repo/),其他服务器即可通过该路径访问仓库。