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都会自动放在系统上。