Estou prestes a mudar para o Arch Linux. Verificando pacotes no AUR, há muitos pacotes seguindo o esquema de nomenclatura "nome do projeto-data git", por exemplo:
adonthell-git 20100408-1
akonadi-facebook-git 20111117-1
wesnoth-svn 40587-1
vimprobable-git 20110829-1
vimprobable2-git 20111214-1
O que são esses pacotes? Eles são apenas instantâneos do repositório adonthell/wesnoth/etc no momento especificado? Nesse caso, o pacote não poderia ser atualizado sem alterar seu nome, o que complicou muito o gerenciamento de pacotes.
Se eu quiser a versão mais recente, digamos, do vimprovável do repositório git, devo usar o AUR ou compilá-lo sozinho?
Responder1
Resumidamente: Basta compilar o pacote e ele será a versão mais recente do repositório Git; isso é tratado automaticamente por makepkg
.
Da leitura dos PKGBUILD
arquivos dos -git
pacotes (por exemplo, paraadonthell-git), você pode ver:
cd $_gitname && git pull origin
msg "The local files are updated."
Assim, toda vez que makepkg
é executado, ele baixa a versão mais recente do repositório Git.
O pkgver
parâmetro ocorre porque makepkg
requer um número de versão no PKGBUILD
pacote final; uma data é o que faz mais sentido aqui.
Se for detectado que é um pacote do Git, makepkg
trata o caso especial adequadamente:
(linhas 1687-1771 de makepkg
, função 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)
[cortou muitos outros casos para darcs
, hg
, svn
etc...]
(linhas 1773-1792 de makepkg
, função 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.:
portanto, você acaba com um pacote cujo número de versão é a data em que você o construiu.
Responder2
Usar uma data do Git é tão válido quanto usar qualquer outra forma de numeração de versão.
Quanto a como obter a versão mais recente de um pacote/programa, baixar do git e compilar você mesmo é provavelmente a melhor maneira de obter a versão "mais recente" de um pacote.
Por outro lado, se você quiser uma versão já compilada que tenha sido testada pelo menos marginalmente e considerada moderadamente estável, então eu recomendaria o pacote do repositório.