Ada apa dengan paket "* -git date" di AUR?


10

Saya baru saja akan pindah ke Arch Linux. Memeriksa paket di AUR, ada banyak paket mengikuti skema penamaan "tanggal proyek-nama-git", misalnya:

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

Paket apa ini? Apakah mereka hanya snapshot dari repositori adonthell / wesnoth / etc titik waktu yang ditentukan? Jika demikian, itu paket tidak dapat diperbarui tanpa mengubah namanya, yang harus menyulitkan manajemen paket.

Jika saya ingin versi terbaru dari, katakanlah, mungkin dari git repo, haruskah saya menggunakan AUR atau kompilasi sendiri?


1
Tanggal bukan bagian dari nama paket, itu nomor versi (mengapa tanggal digunakan dijelaskan dalam jawaban).
Wieland

Jawaban:


9

Singkatnya : Cukup buat paket dan ini akan menjadi versi terbaru dari git repo; ini secara otomatis ditangani oleh makepkg.

Dari membaca PKGBUILDfile -gitpaket (misalnya untuk adonthell-git ), Anda dapat melihat:

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

Jadi, setiap kali makepkgdijalankan, ia mengunduh versi terbaru dari repositori git.

The pkgverparameter karena makepkgmembutuhkan nomor versi di PKGBUILDdan dalam paket akhir; kencan adalah yang paling masuk akal di sini.

Jika terdeteksi bahwa itu adalah paket dari git, makepkgmenangani kasus khusus sesuai:

(baris 1687-1771 dari makepkg, berfungsi 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)

[dipotong banyak kasus lain untuk darcs, hg, svndll ...]

(baris 1773-1792 of makepkg, berfungsi 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.:

maka Anda berakhir dengan sebuah paket dengan nomor versinya menjadi tanggal ketika Anda membuatnya.


Terima kasih. Apakah ini berarti bahwa pacman -Syutidak akan secara otomatis mendeteksi bahwa ada versi baru dan mengkompilasinya lagi?
Anna

Tepat, Anda perlu memeriksa versi baru sendiri. Tetapi Anda dapat memutakhirkannya hanya dengan membangun kembali paket.
Renan

2

Menggunakan tanggal Git sama validnya dengan menggunakan bentuk penomoran versi lain apa pun.

Mengenai cara mendapatkan versi terbaru dari suatu paket / program, mengunduh dari git dan mengkompilasi sendiri jika mungkin cara terbaik untuk mendapatkan versi "terbaru" dari suatu paket.

Di sisi lain, jika Anda menginginkan versi yang sudah dikompilasi yang setidaknya telah diuji secara marginal dan ditemukan cukup stabil, maka saya akan merekomendasikan paket dari repositori.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.