AUR의 "* -git date"패키지는 무엇입니까?


10

난 그냥 아치 리눅스로 이동하려고합니다. AUR에서 패키지를 확인하면 "프로젝트 이름-날짜 날짜"라는 이름 지정 체계를 따르는 패키지가 많이 있습니다.

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
날짜는 패키지 이름의 일부가 아니며 버전 번호입니다 (날짜가 사용되는 이유는 답변에 설명되어 있음).
Wieland

답변:


9

간단히 말해서 패키지를 빌드하면 git repo의 최신 버전이됩니다. 이에 의해 자동으로 처리됩니다 makepkg.

패키지 PKGBUILD파일을 읽음으로써 -git(예 : adonthell-git 등 ) 다음을 볼 수 있습니다 :

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

따라서 실행될 때마다 makepkggit 저장소에서 최신 버전을 다운로드합니다.

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등 ...]

(의 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.:

따라서 패키지를 빌드 한 날짜가 버전 번호 인 패키지가됩니다.


감사. pacman -Syu새 버전 이 있다는 것을 자동으로 감지하여 다시 컴파일하지 않습니까?
안나

정확하게, 당신은 당신 자신의 새 버전을 확인해야합니다. 그러나 패키지를 다시 빌드하여 업그레이드 할 수 있습니다.
Renan

2

Git 날짜를 사용하는 것은 다른 형태의 버전 번호를 사용하는 것과 마찬가지로 유효합니다.

최신 버전의 패키지 / 프로그램을 얻는 방법에 관해서는 git에서 다운로드하고 패키지의 "가장 최근"버전을 얻는 가장 좋은 방법이라면 컴파일하십시오.

다른 한편으로, 최소한 약간의 테스트를 거쳐 약간 안정적인 것으로 이미 컴파일 된 버전을 원한다면 저장소에서 패키지를 권장합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.