
Enviado em 03/03/2013 - 19:06h
Olá. Traduzí para Português este Script de desmascarar Pacotes Gentoo:
#!/bin/bash
#
# SCRIPT PARA DESMASCARAR PACOTES DE PORTAGE A SEREM INSTALADOS EM SABAYON OU GENTOO.
#
# Código de Autoria de: Alex, DeathSquad 3000, Suécia, 2008.
# https://ds3k.wordpress.com/
# Publicado diretamente em Domínio Público,
# portanto livre para uso e modificações.
# Tradução para Português do Brasil e modificação por
# Alberto Federman Neto, albfneto <albfneto@fcfrp.usp,br>, Brasil, 2013.
# http://va.mu/AP1
#
# Este Script desmascara pacotes e suas dependências.
# Ele não funcionará com pacotes hardmasked ou com EAPI ou SLOT diferentes,
# Somente funcionará em Portage versão 2.2_rc12 ou mais recente.
# e somente para as máscaras padrão por Palavra-Chave,
# como as dos pacotes estáveis ou instáveis,
# Ex. x86 ou ~amd64.
# Antes de usar este Script, lembre-se de sincronizar e atualizar
# o Portage e instalar as dependências necessárias:
# $ sudo emerge --sync
# $ sudo emerge av --oneshot portage PortageXS
# Código:
#
# Esta função checa se um pacote é mascarado por palavra chave ou não:
#
check_if_keyworded() {
if [[ $(emerge --pretend --quiet $package_to_emerge | grep 'masked by:' | cut -d ' ' -f 5 | head -n 1) == "missing" ]]; then
return 1
else
return 0
fi
}
#
# Esta função o desmascara:
#
do_unmasking() {
echo 'Aguarde um momento, desmascarando o (os) pacote (os)...'
while ! emerge --pretend --quiet $package_to_emerge &> /dev/null; do
spin
package_to_unmask=$(emerge --pretend --quiet $package_to_emerge | grep 'masked by: ~' | cut -d ' ' -f 2 | head -n 1)
echo "=$package_to_unmask" >> $outputpath/$outputfile
done
endspin
echo "Desmascarado. Checar em $outputpath/$outputfile."
}
#
# Assegurar que está locado como Superusuário, somente o Root pode executar o Script
#
if [[ $EUID -ne 0 ]]; then
echo "Este Script só pode ser executado em modo Root" 1>&2
exit 1
fi
if [[ -z "$1" ]]; then
echo 'Vôce precisa colocar o pacote na forma de Argumento, Assim,'
echo 'sh desmasc.sh Argumento. Ex:'
echo './desmasc.sh =categoria/package-versão'
exit
fi
#
# Variáveis necessárias:
#
typeset package_to_emerge=$1
typeset package_to_unmask
typeset -i count=1
typeset outputfile
typeset outputpath=/etc/portage/package.keywords
#
#Spinner que roda durante o tempo do desmascaramento
# Thanks a http://wooledge.org pelo código
#
typeset sp="/-\|"
typeset -i sc=0
spin() {
printf "\b${sp:sc++:1}"
((sc==${#sp})) && sc=0
}
endspin() {
printf "\r%s\n" "$@"
}
#
# Criando e renomeando o pacote desmascarado
# (Nome do Pacote no diretório adequado '/' )
#
outputfile=${package_to_emerge#*/}
# Thanks http://anton.lr2.com :-), pelo código
#
# Se não existir Palavra-Chave em /etc/portage/package.keywords, cria-la.
# Se existir, somente migrar conteúdo.
#
if [[ ! -e "$outputpath" ]]; then
echo "Criando Diretórios e Arquivos..."
mkdir -p $outputpath
touch $outputpath/$outputfile
fi
if [[ -f "$outputpath" ]]; then
echo "$outputpath é um arquivo."
echo "Criando diretório $outputpath"
echo 'e movendo o conteúdo antigo para o arquivo old'
echo 'aguarde por uns instantes'
echo "$outputpath/keywords-old"
sleep 3s
mv $outputpath /etc/portage/keywords-old
mkdir -p $outputpath
touch $outputpath/$outputfile
mv /etc/portage/keywords-old $outputpath
fi
#
# Verificar se o pacote foi desmascarado e caso não tenha sido, abortar.
#
if ! check_if_keyworded; then
echo 'Pacote sem Palavra-Chave manipulável. Não Desmascarável, Desculpe'
exit
else
do_unmasking
fi
# Fim do Código
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









