Slackware é uma das distros mais clássicas e queridas do mundo Linux, embora não seja uma das mais fáceis. No entanto, é sempre uma boa recomendação para quem deseja aprender mais a fundo sobre o Linux. O Slack ocupa a 23ª posição no ranking de acessos do DistroWatch.com.
No site oficial a versão estável é a 14.2. Para baixar a imagem basta clicar no link <<Get Slack>> à esquerda da página principal. Você pode baixar através de torrent ou de um dos muitos mirrors. Nos mirros clique em <<Slackware ISO Images>> na esquerda.
O problema é que a versão 14.2 é de 2016! Nós queremos baixar a versão de desenvolvimento, atualizada diariamente. Essa versão é chamada de Sackware current. E ela é meio escondida no site, bem difícil achar.
Então eu vou lhes dar um link de um mirror oficial no Brasil! Siga os passos abaixo.
1. Baixando
Este é o mirror mais rápido do Slackware no Brasil: https://linorg.usp.br/slackware/. Aí você seleciona a pasta da versão que você deseja. Tem pra 32 bits (slackware-current) e 64 bits (slackware64-current), entre outras versões mais antigas.
Se você clicar nele vai acabar se perguntando: como eu baixo tudo isso? Cadê a ISO??? A verdade é que não tem ISO, porque é uma versão de desenvolvimento, então você mesmo tem que criar a ISO. Parece trabalhoso, mas não é, o Linux permite automatizar todo esse processo.
No meu exemplo nós vamos criar um shell script para baixar o conteúdo da pasta da versão 64 bits e mantê-lo sempre atualizado.
Primeiro criamos uma pasta Slackware onde quisermos. Vou criar na minha HOME e depois vou entrar dentro dela:
$ mkdir ~/Slackware
$ cd ~/Slackware
OBS.: o "~" é atalho para a pasta home do seu usuário.
Agora vamos criar um arquivo de shell script, vamos chamar o arquivo de download-rsync. Não precisa colocar a extensão ".sh" no final. Pode deixar sem extensão mesmo.
$ echo '#!/bin/bash' > download-rsync
OBS.: aqui tem que usar as aspas simples, se usar as duplas não funciona.
É claro que dá pra fazer tudo isso no seu gerenciador de arquivos preferido. Basta criar a pasta, o arquivo e colocar a shebang #!/bin/bash
(sem aspas) na primeira linha.
Agora altere as permissões do arquivo para poder ser executado como um programa:
$ chmod +x download-rsync
Nós vamos usar o programa rsync para baixar tudo desse mirror, mas não apenas isso. O rsync tem a vantagem de comparar a pasta do seu computador com a do mirror, baixando os pacotes novos e modificados, e apagando o que foi deletado. Ou seja, ele registra as diferenças. E mantém sua pasta local atualizada em relação ao repositório oficial.
Adicione a linha:
$ echo 'rsync -aP --delete-before rsync://linorg.usp.br/slackware/slackware64-current .' >> download-rsync
Esse comando adiciona o comando rsync e seus argumentos ('o conteúdo entre as aspas simples') ao final do arquivo download-rsync. Repare no ">>", da primeira vez usamos apenas ">". Se usassemos ">" novamente em vez de ">>", todo o conteúdo do arquivo seria apagado e teríamos apenas essa nova linha. Não queremos apagar a linha #!/bin/bash
criada anteriormente!
Argumentos rsync:
- -a = arquive mode, equivalente a digitar "-rlptgoD", isto é, ele copia diretórios recursivamente (subdiretórios), copia links, mantém as permissões dos arquivos, as datas e horas de criação e modificação, os grupos, o proprietário e arquivos de dispositivos.
- -P = --partial e --progress, isto é, mantém arquivos transferidos parcialmente e mostra o progresso do download. Bom caso haja interrupção, e podemos acompanhar o download.
- --delete-before é o argumento que permite ao rsync deletar da sua pasta local os arquivos que tenham sido deletados do repositório no mirror.
O link do mirror é óbvio, mas repare no PONTO "." colocado logo após o link (demos um espaço antes do ponto). O ponto indica ao comando que o conteúdo daquele mirror tem que ser baixado para a pasta onde está sendo executado o nosso script, que no caso é ~/Slackware
. Porque é lá que vamos deixar ele.
Agora vamos adicionar só uma linha de aviso, pra sabermos que terminou de baixar os arquivos:
$ echo 'echo -e "\nEncerrado. Pressione qualquer tecla para sair..."' >> download-rsync
Só que temos que fazer uma "pausa" ou o terminal será encerrado rápido demais e nem conseguiremos ler e analisar o que foi baixado!
$ echo 'read' >> download-rsync
O read
serve para armazenar respostas dadas pelo usuário a perguntas feitas num script. Para isso precisamos de uma variável. Por exemplo, para a pergunta: "Qual sua cor favorita?", poderíamos armazenar a resposta na variável cor: read cor
. O script faz uma pausa, espera o usuário responder a pergunta, e quando ele der ENTER, a resposta fica salva na variável "cor". Só que no nosso exemplo não precisamos disso, o read
só está lá pra fazer aquela pausa. Quando dermos ENTER o script fecha.
Seu script vai ficar assim:
#!/bin/bash
rsync -aP --delete-before rsync://linorg.usp.br/slackware/slackware64-current .
echo -e "\nEncerrado. Pressione qualquer tecla para sair..."
read
O que vai acontecer quando você executar esse script é que ele vai criar a pasta slackware64-current
dentro da pasta ~/Slackware
, e baixar tudo pra lá. Estamos falando de mais de 12 GiB. A vantagem de usar o rsync é que da segunda vez que você executar o script, ele vai deletar tudo que foi deletado do mirror, baixar os novos arquivos que foram inseridos, e baixar os arquivos modificados! Ou seja, o que será baixado da segunda vez será MUITO MENOR. Só o que mudou mesmo.
No screenshot acima, todos os meus arquivos já estão atualizados, por isso nada é baixado.
2. Criando a ISO
Vamos criar um outro script para automatizar a criação da ISO, mas primeiro vamos instalar os pacotes necessários para isso. Pressupondo que você está usando o Debian:
$ sudo apt install xorriso live-build syslinux squashfs-tools isolinux
Criando o arquivo de script "makeiso" e alterando permissões:
$ echo '#!/bin/bash' > makeiso
$ chmod +x makeiso
O seu arquivo vai ter que se parecer com isso aqui, copie e cole:
#!/bin/bash
# DEBIAN dependencies:
# sudo aptitude install xorriso live-build syslinux squashfs-tools isolinux
clear
cd ./slackware64-current
DATE="$(find . -type f -printf '%TY-%Tm-%Td\n' 2>/dev/null | sort | tail -n 1)"
OUTDIR="/home/daniel/Sistemas/Slackware"
ISO="slackware64-current-install-dvd-$DATE.iso"
xorrisofs \
-iso-level 3 \
-full-iso9660-filenames \
-R -J -A "Slackware Install" \
-hide-rr-moved \
-v -d -N \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-eltorito-alt-boot \
-e isolinux/efiboot.img \
-no-emul-boot -isohybrid-gpt-basdat \
-m 'source' \
-volid "SLACKWARE" \
-output $OUTDIR/$ISO \
.
chmod 777 $OUTDIR/$ISO
echo -e "\nEncerrado. Pressione qualquer tecla para sair..."
read
Esse script é um pouco mais complicado de explicar:
- function find_last : esta função pega a data de modificação de todos os arquivos e ordena essa lista pela data mais recente.
- variável DATE : executa a função anterior, e pega a primeira data, a data de modificação mais recente.
- variável OUTDIR : diz onde a imagem ISO deve ser salva depois de criada.
- variável ISO : diz o nome da ISO a ser criada, repare que ela insere a data de modificação armazenada na variável DATE, que é chamada com $DATE.
- cd ./slackware64-current : o script entre na pasta onde está salvo os arquivos do Slack. Porque é lá que as variáveis serão executadas.
- xorriso : é esse programa e seus inúmeros argumentos que vão compilar a ISO. Eu copiei esse código dos arquivos de instrução do próprio Slack. Está lá nem
/slackware64-current/isolinux/README.TXT
. Não vou explicar os detalhes, até mesmo porque eu não os entendo, eu apenas copiei e adaptei. - chmod 777 : só altera as permissões da imagem ISO criada para leitura, escrita e execução, para todos os usuários e grupos.
- O encerramento você já conhece.
Nenhum comentário:
Postar um comentário