1 votes

Existe-t-il un outil Linux pour créer un fichier repo ?

Gestionnaire de paquets de SuSE zypper est en mesure de créer un fichier de dépôt dans /etc/zypp/repos.d/ .

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

Je cherche un outil équivalent pour faire la même chose pour centos. J'ai consulté la page de manuel de yum mais il semble que yum n'est pas en mesure de le faire. Actuellement, je dois écrire le code suivant pour créer un fichier de dépôt pour 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

Ce serait formidable si je pouvais écrire un code de deux lignes sous la forme suivante zypper pour faire mon travail.

2voto

gfrizzle Points 4518

Deux lignes, vous dites ?! Voici une fonction en une ligne dans bash qui fera 99% de ce que vous voulez :

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

Ou un formatage plus lisible par l'homme :

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

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

Bien entendu, vous pouvez l'adapter à votre convenance. Si vous parlez de l'autre extrémité de la maintenance d'un référentiel, regardez à createrepo .

1voto

Xinity Points 184

Jeter un coup d'oeil au paquet dag createrepo disponible sur rpmforge : http://pkgs.repoforge.org/createrepo/

ce paquet vous fournira tous les outils nécessaires pour répondre à vos besoins

J'espère que cela vous aidera,

0voto

crashmaxed Points 193

Si vous essayez de configurer un référentiel interne (un scénario très typique), il est préférable de créer un paquetage RPM pour déployer la configuration du référentiel. C'est l'approche standard utilisée par à peu près tous les principaux dépôts tiers basés sur EL (RHEL, CentOS, Scientific Linux), y compris epel, remi, ius et rpmforge.

C'est la même approche que j'ai utilisée en interne pour distribuer notre référentiel interne avec la clé de signature GPG correspondante. Par exemple, j'ai un dossier sources pour nos machines EL5 :

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

Et le contenu du fichier 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

Et le fichier SPEC pour construire l'ensemble :

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

Une fois le paquet RPM obtenu, il peut être placé dans le dépôt auquel il appartient. Utiliser createrepo --update [folder] pour reconstruire les métadonnées de votre référentiel si nécessaire. Après cela, tout ce que vous avez à faire pour installer votre référentiel est de rpm -ivh http://repo.domain.ext/path/to/file/XXXXX.rpm et toute la configuration est automatiquement placée sur le système.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X