Che succede con i pacchetti "* -git date" nell'AUR?


10

Sto per passare ad Arch Linux. Controllando i pacchetti nell'AUR, ci sono molti pacchetti che seguono lo schema di denominazione "project-name-git date", ad esempio:

adonthell-git 20100408-1
akonadi-facebook-git 20111117-1
wesnoth-svn 40587-1
vimprobable-git 20110829-1
vimprobable2-git 20111214-1

Cosa sono questi pacchetti? Sono solo istantanee dal repository adonthell / wesnoth / etc il momento specificato? In tal caso, il pacchetto non può essere aggiornato senza cambiare il suo nome, il che deve complicare molto la gestione dei pacchetti.

Se vorrei l'ultima versione di, diciamo, vimprobable dal repository git, dovrei usare AUR o compilarlo da solo?


1
La data non fa parte del nome del pacchetto, è il numero di versione (perché la data viene utilizzata è descritta nelle risposte).
Wieland,

Risposte:


9

In breve : basta compilare il pacchetto e sarà l'ultima versione del repository git; questo viene gestito automaticamente da makepkg.

Dalla lettura dei PKGBUILDfile dei -gitpacchetti (ad es. Per adonthell-git ), puoi vedere:

cd $_gitname && git pull origin
msg "The local files are updated."

Pertanto, ogni volta che makepkgviene eseguito, scarica l'ultima versione dal repository git.

Il pkgverparametro è perché makepkgrichiede un numero di versione nel PKGBUILDe nel pacchetto finale; una data è ciò che ha più senso qui.

Se viene rilevato che è un pacchetto da git, makepkggestisce il caso speciale di conseguenza:

(righe 1687-1771 di makepkg, funzione devel_check)

elif [[ -n ${_gitroot} && -n ${_gitname} ]] ; then
    if ! type -p git >/dev/null; then
            warning "$(gettext "Cannot find the %s binary required to determine latest %s revision.")" "git" "git"
            return 0
        fi
        msg "$(gettext "Determining latest %s revision...")" 'git'
        newpkgver=$(date +%Y%m%d)

[sacco snipped di altri casi per darcs, hg, svnecc ...]

(righe 1773-1792 di makepkg, funzione devel_update)

# This is lame, but if we're wanting to use an updated pkgver for
# retrieving svn/cvs/etc sources, we'll update the PKGBUILD with
# the new pkgver and then re-source it. This is the most robust
# method for dealing with PKGBUILDs that use, e.g.:

quindi finisci con un pacchetto con il suo numero di versione che è la data in cui lo hai creato.


Grazie. Questo significa che pacman -Syunon rileverà automaticamente la presenza di una nuova versione e la compilerà di nuovo?
Anna,

Esattamente, dovrai verificare la nuova versione da solo. Ma puoi aggiornarlo semplicemente ricostruendo il pacchetto.
Renan,

2

L'uso di una data Git è valido quanto qualsiasi altra forma di numerazione delle versioni.

Quanto a come ottenere la versione più recente di un pacchetto / programma, scaricando da git e compilando te stesso se probabilmente il modo migliore per ottenere la versione "più recente" di un pacchetto.

D'altra parte, se si desidera una versione già compilata che è stata testata almeno marginalmente e trovata moderatamente stabile, raccomanderei il pacchetto dal repository.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.