segunda-feira, 8 de novembro de 2010

[Script] Adicionando repositório ao Fedora

Hoje eu vou mostrar para vocês como é fácil, rápido e prático criar um script gráfico no Fedora utilizando o Zenity. Todos sabem que o Fedora tem uma certa dificuldade na questão de adicionar os repositórios ao Fedora. Além da baixa quantidade deles, afinal você só encontra o essencial como o RPMFusion e alguns repositórios de programas mais famosos como o Chromium e o Firefox4, o RPMFusion é obrigado a trabalhar sua instalação como arquivo RPM para suprir a ausência de ferramentas para adicionar repositórios.

O problema principal é que se o repositório desejado não estiver empacotado em formato RPM, é necessário recorrer ao terminal, para enviar o arquivo *.repo para a pasta correta, já que é necessário o acesso root para escrever na tal pasta. Vou mostrar para vocês como criar um script que execute de forma gráfica essa tarefa. Você vai precisar:

  • Gedit - necessário para escrever o script;

  • Wget -  para fazer o download do arquivo do repositório;

  • Beesu - para fornecer graficamente a senha de administração (o fedora não acompanha o Gksu ou gnomesu);

  • Zenity - Para criar a interface do nosso miniscript.


Abra o Gedit e adicione a linha inicial de qualquer shell script, a linha "#!/bin/bash". Sem essa linha, seu script simplesmente não irá funcionar. Há algum tempo atrás, era bem comum se encontrar também a linha "#!/bin/sh", que tem praticamente a mesma função. Mas a maioria dos desenvolvedores hoje em dia utiliza o bash para a função.

Vamos criar a função do Zenity agora. Iremos utilizar a função de entrada de texto do Zenity. Você deve colocar o seguinte comando:
zenity --entry --text="Adicione o link para o arquivo do repositório:"

Onde:

  • "zenity" é a nossa interface gráfica para scripts;

  • "--entry" é a função que chama a interface para entrada de texto;

  • "--text" é o comando que exibe um texto sobre a caixa de entrada.


Na função acima, você ainda poderia adicionar o comando "--entry-text="Um texto aqui" para exibir uma mensagem qualquer dentro da caixa de entrada do texto.

Agora nós iremos utilizar as variáveis do Shell Script para armazenar o endereço que for digitado (ou colado) na caixa de entrada de texto. As variáveis funcionam da seguinte maneira:
coisa = outracoisa
echo $coisa

O problema aqui no nosso caso seria que o comando do Zenity tem espaços, então a variável acaba não funcionando. Bom, a solução é essa:
repo=$(zenity --entry --text="Adicione o link para o arquivo do repositório:")

Bom, o nosso script está praticamente encaminhado. Falta "apenas" o principal: a adição do repositório em si. Os comandos são esses:
cd /etc/yum.repos.d/
beesu wget $repo

Onde:

  • "cd" muda o diretório de trabalho atual para o indicado;

  • "/etc/yum.repos.d/" é o diretório onde ficam os repositórios do Yum;

  • "beesu" é o programa utilizado para fornecer gráficamente permissão de root ao comando, digitando a senha;

  • "wget" é o programa para baixar arquivos e páginas;

  • "$repo" é a variável recebida através da interface do Zenity.


Depois disso, basta apenas salvar o arquivo com a extensão *.sh. Nomeei o meu como repo-add.sh e ficou assim:
#!/bin/bash

repos=$(zenity --entry --text="Adicione o endereço do arquivo do repositório")
cd /etc/yum.repos.d/
beesu wget -c $repo

Marque como executável (botão direito sobre o arquivo, propriedades e depois permissões). O resultado final é esse:



Download do script feito nesse post: http://bitw.in/d1u

Nenhum comentário:

Postar um comentário