Es un hecho que el antiquísimo sistema de impresión de unix ya está obsoleto y cada vez más la gente piensa en CUPS como sistema administrador de impresión.
Los viejos lp, lpadmin y compañía ya pueden tener un eterno descanso.
![[info]](pl_images/pl_info.png)
Si bien este howto abarca la instalación de CUPS en Solaris 10 11/06 y 8/07, no dudo que se adaptará excelentemente bien a OpenSolaris.
Para realizar las siguientes tareas necesitaremos el DVD Software Companion de Solaris o bien descargar los paquetes individuales desde:
Solaris 10:
http://www.sun.com/software/solaris/free...wnload.xml
Adjunto para otras versiones por si es necesario:
Solaris 9:
http://www.sun.com/software/solaris/free...wnload.xml
Solaris 8 2/02:
http://www.sun.com/software/solaris/free...wnload.xml
![[info]](pl_images/pl_info.png)
Nótese que hace falta una cuenta MySun, el registro es gratuito.
Es recomendable descargar el paquete Depend-i386.pkgs.tar.bz2 e instalarlo (respetar las dependencias):
# bunzip2 Depend-i386.pkgs.tar.bz2
# tar xvf Depend-i386.pkgs.tar
# pkgadd -d SFWgcmn
# pkgadd -d SFWungif
# pkgadd -d SFWimlib
luego instalar el resto de los paquetes
Debe instalarse el paquete Printing-i386.pkgs.tar.bz2, en este orden:
# bunzip2 Printing-i386.pkgs.tar.bz2
# tar xvf Printing-i386.pkgs.tar
# pkgadd -d SFWfltk
# pkgadd -d SFWoslp
# pkgadd -d SFWcups
# pkgadd -d SFWpnm2p
# pkgadd -d SFWxpp
Nótese que EPS Ghostscript ya esta incluido en la instalación de Solaris (vea que existe el binario 'gs' en /usr/sfw/bin)
En este punto, CUPS esta instalado y se encuentra en /opt/sfw/cups.
Vamos a deshabilitar los servicios lp de Solaris, para ello es mejor deshabilitar los servicios, renombrar los binarios y crear links simbólicos a los que provee cups. Aquí hay un script de ejemplo:
#!/bin/bash
svcadm disable application/print/ipp-listener
svcadm disable application/print/server
svcadm disable application/print/rfc1179
cd /usr/bin
for i in lp lpstat cancel enable ; do
mv $i $i.old
ln -s /opt/sfw/cups/bin/$i .
done
cd /usr/sbin
for i in lpadmin lpmove accept ; do
mv $i $i.old
ln -s /opt/sfw/cups/sbin/$i .
done
ln -s /usr/sfw/bin/smbspool /opt/sfw/cups/lib/cups/backend/smb
Ahora crearemos el servicio para poder manipularlo mediante SMF.
Primero crearemos el archivo xml necesario, el cual guardaremos en /var/svc/manifest/site/cups.xml:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='site:cups'>
<service name='site/cups' type='service' version='0'>
<create_default_instance enabled='true' />
<single_instance />
<dependency name='paths'
grouping='require_all'
restart_on='error'
type='path'>
<service_fmri value='file://localhost/opt/sfw/cups/sbin/cupsd' />
<service_fmri value='file://localhost/opt/sfw/cups/etc/init.d/cups' />
</dependency>
<dependency name='network'
grouping='require_any'
restart_on='error'
type='service'>
<service_fmri value='svc:/network/service' />
</dependency>
<dependency
name='fs-local'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>
<property_group name='start' type='method'>
<propval name='exec' type='astring' value='/opt/sfw/cups/etc/init.d/cups start'/>
</property_group>
<property_group name='stop' type='method'>
<propval name='exec' type='astring' value='/opt/sfw/cups/etc/init.d/cups stop'/>
</property_group>
</service>
</service_bundle>
Ahora por linea de comandos configuramos el servicio:
# svccfg
svc:> add site/cups
svc:> select site/cups
svc:/site/cups> addpg start method
svc:/site/cups> addpg stop method
svc:/site/cups> setprop start/exec = astring:"/opt/sfw/cups/etc/init.d/cups start"
svc:/site/cups> setprop stop/exec = astring:"/opt/sfw/cups/etc/init.d/cups stop"
svc:/site/cups> add default
svc:/site/cups> quit
Lo habilitamos:
# svcadm -v enable svc:/site/cups:default
y le indicamos que utilice el archivo xml que hemos creado:
#svccfg -v import /var/svc/manifest/site/cups.xml
Verificamos que cups esta funcionando (si no es así, lanzarlo):
Configuramos la contraseña de root para cups (puede ser distinta del usuario root):
# /opt/sfw/cups/bin/lppasswd -g sys -a root
esta contraseña se almacena en /opt/sfw/cups/etc/cups/passwd.md5
Vamos a ver en /usr/lib/lp/model/ppd/system/foomatic si existe algún archivo ppd que corresponda a nuestra impresora.
Si existe, lo copiamos:
# cp /usr/lib/lp/model/ppd/system/foomatic/ejemplo.ppd /opt/sfw/cups/share/cups/model
En algunos casos puede que los archivos ppd estén comprimidos con gzip.
De no existir el driver, se puede utilizar alguno alterno (por lo general los de modelos anteriores funcionan correctamente) o podemos dirigirnos a OpenPrinting.org y elegir el driver que más nos convenga.
También debemos bajar dos scripts de PERL:
# wget http://www.linuxprinting.org/foomatic-rip
# wget http://www.linuxprinting.org/foomatic-gswrapper
hacer una pequeña modificación en foomatic-rip para agregar el interprete gs de Ghostscript.
buscamos la línea que sigue a continuación y agregamos al final "/usr/sfw/bin":
my $exepath = “NONE/bin:/usr/local/bin:/usr/bin:/bin:/usr/sfw/bin";
guardamos el cambio y movemos ambos archivos al directorio de filtros.
# chmod 755 foomatic*
# mv foomatic* /opt/sfw/cups/lib/cups/filter/
Abrimos un navegador y escribimos la dirección: http://localhost:631/admin
colocamos root y la contraseña que hemos definido anteriormente.
Agregamos la impresora, configuramos y lanzamos una impresión de prueba.
Se pueden agregar impresoras conectadas al LPT, al USB, de red o compartidas por windows montándolas por samba.
Solo resta agregar las impresoras necesarias, definir la impresora por default y listo.
Disfruta tu coctel Solaris/cups.
Fuentes:
http://www.cups.org
http://blogs.sun.com/DanX/entry/using_cu...server_for
http://www.sun.com/bigadmin/content/subm..._sol10.jsp