AurInstall + AurUpdate senza aur helper.

Sei qui: Home » Linux

2–3 minuti

Uso pochi pacchetti aur nel mio sistema (ricordate che i file aur son fatti dagli utenti, non verificati, potrebbero far casini) e cosi ho pensato di fare a meno dei classici aur helper (stavo usando yay fino a poco fa) e di lavorare manualmente.

Per manualmente si intende:

git clone https://***.git
cd directory_name
makepkg -si

Niente di eccezionale, ovviamente, ma per comodità ho pensato di velocizzare il tutto con questo codice che ho inserito nel mio .bashrc

Ed ecco cosa ho creato

# Lista i file AUR
aurlist() { (echo -e "~\nQuesti i pacchetti aur Installati:\n~"; pacman -Qm; echo "~") }

# Installa pacchetto AUR
aurinstall() {
    cd "$HOME" && mkdir -p "$HOME/AurBuild/"
    (
        cd "$HOME/AurBuild/"
        # Controlla se l'utente ha passato un argomento
        if [ $# -eq 0 ]; then
            echo -e "~\nErrore: specificare l'URL del pacchetto AUR da installare.\n~"
        else
            # Verifica se la directory di destinazione esiste già
            package_dir="$(basename "$1" .git)"
            if [ -d "$package_dir" ]; then
                echo -e "~\nErrore: La directory '$package_dir' esiste già e non è vuota.\n~\nUsare 'aurupdate $package_dir'\n~"
            else
                # Clona il repository AUR e installa il pacchetto
                git clone "$1" && cd "$package_dir"
                if [[ -f PKGBUILD ]]; then
                    (echo -e "~\nLeggi il PKGBUILD prima di continuare!!!\n~"; cat PKGBUILD; echo -e "~\nSe hai letto il PKGBUILD e vuoi procedere, premi 'q'\n~") | less
                    makepkg -si
                else
                    echo -e "~\nErrore: Il repository AUR clonato non contiene un file PKGBUILD.\n~"
                fi
            fi
        fi
    )
}

# Aggiornare gli AUR
aurupdate() {
    cd "$HOME" && mkdir -p "$HOME/AurBuild/"
    (
        cd "$HOME/AurBuild/"
        # Se non ci sono argomenti, aggiorna tutti i pacchetti
        if [ $# -eq 0 ]; then
            echo "Aggiorno tutti i pacchetti AUR presenti!"
            for package_dir in */; do
                echo "Aggiornamento del pacchetto: $package_dir"
                cd "$package_dir" || continue
                git pull
                (echo -e "~\nLeggi il PKGBUILD prima di continuare!!!\n~"; cat PKGBUILD; echo -e "~\nSe hai letto il PKGBUILD e vuoi procedere, premi 'q'\n~") | less
                makepkg -si
                cd ..
            done
        else
            # Altrimenti, aggiorna solo i pacchetti specificati
            for package_name in "$@"; do
                if [ -d "$package_name" ]; then
                    echo "Aggiornamento del pacchetto: $package_name"
                    cd "$package_name" || continue
                    git pull
                    (echo -e "~\nLeggiaur_dir il PKGBUILD prima di continuare!!!\n~"; cat PKGBUILD; echo -e "~\nSe hai letto il PKGBUILD e vuoi procedere, premi 'q'\n~") | less
                    makepkg -si
                    cd ..
                else
                    echo -e "~\nIl pacchetto $package_name non esiste in '$HOME/AurBuild/'\n~"
                fi
            done
        fi
    )
}

Dopo averlo aggiunto al mio .bashrc, per visualizzare i pacchetti AUR presenti mi basterà:

aurlist

Per installare un pacchetto aur, invece:

aurinstall https://***.git

E per aggiornarli tutti un semplicissimo:

aurupdate

Oppure:

aurupdate nomepacchetto

Direi che più facile di così è difficile ma… A differenza di yay, paru e company, qui eventuali dipendenze dovranno essere gestite manualmente (così impariamo finalmente a guardare dentro il file PKGBUILD e capire cosa fa il pacchetto che stiamo installando)! 😁

Il codice intero l’ho aggiornato nel gist pubblicato qui: Arch Linux: .bashrc


Iscriviti ai Feed dei commentirss small icon



Aggiungi un commento 💬

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *



go to top (svg)