miércoles, 30 de mayo de 2012

Instalar Paquetes y Dependencias Solaris 10 con pkgutil


Hoy cansado de bajar unos paquetes para solaris 10, dije tiene que haber un comando similar para este sistema operativo como los que ya conozco apt-get, urpmi, yum, u2date, etc.

Finalmente me topé con el comando pkg-get, al intentar bajarlo me indicaba que ya era obsoleto y me sugería otro paquete denominado pkgutil.

Con este comando podemos bajar paquetes y sus dependencias de una forma rápida y simple, bueno no quiero aburrirlos más con el parloteo, comencemos descargando el paquete desde el siguiente enlace: Download pkgutil.pkg


Lo instalamos:

# pkgadd -d pkgutil.pkg


Nos aparecerá algo como lo siguiente, seleccionamos la opción por defecto all y luego yes:

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

Procesando versión del software desde
pkgutil - Installs Solaris packages easily(all) 2.6.4,REV=2012.02.21
Please see /opt/csw/share/doc/pkgutil/license for license information.
## Procesando información del paquete.
## Procesando información de sistema.
## Verificando las dependencias del paquete.
## Verificando el espacio de disco requerido.
## Comprobando posibles conflictos con paquetes que ya están instalados.
## Comprobando programas setuid/setgid.
Este paquete contiene archivos de comandos que serán ejecutados con
permiso de superusuario durante el proceso de instalación de este
paquete.
Desea continuar con la instalación de [y,n,?] y 

NOTE! Make sure to check out any changes in /etc/opt/csw/pkgutil.conf.CSW.
NOTE!

La instalación de fue satisfactoria.


Al querer ejecutarlo posiblemente no lo encontrará, ya que no está en el path de ejecución, verificamos donde fue instalado:

# find / -name pkgutil
/var/opt/csw/pkgutil
/opt/csw/bin/pkgutil <-- Acá
/opt/csw/libexec/pkgutil
/opt/csw/share/doc/pkgutil
/opt/csw/var/pkgutil


Verificamos cual es el path de ejecución:

# echo $PATH
/usr/sbin:/usr/bin


Agregamos la ruta donde se encuentra el binario del pkgutil al path ya existente (la ruta es /opt/csw/bin):

# export PATH=/usr/sbin:/usr/bin:/opt/csw/bin/


Lo agregamos en el profile del usuario para que cuando iniciemos nuevamente siga existiendo:

# vi ~/.bash_profile
export PATH=/usr/sbin:/usr/bin:/opt/csw/bin/


Ahora simplemente ejecutamos pkg+TAB y vemos que nos completa el comando ó nos muestra las posibles opciones que antes no nos mostraba:

# pkgutil
pkgutil 2.6.4, install Solaris packages the easy way.
Usage: pkgutil [option]... [package](-[version])...
  -i, --install         Install package
  -u, --upgrade         Upgrade package
  -r, --remove          Remove package (experimental)
  -d, --download        Download only
  -U, --catalog         Update catalog
  -a, --available       Show available packages
      --describe        Describe available packages
  -c, --compare         Compare installed packages to current
  -C, --compare-diff    Same as -c but only show different versions
  -A, --compare-avail   Compare available packages to those installed
  -e, --email=address   Send e-mail with available updates
  -t, --temp=site       Temporarily use this site as primary for download
  -x, --exclude=pattern Pattern to exclude
  -W, --workdir=path    Path to use for work directory
  -P, --pkgdir=path     Path to use for package downloads
  -R, --rootpath=path   Path to use for root_path
      --config=file     Use this configuration file
  -y, --yes             Answer yes on all prompts
  -f, --force           Force updates (sync with mirror)
  -n, --nomod           No modifications are made to the system
  -N, --nodeps          No dependencies
  -D, --debug           Debug mode
      --trace           Set trace mode (-v) for pkgadd/pkgrm
  -h, --help            Show this help
  -v, --version         Show version
  -V, --syscheck        System check
  -l, --list            List installed packages
  -L, --listfile        List files in package
  -F, --findfile        Find files in package
      --deptree=depth   Display dependency tree
      --extract         Extract package content (use with -d)
  -s, --stream          Build a package stream (use with -d)
  -o, --output=file     File name for package stream (use with -s)
  -T, --target=arch:rel Specify architecture and OS release for download
      --single          Single package check (use with -c)
  -p, --param=opt:val   Override configuration option
      --parse           Machine parsable output
      --cleanup         Clean up obsolete packages
      --catinfo         Catalog info
