AUR의 "*-git date" 패키지는 어떻게 되나요?

AUR의 "*-git date" 패키지는 어떻게 되나요?

이제 막 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 저장소의 스냅샷인가요? 그렇다면 이름을 변경하지 않고는 패키지를 업데이트할 수 없으므로 패키지 관리가 많이 복잡해집니다.

예를 들어 git repo에서 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그에 따라 특별한 경우를 처리합니다.

makepkg( , 함수 의 1687-1771행 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...]

makepkg( , 함수 의 1773-1792행 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에서 다운로드하고 스스로 컴파일하는 것이 아마도 패키지의 "최신" 버전을 얻는 가장 좋은 방법일 것입니다.

반면에 최소한 약간의 테스트를 거쳤고 어느 정도 안정적인 것으로 확인된 이미 컴파일된 버전을 원한다면 저장소의 패키지를 권장합니다.

관련 정보