任何Linux工具来创build一个回购文件?

SuSE的软件包pipe理器zypper能够在/etc/zypp/repos.d/创build存储库文件。

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

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

 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来完成我的工作,那将会很棒。

两行,你说?! 这是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

看看rpmforge上的dag createrepo软件包: http ://pkgs.repoforge.org/createrepo/

这个软件包会给你所有的工具来满足你的需求

希望这有助于,

如果您正在尝试configuration内部存储库(非常典型的情况),那么您最好创build一个RPM包来部署存储库configuration。 这是几乎所有其他主要第三方基于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 

和回购文件内容:

 [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文件构build整个事情:

 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]根据需要重build您的存储库元数据。 之后,所有你需要做的安装你的版本库然后是rpm -ivh http://repo.domain.ext/path/to/file/XXXXX.rpm并且所有configuration都会自动放在系统上。