AUR の「*-git date」パッケージはどうなっているのでしょうか?

AUR の「*-git date」パッケージはどうなっているのでしょうか?

私は 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 リポジトリからのスナップショットにすぎないのでしょうか? もしそうなら、パッケージの名前を変更せずに更新することはできず、パッケージ管理が非常に複雑になります。

たとえば、git リポジトリから vimprobable の最新バージョンを入手したい場合、AUR を使用するか、自分でコンパイルするべきでしょうか?

答え1

要するに: パッケージをビルドするだけで、Git リポジトリの最新バージョンになります。これは によって自動的に処理されますmakepkg

PKGBUILDパッケージのファイルを読むことから-git(例えばadonthell-git) では、次のことがわかります。

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

したがって、実行されるたびにmakepkg、Git リポジトリから最新バージョンがダウンロードされます。

パラメータは、 と最終パッケージのバージョン番号を必要とするpkgverため、ここでは日付が最も適切です。makepkgPKGBUILD

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 からダウンロードして自分でコンパイルするのが、おそらくパッケージの「最新」バージョンを入手する最良の方法です。

一方、少なくともわずかにテストされ、適度に安定していることが確認された、既にコンパイルされたバージョンが必要な場合は、リポジトリからのパッケージをお勧めします。

関連情報