Eu tenho um RPM e quero criar um repositório on-line

3

Eu tenho um rpm, uma versão específica do Spotify para o Fedora, que está disponível publicamente em um repositório [1]. O que posso fazer para que eu crie um repositório meu (preferencialmente no github) que terá essa versão específica do Spotify (este pacote rpm), para que se este repositório [1] obtiver uma versão atualizada, eu terei um repositório meu com a versão antiga.

Obrigado

[1] link

    
por Zacharias M 02.05.2015 / 22:39

2 respostas

1

Um repositório yum é essencialmente um repositório de arquivos local, ftp ou http. Como você tem um repositório remoto com dados repo, você pode usar o pacote yum utils no Fedora para clonar o repositório.

Primeiro, instale os pacotes necessários para sincronizar e gerenciar os metadados do repositório.

yum install yum-utils

Em seguida, assine a máquina que hospedará seu repositório no repositório Fedora Spotitify.

yum-config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo

Agora crie um caminho onde você irá hospedar seu espelho de repo. Eu uso /opt/repo como exemplo.

mkdir /opt/repo
cd /opt/repo

Espelhe o repositório do Spotify (nota: se você arquivar no host for diferente do seu cliente, pode ser necessário modificar esse comando para fazer o download de versões específicas do arco)

reposync -r epel-spotify -n

Isso criará um espelho do repositório do Spotify em /opt/repo/epel-spotify . Você pode então agendar o comando reposync todas as noites ou semanalmente e só fará o download de novos pacotes. Além disso, você pode configurar o Apache, lighttpd ou nginx (ou qualquer outro servidor http ou ftp) para hospedar o local do espelho.

Finalmente, você pode configurar sua máquina local para usar o espelho no sistema de arquivos local, configurar o sistema de arquivos local para ser montado por outros clientes em sua rede ou os clientes podem usar ftp ou http para recuperar pacotes após configurar um arquivo de configuração de repo semelhante a um abaixo.

cat /etc/yum.repos.d/spotify-local.repo

# file /etc/yum.repos.d/spotify-local.repo
[spotify-local]
name=My Personal Local Yum Repo
baseurl=file:///opt/repo/epel-spotify/
enabled=0

cat /etc/yum.repos.d/spotify-http.repo

# http /etc/yum.repos.d/spotify-http.repo
[spotify-http]
name=My Http Spotify Yum Repo
baseurl=http://yumserver.example.com/epel-spotify
enabled=0

cat /etc/yum.repos.d/spotify-ftp.repo

# ftp /etc/yum.repos.d/spotify-ftp.repo
[spotify-ftp]
name=My FTP Spotify Yum Repo
baseurl=ftp://yumserver.example.com/epel-spotify
enabled=0

Uma vez que uma dessas configurações de repositório esteja instalada em um cliente (e o http ou o ftp esteja funcionando corretamente), basta ativar o repositório e procurar por pacotes.

yum --enablerepo=spotify-local search spotify
    
por 03.05.2015 / 02:08
1

Acho que a maneira mais oficial de fazer isso é Copr , que age de maneira semelhante aos PPAs do Ubuntu. Repos podem ser adicionados ao yum através de um arquivo repo - por exemplo, este copr fornece uma versão atualizada do Chromium, que pode ser adicionado de várias formas: Arquivo de reporte do YUM (@ /etc/yum.repos.d/churchyard-chromium-russianfedora-fedora-21.repo - fornecido pelo RPM na página):

[churchyard-chromium-russianfedora]
name=Copr repo for chromium-russianfedora owned by churchyard
baseurl=https://copr-be.cloud.fedoraproject.org/results/churchyard/chromium-russianfedora/fedora-$releasever-$basearch/
skip_if_unavailable=True
gpgcheck=0
enabled=0
#priority=99

ou, usando DNF (padrão Fedora 22+, eu acho):

dnf copr enable churchyard/chromium-russianfedora

No entanto, pode ser restrito a ter certas licenças de software e outras coisas, e você pode precisar passar por alguns aros para defini-los corretamente. Portanto, um método alternativo seria fazer o que seu site vinculado parece estar fazendo, e criar um arquivo de reporte apontando para um servidor com os RPMs apropriados - ele usa este arquivo repo , e aponta para link ... com uma estrutura de diretórios para abrigar todos os RPMs necessários. Se você criou seu próprio repositório público, você terá que remover / alterar o conteúdo da chave GPG, alterar a versão do pacote e o log de alterações adequadamente, e seria bom se você também obtivesse permissão do autor do projeto (em a página que o autor diz ter meios de contato no changelog do pacote).

Se você deseja apenas ter uma versão que possa ser instalada se necessário, o YUM aceita URLs, portanto, você deve poder instalá-la com a necessidade de configurar um repo - por exemplo, para um laptop com o CentOS, eu posso fazer isso para instalar uma versão do kmod-wl que ele precisa:

sudo yum install https://dl.dropboxusercontent.com/s/yu8cvxaj9u269il/kmod-wl-6_30_223_248-2.el7.local.x86_64.rpm

O yum então baixa e verifica o pacote, e o instala se for necessário (o DNF pode fazer o mesmo, não uma pista)

    
por 03.05.2015 / 03:44