NetBSD es famoso por ejecutarse básicamente en cualquier cosa, pero ¿sabía que es segundo? el reclamo a la fama es el pkgsrc ¿gerente de empaquetación? Al igual que NetBSD, pkgsrc se ejecuta básicamente en cualquier cosa, o al menos en cualquier sistema Unix y similar a Unix. Puede instalar pkgsrc en BSD, Linux, Illumos, Solaris y Mac. En total, se admiten más de 20 sistemas operativos.
¿Por qué usar pkgsrc?
Con la excepción de MacOS, todos los sistemas operativos Unix se envían con un administrador de paquetes incluido. No necesariamente necesitas pkgsrc, pero aquí hay tres grandes razones por las que puede querer probarlo:
- Embalaje. Si tiene curiosidad acerca del empaquetado pero aún tiene que intentar crear un paquete usted mismo, pkgsrc es un sistema relativamente simple de usar, especialmente si ya está familiarizado con Makefiles y sistemas de compilación como GNU Autotools.
- Genérico. Si usa múltiples sistemas operativos o distribuciones, entonces probablemente encuentre un administrador de paquetes para cada sistema. Puede usar pkgsrc en diferentes sistemas para que cuando empaquete una aplicación para uno, la haya empaquetado para todos ellos.
- Flexible. En muchos sistemas de empaquetado, no siempre es obvio cómo elegir un paquete binario o un paquete fuente. Con pkgsrc, la distinción es clara, ambos métodos de instalación son igualmente fáciles y ambos resuelven las dependencias por usted.
Cómo instalar pkgsrc
Ya sea que esté en BSD, Linux, Illumos, Solaris o MacOS, el proceso de instalación es básicamente el mismo:
- Utilice CVS para verificar el árbol pkgsrc
- Arrancar el sistema pkgsrc
- Instalar paquetes
Use CVS para verificar el árbol pkgsrc
Antes de Git, antes de Subversion, existía CVS . No es necesario saber mucho sobre CVS para realizar una verificación de su código. Si está acostumbrado a Git, entonces piense en verificar. como clon . Cuando realiza una verificación CVS de pkgsrc, está descargando "recetas" que detallan cómo se debe construir cada paquete. Son muchos archivos, pero son pequeños porque en realidad no está extrayendo el código fuente de cada paquete, solo la infraestructura de compilación y los Makefiles necesarios para compilar según la demanda. El uso de CVS facilita la actualización de su pkgsrc checkout cuando se lanza uno nuevo.
Los documentos de pkgsrc recomiendan mantener su árbol en /usr directorio, por lo que debe usar sudo (o convertirse en root) para usar este comando:
$ cd /usr
$ sudo cvs -q -z2 \
-d [email protected]:/cvsroot \
checkout -r pkgsrc-2019Q3 -P pkgsrc
Mientras escribo, la última versión es 2019Q3. Consulte la sección de noticias de la página de inicio de pkgsrc.org o la documentación de NetBSD para determinar la última versión de lanzamiento.
Bootstrap pkgsrc
Después de que el árbol pkgsrc se haya copiado en su computadora, tendrá un /usr/pkgsrc directorio lleno de scripts de compilación. Antes de poder usarlos, debe iniciar pkgsrc para que tenga fácil acceso a los comandos relevantes que necesita para compilar e instalar el software.
La forma en que arrancas pkgsrc depende del sistema operativo en el que estés.
Para NetBSD, solo puede usar el programa previo incluido:
# cd pkgsrc/bootstrap
# ./bootstrap
En otros sistemas, hay mejores formas con algunas funciones personalizadas incluidas, proporcionadas por Joyent. Para conocer el comando exacto a ejecutar, visite pkgsrc.joyent.com. Por ejemplo, en Linux (Fedora, Debian, Slackware, etc.):
$ curl -O \
https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz
$ BOOTSTRAP_SHA="eb0d6911489579ca893f67f8a528ecd02137d43a"
Aunque la ruta sugiere que los archivos incluidos son para RHEL 7, los archivos binarios tienden a ser compatibles con todas las distribuciones de Linux excepto con las más avanzadas. Y si encuentra un binario incompatible con la distribución en la que se encuentra, tiene la opción de compilar desde el código fuente.
Verifique la suma de verificación SHA1:
$ echo "${BOOTSTRAP_SHA}" bootstrap-trunk*gz > check-shasum
sha1sum -c check-shasum
También puede verificar la firma PGP:
$ curl -O \
https://pkgsrc.joyent.com/packages/Linux/el7/bootstrap/bootstrap-trunk-x86_64-20170127.tar.gz.asc
curl -sS https://pkgsrc.joyent.com/pgp/56AAACAF.asc | gpg --import
gpg --verify ${BOOTSTRAP_TAR}{.asc,}
Una vez que esté seguro de que tiene el kit de arranque correcto, instálelo en /usr/pkg :
sudo tar -zxpf ${BOOTSTRAP_TAR} -C /
Esto le proporciona los comandos pkgsrc habituales. Agregue estas ubicaciones a su RUTA:
$ echo "PATH=/usr/pkg/sbin:/usr/pkg/bin:$PATH" >> ~/.bashrc
$ echo "MANPATH=/usr/pkg/man:$MANPATH" >> ~/.bashrc
Si prefiere usar pkgsrc sin depender de las compilaciones de Joyent, puede ejecutar bootstrap script que obtuvo con el árbol pkgsrc. Lea el archivo README relevante en el bootstrap directorio antes de ejecutarlo para obtener notas importantes específicas del sistema.
Cómo instalar software con pkgsrc
Instalar un binario precompilado (como lo haría con DNF o Apt) con pkgsrc es fácil. El comando para instalaciones binarias es pgkin , que tiene su propio sitio dedicado en pkgin.net. El proceso debería ser bastante familiar para cualquiera que haya usado Linux.
Para buscar el tmux paquete:
$ pkgin search tmux
Para instalar el paquete tmux:
$ sudo pkgin install tmux
El paquete El objetivo del comando es imitar el comportamiento de los administradores de paquetes típicos de Linux, por lo que hay opciones para enumerar los paquetes disponibles, consultar los paquetes disponibles para encontrar qué proporciona un ejecutable específico, etc.
Cómo construir desde el código fuente con pkgsrc
Sin embargo, el verdadero poder de pkgsrc es la facilidad de construir un paquete desde la fuente. Descargaste los más de 20 000 scripts de compilación en el primer paso de configuración y puedes acceder a ellos navegando directamente a tu árbol pkgsrc.
Por ejemplo, para compilar tcsh desde la fuente, primero, busque el script de compilación:
$ find /usr/pkgsrc -type d -name "tcsh"
/usr/pkgsrc/shells/tcsh
A continuación, cambie al directorio de origen:
$ cd /usr/pgksrc/shells/tcsh
El directorio del script de compilación contiene varios archivos para ayudar a la aplicación a compilarse en su sistema, pero en particular, contiene el DESCR que contiene una descripción del software, así como el Makefile que desencadena la compilación.
$ ls
CVS DESCR Makefile
PLIST distinfo patches
$ cat DESCR
TCSH is an extended C-shell with many useful features like
filename completion, history editing, etc.
$
Cuando esté listo, compile e instale:
$ sudo bmake install
El sistema pkgsrc usa el bmake comando (proporcionado por pkgsrc checkout en el primer paso), así que asegúrese de usar bmake (y no hacer por costumbre).
Si está compilando para varios sistemas, puede crear un paquete en lugar de instalarlo de inmediato:
$ cd /usr/pgksrc/shells/tcsh
$ sudo bmake package
[...]
=> Creating binary package in /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgz
Los paquetes que crea pkgsrc son tarballs estándar, pero se pueden instalar convenientemente con pkg_add :
$ sudo pkg_add /usr/pkgsrc/packages/All/tcsh-X.Y.Z.tgz
tcsh-X.Y.Z: adding /usr/pkg/bin/tcsh to /etc/shells
$ tcsh
localhost%
Las pkgtools colección de pkgsrc proporciona el pkg_add , pkg_info , pkg_admin , pkg_create y pkg_delete comandos para ayudar a administrar los paquetes que crea y mantiene en su sistema.
Pkgsrc para una fácil administración
El sistema pkgsrc ofrece un enfoque directo y práctico para la gestión de paquetes. Si está buscando un administrador de paquetes que se mantenga fuera de su camino e invite a la personalización, pruebe pkgsrc en cualquier sistema operativo Unix o similar a Unix que esté ejecutando.