Что случилось с пакетами «* -git date» в AUR?

10

Я как раз собираюсь перейти на Arch Linux. Проверяя пакеты в AUR, существует множество пакетов, следующих схеме именования «project-name-git date», например:

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

Что это за пакеты? Являются ли они просто снимками из репозитория adonthell / wesnoth / etc в указанный момент времени? Если это так, то пакет не может быть обновлен без изменения его имени, что значительно усложняет управление пакетами.

Если мне нужна последняя версия, скажем, vimprobable из git repo, я должен использовать AUR или скомпилировать ее сам?

Анна
источник
1
Дата не является частью имени пакета, это номер версии (почему дата указана в ответах).
Виланд

Ответы:

9

Вкратце : просто соберите пакет, и он будет последней версией из репозитория git; это автоматически обрабатывается makepkg.

Из чтения PKGBUILDфайлов -gitпакетов (например, для adonthell-git ) вы можете увидеть:

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

Таким образом, при каждом makepkgзапуске загружается последняя версия из репозитория git.

pkgverПараметр , потому что makepkgтребует номер версии в PKGBUILDи в конечном пакете; дата - это то, что имеет больше смысла здесь.

Если обнаружено, что это пакет из git, makepkgобрабатывает специальный случай соответственно:

(строки 1687-1771 из makepkg, функции 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)

[перерезал множество других дел darcs, hgи svnт. д ...]

(строки 1773-1792 из makepkg, функция 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.:

следовательно, вы получите пакет с номером версии, который является датой его создания.

Ренан
источник
Спасибо. Означает ли это, что pacman -Syuавтоматически не обнаружит новую версию и не скомпилирует ее снова?
Анна
Точно, вам нужно будет проверить новую версию самостоятельно. Но вы можете обновить его, просто перекомпилировав пакет.
Ренан
2

Использование даты Git так же верно, как и любая другая форма нумерации версий.

Что касается того, как получить новейшую версию пакета / программы, загрузку с git и компиляцию самостоятельно, если, возможно, лучший способ получить «самую последнюю» версию пакета.

С другой стороны, если вам нужна уже скомпилированная версия, которая была хотя бы незначительно протестирована и признана умеренно стабильной, то я бы порекомендовал пакет из репозитория.

killermist
источник