Gostaria de configurar um repositório APT em um servidor que fornecerá alguns pacotes.
Existe uma maneira de configurar uma sem instalar nenhum software no servidor?
Como os arquivos precisam ser organizados?
Edit: Eu devo estar fazendo algo errado ... alguém pode me ajudar? Eu tenho o repositório em http://quickmediasolutions.com/apt/dists
Não sei onde ou o quê, mas algo está mal configurado. Atualmente, só tenho um pacote e é para todas as arquiteturas.
Aqui está o que foi adicionado ao meu /etc/apt/sources.list
:
deb http://quickmediasolutions.com/apt stable main
apt
package-management
repository
Nathan Osman
fonte
fonte
Respostas:
Configurar um repositório trivial é muito fácil usando o dpkg-scanpackages. Esta página explica como configurar um repositório trivial, e este explica como usá-lo (role para baixo até o exemplo 4).
fonte
deb http://quickmediasolutions.com/apt binary/
.Basta configurar um repositório simples, mas assinado, em um servidor da web. Como a maioria dos outros tutoriais é um tanto antiga ou complicada, tentarei replicar o procedimento aqui. A configuração inicial exige um pouco de esforço, mas o script de compilação simples facilita o gerenciamento. E você pode simplesmente inserir novos
*.deb
arquivos, atualizar ou deixar um trabalho cron lidar com isso.Gere algumas chaves de assinatura
Primeiro, você precisa criar uma
gpg
chave de assinatura para pacotes e seu repositório. Crie uma (4) chave de assinatura RSA, sem senha, e dê uma chave única$KEYNAME
quando solicitada. (Outros exemplos assumem "dpkg1
" como nome da chave.)Eu disse que não havia senha, porque seu servidor da web não possui um macaco incorporado para digitá-lo repetidamente. E os pacotes e repositórios assinados têm como objetivo apenas satisfazer as reclamações dos gerentes de atualização sobre isso. Faça o upload das duas chaves para o novo
/apt/
diretório do repositório no servidor da web, mas exclua asecret.gpg
chave após a inicialização.Atualizar script CGI
Este é o script shell / CGI de atualização simples para ele:
As três
gpg
linhas precisam ser executadas apenas uma vez, para inicializar a configuração do GPG em algum diretório$GNUPGHOME
(acima da raiz do documento). Exclua apenas osecret.gpg
sucesso posterior.Uma característica exclusiva desse pequeno script de shell é que ele aceita todos os
*.deb
arquivos que você solta, mas também procura recursivamente (a partir de um nível acima) por outros, e os vincula simbolicamente. (Precisa de .htaccessOptions FollowSymLinks
eventualmente.)Você pode executar esse script manualmente como CGI ou por tarefa cron. Mas esconda-o ou, melhor ainda, mova-o para fora da raiz do documento.
Por ser um repositório apt "trivial", ele precisa da seguinte
apt-sources.list
entrada:Isso é adequado para repositórios de arquitetura única, e se você não espera centenas de pacotes.
Assinatura de pacote
A assinatura de seus pacotes individuais também é trivial, depois de configurar suas chaves gpg:
(Isso deve ser feito na estação de trabalho em que os pacotes são criados, não no servidor da web do repositório.)
Repositório não assinado
Se você não precisar de pacotes assinados, poderá reduzir o script de atualização para apenas:
Que ainda pode ser usado por usuários médios, mas precisa de um sinalizador personalizado para
apt.sources
:Mas por favor, não use a
trusted=yes
flag habitualmente para tudo, ou se você não tiver certeza sobre a origem do pacote.Para usabilidade
Para usuários finais, basta soltar um
HEADER.html
no diretório do repositório. O Apachesmod_auto_index
anexará essa nota:Alternativas
Atualmente, existem algumas ferramentas para automatizar o gerenciamento de repositório. E ainda existem hosters online de repositório e serviços de criação de pacotes ( gemfury , packagecloud , bintray etc.)
Uma alternativa bastante conveniente é prm . É um script Ruby, que cria repositórios APT e YUM complexos. (Mas vamos apenas torcer para que o RPM finalmente acabe em breve ..) - É melhor instalado por
gem install prm
.E também escrevi um pequeno script para automatizar isso da mesma forma: http://apt.include-once.org/apt-phparchive - Por favor, não que não seja excessivamente robusto e escrito em PHP (pela primeira vez, isso é coincidência), e foi originalmente concebido para os pacotes DEB e RPM-over-APT e Phar.
Como isso está intimamente relacionado à pergunta original, também existem ferramentas para criar pacotes Debian mais facilmente. Um pouco desatualizado: EPM . Muito mais contemporâneo: FPM . E minha bifurcação pessoal: XPM (abordagem mais preguiçosa para empacotar aplicativos da linguagem de script).
fonte
wget …/public.gpg -O- | apt-key add -
dpkg-scanpackages -m
pode ser suficiente. Ainda listará todas as arquiteturas no mesmo arquivo da versão. Mas desde que cada .deb tenha um nome exclusivo / ou seja armazenado em subdiretórios distintos (amd64 /, all /), ele deve funcionar. Caso contrário, escolha uma das ferramentas de repositório mais complexas.Sim. Você consegue fazer isso. Você só precisa organizar os arquivos da maneira correta e criar os arquivos de índice. Se você colocar a estrutura de diretórios na raiz do documento do servidor da Web, os pacotes poderão ser acessados apenas através do servidor da Web.
Aqui está uma descrição detalhada de como os arquivos precisam ser organizados e como os arquivos de índice são criados.
Você também pode usar uma ferramenta chamada reprepro se estiver disposto a instalar esse pacote. Isso tornará a administração um pouco mais conveniente.
fonte
Talvez você também possa considerar um PPA do Launchpad
fonte
Para quem enfrenta esse erro depois de seguir a resposta de mario:
faça o seguinte:
Coloquei meus
*.deb
arquivos nadebs
pastafonte