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