Was ist los mit "* -git date" -Paketen in der AUR?

10

Ich bin gerade dabei, auf Arch Linux umzusteigen. Beim Auschecken von Paketen in der AUR gibt es viele Pakete, die dem Namensschema "Projektname-Git-Datum" folgen, z.

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

Was sind diese Pakete? Handelt es sich nur um Schnappschüsse aus dem adonthell / wesnoth / etc-Repository zum angegebenen Zeitpunkt? In diesem Fall konnte das Paket nicht aktualisiert werden, ohne seinen Namen zu ändern, was die Paketverwaltung erheblich erschweren muss.

Wenn ich die neueste Version von beispielsweise vimprobable aus dem Git-Repo haben möchte, sollte ich AUR verwenden oder selbst kompilieren?

Anna
quelle
1
Das Datum ist nicht Teil des Paketnamens, sondern die Versionsnummer (warum das Datum verwendet wird, wird in den Antworten beschrieben).
Wieland

Antworten:

9

Kurz gesagt : Erstellen Sie einfach das Paket und es wird die neueste Version aus dem Git Repo sein. Dies wird automatisch von erledigt makepkg.

Wenn Sie die PKGBUILDDateien von -gitPaketen lesen (z. B. für adonthell-git ), können Sie Folgendes sehen:

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

Daher wird bei jeder makepkgAusführung die neueste Version aus dem Git-Repository heruntergeladen.

Der pkgverParameter ist, weil makepkgeine Versionsnummer im PKGBUILDund im endgültigen Paket erforderlich ist . Ein Datum ist hier am sinnvollsten.

Wenn festgestellt wird, dass es sich um ein Paket von git handelt, wird makepkgder Sonderfall entsprechend behandelt:

(Zeilen 1687-1771 von makepkg, Funktion 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)

[snipped viele andere Fälle darcs, hg, svnetc ...]

(Zeilen 1773-1792 von makepkg, Funktion 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.:

Daher erhalten Sie ein Paket, dessen Versionsnummer das Datum ist, an dem Sie es erstellt haben.

Renan
quelle
Vielen Dank. Bedeutet dies, dass pacman -Syunicht automatisch erkannt wird, dass es eine neue Version gibt, und diese erneut kompiliert wird?
Anna
Genau, Sie müssen selbst nach der neuen Version suchen. Sie können es jedoch aktualisieren, indem Sie das Paket neu erstellen.
Renan
2

Die Verwendung eines Git-Datums ist genauso gültig wie jede andere Form der Versionsnummerierung.

Wie Sie die neueste Version eines Pakets / Programms erhalten, von git herunterladen und sich selbst kompilieren, wenn dies wahrscheinlich der beste Weg ist, um die "neueste" Version eines Pakets zu erhalten.

Wenn Sie dagegen eine bereits kompilierte Version wünschen, die zumindest geringfügig getestet und als mäßig stabil befunden wurde, würde ich das Paket aus dem Repository empfehlen.

Mörder
quelle