Slackmirror 3.x – versão Python
Índice
Seguindo a minha febre Python, passei mais este aplicativo para uma versão escrita em Python. Tive que fazer algumas mudanças mas no final o aplicativo ficou bem mais simples e fácil de implementar. Agora o slackmirror permite gerenciar cópias dos espelhos do Slackware, Slamd64 e Bluewhite64, com apenas um comando.
Mudanças
Seleção de espelhos
Dentre as mudanças, o arquivo de configuração dos espelhos, /etc/slackmirror/mirrors, teve que sofre algumas mudanças para atender a diversidade de estruturas dos espelhos Slack-like. A estrutura das linhas de endereço ficou assim:
distro%modo%url_base
O distro é o nome da distribuição: slackware, slamd64 ou bluewhite64. O modo foi necessário devido a diversidade de estruturas encontradas nos espelhos Slack-like, veja descrição abaixo:
- 0 – se o FILELIST.TXT está na url_base, como:
url_base/FILELIST.TXT - 1 – se o FILELIST.TXT está em url_base/distro, como:
url_base/slackware/FILELIST - 2 – se o FILELIST.TXT está em url_base/distro/distro_version:
url_base/slamd64/slamd64-12.1/FILELIST.TXT - 3 – se o FILELIST.TXT esta em url_base/distro_version:
url_base/slamd64-12.1/FILELIST.TXT
Fiz o cadastro de todos os espelhos disponíveis na ocasião, chequei as estruturas e já deixei as linhas prontas para serem selecionadas. Para a seleção de um espelho específico basta remover a tralha (#) da linha desejada. Selecione apenas uma linha para cada distribuição.
Filtros
Fiz algumas mudança na atuação dos filtros:
- git – remove arquivos e diretório .git da lista de downloads
- source – remove todas as fontes da lista de downloads
- lang – remove todas os pacotes de linguagem, exceto a linguagem selecionada
Agora estes filtros podem ser selecionados independentemente com a opção “–enable”.
Outras opções
Adicionei a opção “halt”, para desligar a máquina após o termino do download. Para que isto funcione o usuário deve ser capaz de executar comandos através do “su -c”, “sudo”, ou ser o root. Para configurar o “su” leia o “man suauth”.
Exemplos de uso
Veja alguns exemplos de uso do slackmirror abaixo:
slackmirror -d slamd64 -u
Atualiza (-u) um espelho da distribuição (-d) slamd64
slackmirror -u -f -n
Atualiza um espelho do Slackware (distribuição padrão, não necessita do -d). O -f serve para forçar a atualização, o que é necessário quando o slackmirror é interrompido por um CONTROL+C, durante uma criação ou atualização de um espelho. O (-n) é útil quando a rede está instável e a transmissão quebra. Neste caso, erros no download serão ignorados.
slackmirror -d bluewhite64 -c --http-proxy http://192.168.1.1:8080
--ftp-proxy http://192.168.1.1:8080
Cria (-c) um espelho da distribuição (-d) bluewhile64 através do proxy 192.168.1.1, porta 8080
slackmirror -d bluewhite64 -u -q
Atualiza o espelho do bluewhite64, sem as fontes e os pacotes de linguagem diferentes dos selecionados (-u). Útil para um download rápido.
slackmirror -d bluewhite64 -u --set-kde pt_BR --set-aspell pt
--enable lang_filter
Atualiza o espelho do bluewhite64, configura a linguagem padrão do KDE para “pt_BR” e do Aspell para “pt” e por fim, habilita a filtragem dos pacotes de linguagem.
O link para a última versão do aplicativo segue abaixo:
Arquivo de configuração
Algumas definições padrões do slackmirror podem ser feitas no arquivo /etc/slackmirror/slackmirror.conf. Este arquivo está todo comentado e preenchido com algumas definições, que devem ser alteradas em acordo com as necessidades pessoais de cada usuário.
Como um exemplo, o comando “su -c halt”, usado para desligar o sistema, pode ser substituído pelo “sudo halt”, alterando o conteúdo da variável HALT_COMMAND. Veja algumas variáveis funcionais abaixo:
- MIRROR_PATH – diretório onde as cópias dos espelhos serão armazenadas (/home/ftp/distro);
- ISO_PATH – diretório onde as isos geradas pelas opções “mkiso” e “burning” serão armazenadas (/home/ftp/distro/isos);
- DISTRO – distribuição padrão (slackware);
- DISTRO_VERSION – versão padrão (current);
- GIT_FILTER – habilita o filtror git. Remove da lista de download todos os arquivos contidos em diretórios “.git”, muito comum durante as atualizações dos espelhos das distribuições (True);
- LANG_ASPELL – linguagem padrão para o aspell (pt);
- LANG_KDE – linguagem padrão para o KDE (pt_BR);
- SOURCE_FILTER – habilita por padrão o filtro de fontes (False);
- LOG – habilita ou desabilita a criação do arquivo de log (False);
- LOG_FILENAME – nome do arquivo de log (/tmp/slackmirror-PID.log). O PID é substituído pelo ID do processo.
- LANG_FILTER – habilita por padrão o filtro de linguagem (False);
- DEV_DVD – dispositivo padrão para o gravados de DVD (/dev/dvdrw);
- HTTP_PROXY – define o endereço do proxy http. Algo como http://1.2.3.4:8080 (vazio)
- FTP_PROXY – define o endereço do proxy ftp (vazio)
- GOPHER_PROXY – define o endereço do gopher proxy (vazio)
- HALT_COMMAND – comando padrão para desligar o computador (su -c halt);
Manual
Para uma lista completa dos comandos execute apenas slackmirror:
slackmirror - 3.0.85 SLACKMIRROR - Manage Slackware mirrors SYNOPSIS: slackmirror [ONE ACTION] [OPTIONS]...DESCRIPTION: Manage Slackware or Slack-like mirrors. ACTIONS: --help, -h This help --create, -c Create a new mirrors --upgrade, -u upgrade mirror. Default action --clean, -l Remove extra files and directories --show, -s Show to the OPTIONS defaults --version, -v Show program version --mkiso, -m Make a DVD iso --burning, -b [dvd_iso] Burning a DVD iso. If [dvd_iso] is not found make it before. OPTIONS: --verbose, -V Enable verbose mode --no-stop, -n Ignore download error --distro , -d change DISTRO to : slackware, slamd64, ... --distro-version, -i change DISTRO_VERSION to : 11.0, 12.0, current, ... --quick, -q Fast options. Skip out languages, .git and sources files --force, -f Force upgrade. Don't check FILELIST.TXT upgrade. --halt, -a shutdown system when finished. If you are not the root, edit /etc/suauth (see suauth manual for details) --enable /--desable Enable/desable . Here is: log_status, lang_filter, git_filter, source_filter --set-kde Set kde default language download. --set-aspell Set aspell default language download. --gui-mode Set GUI mode output. --http-proxy --ftp-proxy
Bug conhecido
No momento o único bug conhecido é com respeito a opção “–burnning”. Ela necessita que o nome de uma iso seja passado. Isto se deve a uma limitação da lib que gerencia a passagem de parâmetros. Como ainda não tive uma definição sobre o procedimento a tomar, o deixei como esta.
5 Comentários