{"id":1672,"date":"2009-02-16T15:24:16","date_gmt":"2009-02-16T17:24:16","guid":{"rendered":"http:\/\/antonini.med.br\/blog\/?p=1672"},"modified":"2022-02-15T03:29:38","modified_gmt":"2022-02-15T03:29:38","slug":"um-kokar-para-o-ubuntu-e-outras-distribuicoes","status":"publish","type":"post","link":"https:\/\/antonini.psc.br\/?p=1672","title":{"rendered":"Um kokar para o Ubuntu e outras distribui\u00e7\u00f5es"},"content":{"rendered":"<p style=\"text-align: justify;\">Se voc\u00ea chegou a usar alguma das vers\u00f5es do Kurumin, deve se lembrar do Kokar, que era um CD com uma c\u00f3pia off-line dos arquivos usados pelos \u00edcones m\u00e1gicos. Este \u00e9 um script que ensina como aplicar o conceito a outras distribui\u00e7\u00f5es derivadas do Debian e do Ubuntu.<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<p style=\"text-align: justify;\">Ao instalar qualquer pacote, o apt primeiro baixa o arquivo para s\u00f3 depois fazer a instala\u00e7\u00e3o. Isso evita problemas causados por problemas na conex\u00e3o, uma vez que se a conex\u00e3o cai, ou o processo \u00e9 interrompido durante o download, a instala\u00e7\u00e3o sequer \u00e9 iniciada. O apt \u00e9 capaz tamb\u00e9m de continuar os downloads em caso de interrup\u00e7\u00e3o e tamb\u00e9m de baixar v\u00e1rios pacotes simultaneamente, aproveitando ao m\u00e1ximo a banda da conex\u00e3o.<\/p>\n<p style=\"text-align: justify;\">Todos os pacotes baixados s\u00e3o salvos na pasta &#8220;\/var\/cache\/apt\/archives&#8221; e continuam l\u00e1 mesmo depois de instalados.<\/p>\n<p style=\"text-align: justify;\">Complementando, temos a pasta &#8220;\/var\/lib\/apt\/lists&#8221;, que armazena as listas de pacotes, que s\u00e3o baixadas ao rodar o &#8220;apt-get update&#8221;.<\/p>\n<p style=\"text-align: justify;\">Sempre que voc\u00ea inicia a instala\u00e7\u00e3o de algum pacote, o apt come\u00e7a verificando o conte\u00fado da pasta &#8220;\/var\/lib\/apt\/lists&#8221;, em busca de informa\u00e7\u00f5es sobre o pacote solicitado (n\u00famero da vers\u00e3o atual, nome do arquivo, etc.), verifica se o arquivo j\u00e1 n\u00e3o est\u00e1 dispon\u00edvel na pasta &#8220;\/var\/cache\/apt\/archives&#8221; e, caso n\u00e3o esteja, executa o processo normal de download.<\/p>\n<p style=\"text-align: justify;\">Como deve estar imaginando, \u00e9 poss\u00edvel fazer backup destas duas pastas de forma a preservar o cache do apt-get depois de reinstalar o sistema, ou mesmo para instalar os pacotes j\u00e1 baixados em outras m\u00e1quinas, como no caso de algu\u00e9m que tem banda larga na escola ou no trabalho, mas acessa via modem discado em casa, por exemplo. Basta fazer backup do conte\u00fado das duas pastas e restaur\u00e1-las no outro PC.<\/p>\n<p style=\"text-align: justify;\">Voc\u00ea pode fazer os backups rapidamente usando o tar. Os dois comandos abaixo criam os arquivos &#8220;lists.tar&#8221; e &#8220;archives.tar&#8221; no diret\u00f3rio atual:<\/p>\n<p style=\"text-align: justify;\">$ tar -cvf lists.tar \/var\/lib\/apt\/lists\/<br \/>\n$ tar -cvf archives.tar \/var\/cache\/apt\/archives\n<\/p>\n<p style=\"text-align: justify;\">Voc\u00ea pode notar que n\u00e3o estou usando o par\u00e2metro &#8220;z&#8221; do tar, que geraria arquivos compactados, pois como o arquivo incluir\u00e1 pacotes .deb (que j\u00e1 s\u00e3o arquivos compactados), isso s\u00f3 serviria para tornar a cria\u00e7\u00e3o dos arquivos mais demorada.<\/p>\n<p style=\"text-align: justify;\">Para restaurar os backups na outra m\u00e1quina, voc\u00ea precisaria apenas executar (dentro do diret\u00f3rio com os dois arquivos) os comandos:<\/p>\n<p style=\"text-align: justify;\"># tar -xvf lists.tar &#8211;directory \/<br \/>\n# tar -xvf archives.tar &#8211;directory \/\n<\/p>\n<p style=\"text-align: justify;\">A op\u00e7\u00e3o &#8220;&#8211;directory \/&#8221; faz com que os arquivos sejam desempacotados no diret\u00f3rio raiz, fazendo com que os arquivos sejam restaurados nas pastas corretas. Sem isso, eles seriam extra\u00eddos dentro do diret\u00f3rio onde o comando foi executado.<\/p>\n<p style=\"text-align: justify;\">Para que os arquivos sejam realmente usados, \u00e9 importante que as duas m\u00e1quinas estejam rodando a mesma distribui\u00e7\u00e3o (afinal, pacotes do Debian Etch n\u00e3o seriam de muita utilizada no Ubuntu 9.04, por exemplo) e, igualmente importante, devem estar configuradas para utilizarem os mesmos reposit\u00f3rios no arquivo &#8220;\/etc\/apt\/sources.list&#8221;. Uma boa maneira de se certificar disso, \u00e9 simplesmente incluir o arquivo no backup e restaur\u00e1-lo na outra m\u00e1quina junto com os outros arquivos.<\/p>\n<p style=\"text-align: justify;\">Para facilitar, voc\u00ea pode usar meu script:<br \/>\n<a href=\"http:\/\/www.gdhpress.com.br\/blog\/arquivos\/backup-cache-apt.zip\">http:\/\/www.gdhpress.com.br\/blog\/arquivos\/backup-cache-apt.zip<\/a>\n<\/p>\n<p style=\"text-align: justify;\">Ele automatiza o processo, permitindo gerar um arquivo ISO, que voc\u00ea pode gravar em CD, ou simplesmente transportar em um pendrive e montar na outra m\u00e1quina. O arquivo inclui um script de recupera\u00e7\u00e3o, que automatiza a restaura\u00e7\u00e3o. A id\u00e9ia central \u00e9 a mesma que era usada no Kurumin, para gerar o CD do Kokar, mas nesse caso aplicada a outras distribui\u00e7\u00f5es.<\/p>\n<p style=\"text-align: justify;\">Aqui vai o &#8220;c\u00f3digo fonte&#8221; do script para que voc\u00ea possa estud\u00e1-lo:<\/p>\n<p style=\"padding-left: 30px; text-align: justify;\">#!\/bin\/sh<br \/>\n# Faz backup do backup do apt<br \/>\n# Escrito por Carlos E. Morimoto<br \/>\necho &#8216;Este script faz backup do conte\u00fado das pastas \/var\/cache\/apt\/archives e<br \/>\n\/var\/lib\/apt\/lists\/, permitindo salvar o cache do apt-get em um arquivo ISO,<br \/>\nque pode ser gravado em CD e restaurado em outras m\u00e1quinas.<br \/>\nEste script apenas copia os arquivos, por isso n\u00e3o \u00e9 necess\u00e1rio execut\u00e1-lo como<br \/>\nroot. Para us\u00e1-lo, \u00e9 neces\u00e1rio ter espa\u00e7o livre suficiente dentro do seu<br \/>\ndiret\u00f3rio home para o equivalente a duas c\u00f3pias do cache (um para a pasta<br \/>\ntempor\u00e1ria e outro para o arquivo ISO).&#8217;<br \/>\necho &#8216;Pressione Enter para gerar o backup&#8217;<br \/>\nread pausa<br \/>\necho &#8220;Acessando o home&#8221;<br \/>\ncd ~<br \/>\npwd<br \/>\nsleep 1<br \/>\necho &#8216;Removendo backups anteriores:<br \/>\nrm -rf apt-cache\/<br \/>\nrm -rf apt-cache.iso<br \/>\n&#8216;<br \/>\nsleep 1<br \/>\nrm -rf apt-cache\/ &amp;&gt;\/dev\/null<br \/>\nrm -rf apt-cache.iso &amp;&gt;\/dev\/null<br \/>\necho &#8216;Criando pasta apt-cache:<br \/>\nmkdir apt-cache<br \/>\ncd apt-cache<br \/>\n&#8216;<br \/>\nsleep 1<br \/>\nmkdir apt-cache<br \/>\ncd apt-cache<br \/>\necho &#8216;Fazendo backup das listas de pacotes:<br \/>\ntar -cvf lists.tar \/var\/lib\/apt\/lists\/<br \/>\n&#8216;<br \/>\nsleep 1<br \/>\ntar -cvf lists.tar \/var\/lib\/apt\/lists\/ &#8211;exclude=lock<br \/>\necho &#8216;Fazendo backup do cache de pacotes:<br \/>\ntar -cvf archives.tar \/var\/cache\/apt\/archives<br \/>\n&#8216;<br \/>\nsleep 1<br \/>\ntar -cvf archives.tar \/var\/cache\/apt\/archives &#8211;exclude=lock<br \/>\necho &#8216;Fazendo backup do sources.list:<br \/>\ncp \/etc\/apt\/sources.list .<br \/>\n&#8216;<br \/>\nsleep 1<br \/>\ncp \/etc\/apt\/sources.list .<br \/>\necho &#8216;#!\/bin\/sh<br \/>\n# Restaura o cache do apt. Este script deve ser executado como root<br \/>\n# Por Carlos E. Morimoto<br \/>\nif [ &#8220;`id -u`&#8221; != &#8220;0&#8221; ]; then<br \/>\necho &#8220;Este script precisa ser executado como root. Digite su &#8211; para se logar&#8221;<br \/>\necho &#8220;como root e execute o script novamente.&#8221;<br \/>\nfi<br \/>\nmkdir -p \/var\/lib\/apt\/lists<br \/>\nmkdir -p \/var\/cache\/apt\/archives<br \/>\nif [ -e &#8220;lists.tar&#8221; ]; then<br \/>\necho &#8220;Pressione Enter para restaurar os arquivos&#8221;<br \/>\nread pausa<br \/>\ntar -xvf lists.tar &#8211;directory \/<br \/>\ntar -xvf archives.tar &#8211;directory \/<br \/>\nelse<br \/>\necho &#8220;O arquivo lists.tar n\u00e3o foi encontrado. Voc\u00ea esta executando o script&#8221;<br \/>\necho &#8220;No mesmo diretorio onde estao os arquivos?&#8221;<br \/>\nfi<br \/>\necho &#8220;&#8221;<br \/>\necho &#8220;E recomendavel confirmar o conte\u00fado do arquivo \/etc\/apt\/sources.list,&#8221;<br \/>\necho &#8220;que deve ser igual ao arquivo na maquina onde o backup foi feito.&#8221;<br \/>\necho &#8220;Verifique a c\u00f3pia do arquivo original, que foi incluida na imagem.&#8221;<br \/>\n&#8216; &gt; restaurar-apt-cache.sh<br \/>\nchmod +x restaurar-apt-cache.sh<br \/>\necho &#8220;Preparando para criar a imagem ISO, seja paciente&#8221;<br \/>\nsleep 1<br \/>\ncd ..<br \/>\nmkisofs -pad -l -r -J -v -V &#8220;Cache do apt&#8221; -o apt-cache.iso apt-cache\/<br \/>\necho &#8220;Gerado o arquivo \/home\/$USER\/apt-cache.iso&#8221;<br \/>\necho &#8216;Voc\u00ea pode grav\u00e1-lo em CD ou simplesmente copi\u00e1-lo em um pendrive ou<br \/>\noutra unidade de armazenamento. Use o script &#8220;restaurar-apt-cache.sh&#8221;<br \/>\ndentro da imagem para restaurar o cache, como em:<br \/>\n# cd \/media\/cdrom<br \/>\n# .\/restaurar-apt-cache.sh<br \/>\nEle precisa ser executado como root (ou usando o sudo), para que possa<br \/>\nmodificar as pastas do sistema.<br \/>\nVoc\u00ea pode montar o arquivo iso sem precisar queimar o CD usando o comando:<br \/>\n# mount -o loop apt-cache.iso \/mnt\/cdrom<br \/>\n\u2026 como root.&#8217;\n<\/p>\n<p style=\"padding-left: 30px; text-align: center;\">[<a href=\"javascript:history.go(-1)\">Voltar<\/a>]<\/p>\n<p><!-- You can start editing here. --><\/p>\n<p style=\"text-align: justify;\">\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea chegou a usar alguma das vers\u00f5es do Kurumin, deve se lembrar do Kokar, que era um CD com uma c\u00f3pia off-line dos arquivos usados pelos \u00edcones m\u00e1gicos. Este \u00e9 um script que ensina como aplicar o conceito a outras distribui\u00e7\u00f5es derivadas do Debian e do Ubuntu.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-1672","post","type-post","status-publish","format-standard","hentry","category-informatica"],"_links":{"self":[{"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/posts\/1672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1672"}],"version-history":[{"count":1,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/posts\/1672\/revisions"}],"predecessor-version":[{"id":28084,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=\/wp\/v2\/posts\/1672\/revisions\/28084"}],"wp:attachment":[{"href":"https:\/\/antonini.psc.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/antonini.psc.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}