Ich bin gerade dabei, auf Arch Linux umzusteigen. Beim Auschecken der Pakete im AUR gibt es viele Pakete, die dem Benennungsschema „Projektname-Git-Datum“ folgen, z. B.:
adonthell-git 20100408-1
akonadi-facebook-git 20111117-1
wesnoth-svn 40587-1
vimprobable-git 20110829-1
vimprobable2-git 20111214-1
Was sind das für Pakete? Sind das nur Snapshots aus dem adonthell/wesnoth/etc-Repository zum angegebenen Zeitpunkt? Wenn ja, kann das Paket nicht aktualisiert werden, ohne seinen Namen zu ändern, was die Paketverwaltung erheblich verkompliziert.
Wenn ich beispielsweise die neueste Version von vimprobable aus dem Git-Repo möchte, soll ich AUR verwenden oder es selbst kompilieren?
Antwort1
Zusamenfassend: Erstellen Sie einfach das Paket und es wird die neueste Version aus dem Git-Repository sein; dies wird automatisch von erledigt makepkg
.
Vom Lesen der PKGBUILD
Dateien von -git
Paketen (z. B. füradonthell-git), du kannst sehen:
cd $_gitname && git pull origin
msg "The local files are updated."
Daher wird bei jedem makepkg
Ausführen die neueste Version aus dem Git-Repository heruntergeladen.
Der pkgver
Parameter ist erforderlich, da makepkg
im und im endgültigen Paket eine Versionsnummer angegeben werden muss PKGBUILD
; ein Datum ist hier am sinnvollsten.
Wenn erkannt wird, dass es sich um ein Paket von Git handelt, makepkg
wird der 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)
[viele andere Fälle für darcs
, hg
, svn
usw. ausgeschnitten]
(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 am Ende ein Paket, dessen Versionsnummer dem Datum entspricht, an dem Sie es erstellt haben.
Antwort2
Die Verwendung eines Git-Datums ist genauso gültig wie die Verwendung jeder anderen Form der Versionsnummerierung.
Um die neueste Version eines Pakets/Programms zu erhalten, ist das Herunterladen von Git und selbständige Kompilieren wahrscheinlich die beste Möglichkeit, die „aktuellste“ Version eines Pakets zu erhalten.
Wenn Sie hingegen eine bereits kompilierte Version wünschen, die zumindest bedingt getestet und als einigermaßen stabil befunden wurde, dann würde ich das Paket aus dem Repository empfehlen.