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