Gostaria de criar meu próprio repositório local na minha LAN, para que as máquinas na LAN possam atualizar e atualizar a partir dele. Quero baixar os pacotes e armazená-los no meu servidor local para que eu possa atualizar, atualizar, instalar etc. dele sem usar a Internet.
apt
repository
grooveplex
fonte
fonte
Respostas:
No wiki de ajuda do Ubuntu :
fonte
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
. O que está/dev/null
fazendo lá. Também li a página de manual, mas não estava bem claro.* Para criar um repositório offline pela LAN *
Instale um servidor Web Apache local
Por padrão, o pacote Apache do Debian configurará um site
/var/www
no seu sistema. Para nossos propósitos, tudo bem, então não há razão para fazer mais nada. Você pode testá-lo facilmente apontando o seu navegador favorito emhttp://localhost
Você deve ver a página da Web pós-instalação padrão que está realmente armazenada em/var/www/index.html
Criar um Diretório de Repositório de Pacotes Debian,
escolhido para criar um diretório
/var/www/debs
por esta. Sob ele, você deve criar diretórios de "arquitetura", um para cada arquitetura que você precisa suportar. Se você estiver usando apenas um computador (ou tipo de computador), precisará apenas de um - normalmente "i386" para sistemas de 32 bits ou "amd64" para 64 bits. Se você estiver usando alguma outra arquitetura, presumo que você provavelmente já saiba disso. Agora, basta copiar os arquivos do pacote ".deb" para uma determinada arquitetura nos diretórios apropriados. Se você apontar seu navegador da Web favorito parahttp://localhost/debs/amd64
(por exemplo), verá uma lista dos pacotes para sistemas de 64 bits.Crie um arquivo Packages.gz
Agora, precisamos criar um arquivo de catálogo para o APT usar. Isso é feito com um utilitário chamado "dpkg-scanpackages". Aqui'
Tornar o repositório conhecido pelo APT
Agora, a única coisa que resta a fazer é informar o APT sobre o seu repositório. Você faz isso atualizando seu arquivo /etc/apt/sources.list. Você precisará de uma entrada como esta:
Usei o nome do host real do meu sistema em vez do localhost - dessa maneira, o código é o mesmo para todos os computadores da minha LAN, mas o localhost funcionará bem se você estiver executando apenas um computador.
Agora, atualize o APT:
fonte
/var/www/debs
nesta resposta por/var/www/html/debs
. Ou você precisará de etapas extras para editar manualmente sua configuração do apache em/etc/apache2
Criando um repositório autenticado
Eu dei uma olhada nas respostas aqui e em outros sites e a maioria tem a (grande IMHO) desvantagem de que você está configurando um repositório não autenticado. Isto significa que você precisa executar
apt-get
com--allow-unauthenticated
para instalar pacotes a partir dele. Isso pode ser um risco à segurança, especialmente em scripts nos quais os pacotes que você está instalando podem não ser do seu repositório local.Observe que eu não mencionei aqui como disponibilizá-lo pela LAN, mas essa é uma configuração bastante genérica usando Apache ou nginx (consulte as outras respostas aqui).
Configure o diretório repo
Em seguida, adicione uma linha como esta para
sources.list
:Adicionando e removendo pacotes
remover pacotes
adicionar pacotes
Agora, execute o seguinte script que gera os arquivos Packages, Release e InRelease e assina-os com sua chave privada gpg:
Exemplo de conteúdo do arquivo conf / distributions
Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC
Ligações
https://wiki.debian.org/RepositoryFormat
http://ubuntuforums.org/showthread.php?t=1090731
https://help.ubuntu.com/community/CreateAuthenticatedRepository
fonte
date -Rc
, eu corrigi-lo paradate -Ru
assumir que é o que você quis dizer a partir da descrição de ediçãoVocê também pode configurar o servidor de origem local por nginx e reprepro:
Instale pacotes debian
crie diretórios para reprepro e edite-os
/ srv / reprepro / ubuntu / conf / distributions
/ srv / reprepro / ubuntu / conf / options
Inclua-o no reprepro, construa-o
Config nginx:
/etc/nginx/sites-available/vhost-packages.conf
Otimize o tamanho da caçamba:
/etc/nginx/conf.d/server_names_hash_bucket_size.conf
Referência ao Link do Guia de Instalação
fonte
Você pode dar uma olhada em
apt-mirror
eapt-cacher
.Aqui está um guia sobre como instalar e usá-lo.
fonte
As instruções na resposta do @ BigSack e na postagem wiki oficial do Ubuntu não funcionaram para mim no Ubuntu 18.04, até que eu fiz essas duas alterações:
Gere um
Packages
arquivo simples e não compactado (ao executar isso, o diretório de trabalho deve estar onde todos os pacotes estão localizados)Adicione a seguinte entrada em
/etc/apt/sources.list
fonte
Leia
1 Fonte: Crie um Repositório Ubuntu
fonte
Para criar um repositório local offline
1. torne um diretório acessível (pelo menos por raiz)
fonte
Tentei usar
apt-rdepends
como na resposta selecionada, mas quando tentei instalar o pacote do meu repositório local, ele se queixou de dependências ausentes.apt-rdepends
não estava listando algumas das dependências do meu pacote. Eu suspeito que tem algo a ver com o fato, queapt-cache show
mostra vários registros para ele.Em vez disso, usei
apt-cache depends
, e isso fez o truque:Obtendo uma lista recursiva de dependências
-i
: somente dependências importantes--recurse
: recursivaTransforme-o em uma lista digerível
| tr -d "|,<,>, "
| sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
| sort
| uniq > list.txt
Comando completo:
Faça o download dos pacotes
Examine os pacotes e transforme-os em Packages.gz
fonte
Eu fiz usando o apt-mirror.
É bom, mas você precisa ter mais espaço no disco rígido, pois estará sincronizando com o servidor de repositórios.
fonte