Script Bash para instalar o pacote se já não estiver instalado (De um diretório com muitos pacotes) - Fedora 17

0

Eu tenho um diretório cheio de rpms (e suas dependências). Atualmente estou executando yum localinstall ./packages_directory/*.rpm para instalar todos os pacotes lá. Ignora automaticamente os que já estão instalados. No entanto, isso está demorando muito se todos os pacotes já estiverem instalados. Eu gostaria que fosse mais rápido para os pacotes instalados. Uma alternativa que pensei é verificar se cada um desses pacotes já está instalado (com algum outro comando, talvez). Se eles não estiverem instalados, eu executo um localinstall neles. Alguém pode me ajudar a escrever o roteiro para isso? Ou talvez uma alternativa mais rápida.

    
por LinuxLearner 02.06.2016 / 22:06

1 resposta

0

Eu criei um script para ele (Fedora 17). Supondo que o diretório atual onde o script está sendo executado também é o diretório de onde os rpms estão localizados:

install_packages(){
    echo "Installing/Checking Fedora packages. Process may take a while..."
    for i in *
    do
        if test -f "$i" #Test if it is a file
        then
           i=$(basename $i) #Remove parent directory part of the string
           PACKAGE_NAME=${i::-4} #Remove .rpm from the end of file name
           if rpm -q $PACKAGE_NAME | grep "not installed" > /dev/null #If package not yet installed
           then
            echo "Installing $i ..."
                yum localinstall ./fc17/"$i" -y > /dev/null #Install this package 
           fi
        fi
    done    
    echo "Packages checked/installed"


}

Para o fedora 22, basta substituir yum localinstall por dnf install

    
por 03.06.2016 / 18:33