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

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

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

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, следует ли мне использовать AUR или скомпилировать ее самостоятельно?

решение1

Суммируя: Просто соберите пакет, и это будет последняя версия из репозитория 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.:

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

решение2

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

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

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

Связанный контент