Qualquer ferramenta do Linux para criar um arquivo repo?

1

O gerenciador de pacotes do SuSE zypper é capaz de criar um arquivo de repositório em /etc/zypp/repos.d/ .

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

Estou procurando uma ferramenta equivalente para fazer o mesmo para centos. Eu verifiquei a página de manual de yum , mas parece que yum não é capaz de fazer isso. Atualmente eu tenho que escrever o seguinte código para criar um arquivo de repositório para 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

Seria ótimo se eu pudesse escrever duas linhas de código como zypper para fazer meu trabalho.

    
por stanleyxu2005 19.03.2014 / 04:21

3 respostas

2

Duas linhas, você diz ?! Aqui está uma função de uma linha no bash que fará 99% do que você quer:

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 uma formatação mais legível:

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

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

Claro, ajuste como achar melhor. Se você está falando sobre o outro lado da manutenção de um repositório, olhe para createrepo .

    
por 19.03.2014 / 05:00
1

dê uma olhada no pacote dag createrepo disponível no rpmforge: link

este pacote lhe dará todas as ferramentas para preencher suas necessidades

esperando que isso ajude,

    
por 21.03.2014 / 17:31
0

Se você estiver tentando configurar um repositório interno (um cenário muito típico), seria melhor criar um pacote RPM para implantar a configuração do repositório. Esta é a abordagem padrão usada por praticamente todos os principais repositórios de terceiros baseados em EL (RHEL, CentOS, Linux Científico), incluindo epel, remi, ius e rpmforge.

Essa é a mesma abordagem que usei internamente para distribuir nosso repositório interno junto com a chave de assinatura de GPG relevante. Por exemplo, eu tenho uma pasta de fontes para nossas máquinas EL5:

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

E o conteúdo do arquivo 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

E o arquivo SPEC para construir tudo:

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

Depois de ter o pacote RPM, ele pode ser colocado dentro do repositório ao qual ele pertence. Use createrepo --update [folder] para reconstruir seus metadados de repositório conforme necessário. Depois disso, tudo o que você precisa fazer para instalar seu repositório é o rpm -ivh http://repo.domain.ext/path/to/file/XXXXX.rpm e toda a configuração é colocada automaticamente no sistema.

    
por 21.03.2014 / 18:15