有任何 Linux 工具可以创建 repo 文件吗?

有任何 Linux 工具可以创建 repo 文件吗?

SuSE 的包管理器zypper能够在 中创建存储库文件/etc/zypp/repos.d/

zypper -n rr myrepo
zypper -n ar -f http://path/to/myrepo myrepo

我正在寻找一个等效的工具来为 centos 做同样的事情。我查看了手册页yum,但似乎yum无法做到这一点。目前我必须编写以下硬代码来为 centos 创建存储库文件。

echo "[myrepo]
name = My Repository
baseurl = http://path/to/myrepo
proxy = _none_
gpgcheck = 0
metadata_expire = 300
fastestmirror_enabled = 1
failovermethod = roundrobin
priority = 1
enabled = 1
retries = 5
timeout = 10" >/etc/yum.repos.d/myrepo.repo

zypper如果我能编写两行代码来完成我的工作,那就太好了。

答案1

你说两行?!这是 bash 中的一个单行函数,它可以完成你想要的 99% 的功能:

function add-repo() { reponame=$1; url=$2; echo -e "[$reponame]\nbaseurl=${url}\nenabled=1\n" > /etc/yum.repos.d/$1.repo;}

usage: add-repo repo_name repo_url

或者更人性化易读的格式:

function add-repo() {
  reponame=$1
  url=$2

  echo -e "[$reponame]\nbaseurl=${url}\nenabled=1\n" > \
    /etc/yum.repos.d/$reponame.repo;
}

当然,您可以根据需要进行调整。如果您谈论的是维护存储库的另一端,请查看createrepo

答案2

查看 rpmforge 上可用的 dag createrepo 包: http://pkgs.repoforge.org/createrepo/

该套件将为您提供满足您需求的所有工具

希望这能有所帮助,

答案3

如果您尝试配置内部存储库(非常典型的情况),那么最好创建一个 RPM 包来部署存储库配置。这是几乎所有其他主要第三方基于 EL(RHEL、CentOS、Scientific Linux)的存储库(包括 epel、remi、ius 和 rpmforge)使用的标准方法。

这是我在内部分发内部存储库以及相关 GPG 签名密钥时使用的相同方法。例如,我有一个用于 EL5 机器的源文件夹:

[linuxadm@machine]# ls -1 /home/linuxadm/rpmbuild/SOURCES/XXXXX-release-5.0.0
XXXXX.repo
RPM-GPG-KEY-XXXXX

repo 文件内容如下:

[linuxadm@machine]# cat /home/linuxadm/rpmbuild/SOURCES/XXXXX-release-5.0.0/XXXXX.repo
[XXXXX]
name=XXXXX
baseurl=http://repo.domain.ext/XXXXX/5/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-XXXXX

构建整个事物的 SPEC 文件:

Name:           XXXXX-release
Version:        5.0.0
Release:        1
Summary:        XXXXX repository configuration

Group:          System Environment/Base
License:        XXXXX
URL:            http://www.domain.ext
Source0:        %{name}-%{version}.tar.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      noarch

%description
This package contains the XXXXX repository GPG key as well as configuration for yum.

%prep
%setup -q

%build

%install
rm -rf %{buildroot}

mkdir -p -m 755 %{buildroot}%{_sysconfdir}/pki/rpm-gpg
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/yum.repos.d
install -m 644 XXXXX.repo  %{buildroot}%{_sysconfdir}/yum.repos.d/XXXXX.repo
install -m 644 RPM-GPG-KEY-XXXXX %{buildroot}%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-XXXXX

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%config(noreplace) /etc/yum.repos.d/*
/etc/pki/rpm-gpg/*

%changelog
* Fri Mar 07 2014 First Last <[email protected]> - 5.0.0-1
- Initial Package

获得 RPM 包后,可以将其放入其所属的存储库中。createrepo --update [folder]根据需要使用重建存储库元数据。之后,您只需安装存储库,rpm -ivh http://repo.domain.ext/path/to/file/XXXXX.rpm所有配置都会自动放置在系统上。

相关内容