Instalar paquetes AUR en Archlinux
Neste post explicarei cómo instalar un paquete AUR (Arch User Repository ).
Estos paquetes son “extraoficiáis” polo que non están garantidos pola propia comunidade, mais a súa utilidade é a de cubrir necesidades que os paquetes oficiáis non cobren.
Preciso instalar make na su aversión 3.81 por temas de compatibilidade na compilación do Firefox OS, xa que Android usa esta versión de make, e en Archlinux actualmente ( Novembro do 2015 ) usan a versión 4.XX.
Atopalo paquete
O primeiro é procurar no repo o paquete que queremos, no meu caso sería:
https://aur.archlinux.org/packages/make-3.81/
Descargalo paquete
Na parte dereita verémolo menú:
Coas entradas:
Package Actions
View PKGBUILD / View Changes
Download snapshot
Search wiki
Flag package out-of-date
Vote for this package
Notify of new comments
File Request
Copiámola url da opción “Download snapshot”: https://aur.archlinux.org/cgit/aur.git/snapshot/make-3.81.tar.gz
Creámolo directorio para traballar co paquete que descargaremos con curl:
mkdir -v AUR_BUILD
cd AUR_BUILD
curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/make-3.81.tar.gz
Unha vez descargado o descomprimimos e accedemos ao directorio que nos crea o paquete:
tar -xvf make-3.81.tar.gz
cd make-3.81
É convinte revisar o código do “PKGBUILD” para evitar que fagan cambios indesexados no noso sistema:
less PKGBUILD
Debería amosarnos algo parecido a isto:
# $Id$
# Maintainer: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=make-3.81
pkgver=3.81
pkgrel=1
pkgdesc="GNU make utility to maintain groups of programs (3.81 version)"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/make"
license=('GPL')
depends=('glibc' 'sh')
install=$pkgname.install
source=(ftp://ftp.gnu.org/gnu/make/${pkgname}.tar.gz)
md5sums=('a4e9494ac6dc3f6b0c5ff75c5d52abba')
build() {
cd ${srcdir}/${pkgname}
./configure --prefix=/usr --program-suffix=-$pkgver
make
}
package() {
cd ${srcdir}/${pkgname}
make DESTDIR=${pkgdir} install-exec
}
Se ves todo ben, revisa o ficheiro “<nome_paquete>.install”
less make-3.81.install
less nos debería amosar unha saída coma esta:
infodir=/usr/share/info
filelist=(make.info make.info-1 make.info-2)
post_install() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
post_upgrade() {
post_install $1
}
pre_remove() {
[ -x usr/bin/install-info ] || return 0
for file in ${filelist[@]}; do
install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
done
}
Unha vez confirmado que os dóus arquivos non parecen dañinos, procederemos como usuario normal a executar:
makepkg -sri
| Parámetro: | Descripción: |
|---|---|
| -s, -syncdeps | Instalar ás dependencias que faltan con pacman. |
| -r, -rmdeps | Eliminalas dependencias instaladas tras construir o paquete correctamente. |
| -i, -install | Instalalo paquete despóis de construilo correctamente. |
Comenzará a compilar o paquete a descargalas dependencias necesarias, e logo nos pedirá o contrasinal para o sudo, para poder instalar o paquete no sistema.
Unha vez conclua se todo vai ben soe ser moi estable o proceso, a min nunca me rompeu ningunha dependencia, quedará instalado no noso sistema.
Ó podemos comprobar con:
$ make --version
GNU Make 4.1
Compilado para x86_64-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
Licenza GPLv3+: GNU GPL versión 3 ou posterior <http://gnu.org/licenses/gpl.html>
Isto é software libre: pode modificalo e redistribuílo.
Non hai NINGUNHA GARANTÍA, ata onde o permita a lei.
No meu caso veremos que o make é máis recente sendo ó 4.1 que é o que está no meu sistema, agora nos toca crear un enlace brando a versión make antiga.
Igual que se ten que facer para usar python2 en lugar do 3.
Primeiro comprobamos se o actual make é un enlace ou un binario, no meu caso é un binario:
$ ls -l /usr/bin/make*
-rwxr-xr-x 1 root root 211824 Out 6 2014 /usr/bin/make
-rwxr-xr-x 1 root root 170168 Nov 12 12:21 /usr/bin/make-3.81
-rwxr-xr-x 1 root root 2564 Set 6 19:26 /usr/bin/makealias
-rwxr-xr-x 1 root root 44368 Nov 1 10:07 /usr/bin/makeconv
-rwxr-xr-x 1 root root 18992 Set 1 19:09 /usr/bin/makedb
-rwxr-xr-x 1 root root 43432 Ago 20 2014 /usr/bin/makehrtf
lrwxrwxrwx 1 root root 8 Out 21 23:45 /usr/bin/makeinfo -> texi2any
-rwxr-xr-x 1 root root 35480 Nov 6 11:21 /usr/bin/makekdewidgets
-rwxr-xr-x 1 root root 96813 Out 2 13:41 /usr/bin/makepkg
-rwxr-xr-x 1 root root 6352 Out 2 13:41 /usr/bin/makepkg-template
Agora movémolo make máis recente para darlle outro nome:
# mv -v /usr/bin/make /usr/bin/make_4.1_original
Creámolo enlace brando para que cada vez que se use make no sistema se use a vella versión do make:
# ln -sv /usr/bin/make-3.81 /usr/bin/make
Comprobamola versión de make que se nos executa ao executar make:
# make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for x86_64-unknown-linux-gnu
E xa está, con isto temolo noso vello make e podremos continuar coa compilación de Firefox OS, Android ou Cyanogenmod.