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 저장소에 최신 버전의 vimprobable을 원하는 경우 AUR을 사용해야 합니까, 아니면 직접 컴파일해야 합니까?
답변1
요컨대: 패키지를 빌드하면 Git 저장소의 최신 버전이 됩니다. 이는 에서 자동으로 처리됩니다 makepkg
.
패키지 PKGBUILD
의 파일을 다음에서 읽습니다 -git
(예:아돈텔 자식),너는 볼 수있어:
cd $_gitname && git pull origin
msg "The local files are updated."
따라서 makepkg
실행될 때마다 Git 저장소에서 최신 버전을 다운로드합니다.
이 pkgver
매개변수는 최종 패키지에 버전 번호가 필요하기 때문에 필요합니다. makepkg
여기서는 PKGBUILD
날짜가 가장 적합합니다.
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에서 다운로드하여 직접 컴파일하는 것이 아마도 "최신" 버전의 패키지를 얻는 가장 좋은 방법일 것입니다.
반면에 적어도 어느 정도 테스트를 거쳐 어느 정도 안정성이 있는 것으로 확인된 컴파일된 버전을 원한다면 저장소의 패키지를 권장합니다.