Example: pkgutil -i CSWwget (install wget and its dependencies)
Written and maintained by Peter Bonivart. Web site: http://pkgutil.net.


Buscamos un paquete:

# pkgutil -a wget
common               package              catalog                        size
wget                 CSWwget              1.13.4,REV=2012.05.12      838.8 KB
wgetpaste            CSWwgetpaste         2.18,REV=2011.03.28          9.3 KB


Verificamos dependencias e instalamos wget:

# pkgutil -i CSWwget
Solving needed dependencies ...
Solving dependency order ...
12 CURRENT packages:
        CSWcommon-1.5,REV=2010.12.11
        CSWggettext-data-0.18.1.1,p,REV=2011.03.15
        CSWggettextrt-0.18.1.1,p,REV=2011.03.15
        CSWiconv-1.14,REV=2011.08.08
        CSWlibasprintf0-0.18.1.1,p,REV=2011.03.15
        CSWlibcharset1-1.14,REV=2011.08.07
        CSWlibgettextpo0-0.18.1.1,p,REV=2011.03.15
        CSWlibiconv2-1.14,REV=2011.08.07
        CSWlibintl2-0.18.1.1,p,REV=2011.02.12
        CSWlibintl3-0.18.1.1,p,REV=2011.02.12
        CSWlibintl8-0.18.1.1,p,REV=2011.03.15
        CSWterminfo-5.9,REV=2011.11.21
Install 7 NEW packages:
        CSWlibncurses5-5.9,REV=2011.11.21 (opencsw/testing)
        CSWlibncursesw5-5.9,REV=2011.11.21 (opencsw/testing)
        CSWlibpanel5-5.9,REV=2011.11.21 (opencsw/testing)
        CSWlibpanelw5-5.9,REV=2011.11.21 (opencsw/testing)
        CSWncurses-5.9,REV=2011.11.21 (opencsw/testing)
        CSWvim-7.3.055,REV=2010.11.25 (opencsw/testing)
        CSWvimrt-7.3.055,REV=2010.11.25 (opencsw/testing)
Total size: 8.9 MB
7 packages to fetch. Do you want to continue? ([y],n,auto) y

Desea instalar estos paquetes conflictivos? y


Listo, ya tenemos instalado wget, lo probamos descargando la página de google:

# wget www.google.com.ar
--2012-05-31 16:32:13--  http://www.google.com.ar/
Resolviendo www.google.com.ar (www.google.com.ar)... 74.125.229.223, 74.125.229.215, 74.125.229.216
Conectando con www.google.com.ar (www.google.com.ar)[74.125.229.223]:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: no especificado [text/html]
Grabando a: "index.html"


La configuración se encuentra en:

 /opt/csw/etc/pkgutil.conf


Si queremos actualizar a la última versión de pkgutil ejecutamos:

# pkgutil -u pkgutil
Solving needed dependencies ...
Solving dependency order ...
1 CURRENT packages:
        CSWpkgutil-2.6.4,REV=2012.02.21

Nothing to do.


Algo típico que suele ocurrir es que por defecto se descargue el paquete en una partición que no posea espacio, si queremos que lo descargue solamente en otra ruta, como por ejemplo /export/home ejecutamos lo siguiente:


# pkgutil -d --pkgdir /export/home/ wget




No hay comentarios: