Менеджер пакетов 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
чтобы моя работа была сделана.
Вы говорите, две строчки ?! Вот однострочная функция в 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
.
взгляните на пакет dag createrepo, доступный на rpmforge: http://pkgs.repoforge.org/createrepo/
этот пакет предоставит вам все инструменты для удовлетворения ваших потребностей
надеясь, что это поможет,
Если вы пытаетесь настроить собственный репозиторий (очень типичный сценарий), вам будет лучше создать пакет 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
И содержимое файла репо:
[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@domain.ext> - 5.0.0-1
- Initial Package
Получив пакет RPM, его можно разместить в репозитории, которому он принадлежит. Использовать createrepo --update [folder]
для восстановления метаданных вашего репозитория по мере необходимости. После этого все, что вам нужно сделать, чтобы установить репозиторий, это rpm -ivh http://repo.domain.ext/path/to/file/XXXXX.rpm
и вся конфигурация автоматически помещается в систему.