Có chuyện gì với các gói * trong ngày AUR trong AUR?


10

Tôi sắp chuyển sang Arch Linux. Kiểm tra các gói trong AUR, có rất nhiều gói theo sơ đồ đặt tên "ngày dự án tên git", ví dụ:

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

Những gói này là gì? Có phải chúng chỉ là ảnh chụp nhanh từ kho lưu trữ adonthell / wesnoth / etc thời điểm được chỉ định? Nếu vậy, gói không thể được cập nhật mà không thay đổi tên của nó, điều này đã làm phức tạp việc quản lý gói rất nhiều.

Nếu tôi muốn phiên bản mới nhất của vimprobable từ git repo, tôi nên sử dụng AUR hoặc tự biên dịch nó?


1
Ngày không phải là một phần của tên gói, đó là số phiên bản (tại sao ngày được sử dụng được mô tả trong câu trả lời).
Wieland

Câu trả lời:


9

Tóm lại : Chỉ cần xây dựng gói và nó sẽ là phiên bản mới nhất từ ​​git repo; Điều này được tự động xử lý bởi makepkg.

Từ việc đọc các PKGBUILDtập tin của -gitcác gói (ví dụ: adonthell-git ), bạn có thể thấy:

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

Vì vậy, mỗi khi makepkgđược chạy, nó tải xuống phiên bản mới nhất từ ​​kho git.

Các pkgvertham số là vì makepkgđòi hỏi một số phiên bản trong PKGBUILDvà trong gói cuối cùng; một ngày là những gì có ý nghĩa nhất ở đây.

Nếu phát hiện ra đó là gói từ git, hãy makepkgxử lý trường hợp đặc biệt tương ứng:

(dòng 1687-1771 của makepkg, chức năng 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)

[nhiều snipped các trường hợp khác cho darcs, hg, svnvv ...]

(dòng 1773-1792 của makepkg, chức năng 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.:

do đó, bạn kết thúc với một gói với số phiên bản của nó là ngày bạn xây dựng nó.


Cảm ơn. Điều này có nghĩa là pacman -Syusẽ không tự động phát hiện ra rằng có phiên bản mới và biên dịch lại không?
Anna

Chính xác, bạn sẽ cần phải tự mình kiểm tra phiên bản mới. Nhưng bạn có thể nâng cấp nó chỉ bằng cách xây dựng lại gói.
Renan

2

Sử dụng ngày Git cũng hợp lệ như sử dụng bất kỳ hình thức đánh số phiên bản nào khác.

Về cách tải phiên bản mới nhất của gói / chương trình, tải xuống từ git và tự biên dịch nếu có lẽ là cách tốt nhất để có phiên bản "gần đây nhất" của gói.

Mặt khác, nếu bạn muốn một phiên bản đã được biên dịch ít nhất đã được kiểm tra biên độ và thấy ổn định ở mức độ vừa phải, thì tôi sẽ đề xuất gói từ kho lưu trữ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.