Haveria efeitos colaterais negativos do compartilhamento / var / cache / apt / entre dois sistemas?

10

No interesse de economizar largura de banda, estou pensando em montar um host do VirtualBox /var/cache/aptcomo /var/cache/aptno convidado. O host e o convidado são o Ubuntu 10.10 de 32 bits. Haveria consequências negativas para fazer isso?

Estou ciente das soluções mais robustas como o apt-proxy, mas eu preferiria essa solução mais simples, se possível, para poupar o host da sobrecarga de executar serviços extras.

ændrük
fonte

Respostas:

10

Eu acredito que /var/cache/apt/{,src}pkgcache.bincontém os pacotes instalados atualmente.

Em vez de compartilhar /var/cache/apt/, compartilhe o /var/cache/apt/archives/diretório, que contém arquivos independentes. Você precisa fazer alguns ajustes, porque /var/cache/apt/archivesé de propriedade e gravável apenas pela raiz. Uma opção seria a criação do grupo de /var/cache/apt/archivespara apt-cache-writere adicionando o bit setgid para o diretório. Adicione-se ao apt-cache-writergrupo e defina-o umaskcomo algo 0002ou 0007não 0022.

Observe que sudo apt-get cleanlimpa este diretório ( /var/cache/apt/archives).

Lekensteyn
fonte
No Ubuntu 14, tentei isso para descobrir que o bloqueio exclusivo do apt é baseado em um arquivo neste diretório! (O que!? Um arquivo de bloqueio em um diretório de cache!) Portanto, compartilhar o sistema de arquivos literal com uma VM ou semelhante pode não ser uma boa solução. Eu também recomendo o uso de um serviço apt-cache adequada, discutido em detalhe aqui: askubuntu.com/q/3503/250556
ThorSummoner
4

Em vez de compartilhar essa pasta, será mais "saudável" criar um repositório de LAN usando o APT-CACHER

aqui está um tutorial sobre esse software

Luciano Facchinelli
fonte
Uma desvantagem dessa abordagem é que o VirtualBox consumirá mais espaço em disco. Isso não deve ser um problema se você tiver um disco rígido de 1 TB, mas com SSDs pequenos, é.
Lekensteyn
4

Sua melhor solução é usar o Apt-Cacher-NG na máquina host. Você não precisa se preocupar em dedicar um computador em rede ao aptcacher, porque ele roda como um programa simples, com uma instalação / configuração simples. O único pensamento a observar é a quantidade de espaço em disco que você tem, mas eu tenho usado essa configuração há um bom tempo e até agora não foi um problema.

Pode parecer estranho, mas você também pode usar o apt-cacher na máquina em que o apt-cacher está instalado. Isso significa que, se sua VM for atualizada antes do host, ela preencherá o cache e o Host poderá obter o pacote do cache.

Você também poderá ver estatísticas de quanto está sendo armazenado em cache e qual é a taxa de acertos, colocando o URL: "http: // seu-apt-cacher-ng-server: 3142" no seu navegador (veja abaixo).

Uma boa explicação simples de como configurar o apt-cacher pode ser encontrada aqui: http://acidborg.wordpress.com/2010/06/24/how-to-install-and-configure-apt-cacher-ng-on -ubuntu-server-10-04 / que colarei abaixo para completar.

  1. Instalação: apt-get install apt-cacher-ng
  2. Configuração: edite /etc/apt-cacher-ng/acng.confcom o seguinte conteúdo:
CacheDir: /var/cache/apt-cacher-ng
LogDir: /var/log/apt-cacher-ng
Port:3142
BindAddress: 0.0.0.0
Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian
Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu
PidFile: /var/run/apt-cacher-ng/pid
ExTreshold: 4
  1. Reinicie o Apt-Cacher NG: /etc/init.d/apt-cacher-ng restart
  2. Crie no restante das máquinas Debian / Ubuntu na rede o arquivo /etc/apt/apt.conf.d/02proxycom o seguinte conteúdo:

    Acquire::http { Proxy "http://your-apt-cacher-ng-server:3142"; };

real_ate
fonte
Antes de desperdiçar uma tarde em uma parte específica do software de cache do apt (como eu fiz), recomendo a leitura em askubuntu.com/q/3503/250556 - Eu tive o mínimo de problemas squid-deb-proxy, nem o apt-cacher (gross perl blob ) ou apt-cacaher-ng (melhor confusão de python com arquivos de configuração) funcionou muito bem para mim no 14.04 LTS, perto do carimbo de data e hora desta mensagem.
ThorSummoner