Arquivo da categoria ‘Dicas’
Convertendo arquivos com codificações diferentes
Utilizei durante um bom tempo a codificação ISO-8859-1 para editar e construir meus arquivos. Porém após a mudança para UTF-8 tive vários problemas com a codificação dos arquivos, daí que encontrei o iconv e este salvou minha vida.
Outro fato interessante também é receber arquivos com codificações diferentes de outras pessoas e ficar com aquele problema chato na acentuação dos arquivos.
O iconv serve para mudar de uma codificação para outra e possui uma sintaxe muito simples e fácil.
Para converter um arquivo de ISO-8859-1 para UTF-8 basta apenas fazer o seguinte.
# iconv --from-code=ISO-8859-1 --to-code=UTF-8 < oldISOfile > newUTF8file
Você também utilizar o inverso da situação acima:
# iconv --from-code=UTF-8 --to-code=ISO-8859-1 < oldUTF8file > newISOfile
E não limite-se somente à isto, você também pode trabalhar com outros padrões de codificação e obter o resultado que quiser. Aqui você pode saber mais sobre tipos de codificação.
Download de pacotes .deb com todas suas dependências
Apesar do mundo estar cada vez mais conectado à Internet, às vezes enfrentamos alguns problemas que nos impossibilitam de ter o acesso à rede. Um exemplo interessante seria a mudança de casa e o pedido de transferência de um serviço ADSL para um novo endereço, por exemplo.
Vivendo este problema necessitava instalar o pacote gphpedit no computador em casa. Porém não encontrava nenhuma maneira fácil de fazê-lo devido à quantidade de depedências que eu precisava copiar através da rede de um amigo e levá-las em um dispositivo móvel de armazenamento qualquer: um pendrive, cd ou algo do tipo.
Poderia até utilizar o Synaptic para procurar o devido pacote e gerar através dele um script para fazer o download das dependências, mas o objetivo era fazer diretamente pelo console.
Cheguei até a improvisar um shell script para fazer isso, mas a solução era limitada, pois o script pegava somente as dependências do gphpedit. Se alguma biblioteca necessária para a instalação do gphpedit precisasse também de uma outra biblioteca ou pacote, o script não a pegava.
Foi daí que recebi uma dica do Theo para usar o apt-rdepends e conseguir listar recursivamente todas as dependências. O único problema é que ele não tem a capacidade de fazer o download destes pacotes diretamente. E novamente tive que montar um script para fazer isso.
Uma nota é que o apt-cache também proporciona a listagem de dependências do pacote, mas não de maneira recursiva.
Caso queira ver as dependências pelo apt-cache apenas rode:
# apt-cache depends nomedopacote
Não conhecia o apt-rdepends pois não vem instalado por padrão no Debian/Ubuntu. Para instalá-lo rode:
# aptitude install apt-rdepends
Bom, depois ainda resta um trabalhinho sujo para criar o script, mas é bem fácil. Antes de começar crie um diretório para que na inicialização dos downloads os pacotes não fiquem espalhados.
# mkdir gphpedit
# cd gphpedit
Para criar o script faça:
# apt-rdpends gphpedit > depends.sh
# chmod u+x depends.sh
# vi depends.sh
Na primeira linha do arquivo adicione o interpretador: #!/bin/bash
Substitua o nome dos pacotes que possuem dependências com o seguinte comando no vi:
ESC + :%s/^[a-z]/#\1/g
Note que agora todos os pacotes ficaram com um comentário na frente. O próximo passo é alterar o valor dos termos “Pré-Depende:” ou “Pre-Depends:” para “aptitude download”. Novamente no vi faça:
ESC + :%s/Pré-Depende:/aptitude download/g
(Se seu sistema estiver na língua inglesa utilize “Pre-Depends”:).
Agora altere somente os termos “Depende:” da mesma maneira:
ESC + :%s/Depende:/aptitude download/g
(Se seu sistema estiver na língua inglesa utilize Depends:).
Ficou faltando apenas um detalhe. Apagar as informações sobre versões delimitadas entre parênteses. Nada que uma pequena expressão regular não ajude:
ESC + %s/\((.\+\)//g
Bom, agora é só executar seu script e esperar pelo download.
# ./depends.sh
Deixe um comentário
Comentários (3)