lunes, agosto 28, 2006

HACKED ANIMATION STUDIOS By elvispresley

xDDD

En Hackerss.com ha aparecido el sr. ElvisPresley para ofrecernos animaciones de los usuarios del portal. Hasta ahora van 2 capítulos..
Sin más que decir les dejo el link a las animaciones y el tema en el foro correspondiente :P

Capítulo 1

Capítulo 2

Foro: HACKED ANIMATION STUDIOS

jueves, agosto 24, 2006

[Script PHP] Converter BBCODE/HTML

Hace un par de días me canse XD de estar editando los pequeños howtos, que aconstumbro escribirlos con todo y etiquetas BBCODE para los foros xD..

Así que me di la tarea de escribir un script que me ayudara o cuando menos minimizara esta tarea un poco. Y aquí esta (tiene detallitos, pero ya menciones cuál era mi objetivo =):



<html>
<head><title>Convert HTML/BBCODE</title></head>
<body>
<?php
if (!empty($HTTP_POST_FILES["archivo"]["tmp_name"]) && !empty($_POST['opc']) ){
if ( $HTTP_POST_FILES['archivo']['size'] <= 100000){
$archivo_name=$HTTP_POST_FILES['archivo']['name'];
$dirTmp=$HTTP_POST_FILES['archivo']['tmp_name'];
$extensiones = explode(".",$archivo_name);
$e = count($extensiones)-1;
if($extensiones[$e] == "txt"){
$opc=$_POST['opc'];
$etiquetas = array
("html" => array( "<span style='font-weight:bold;'>","</span>","<pre><nowiki>",
"</pre></nowiki>","<span style='font-style:italic;'>","</span>",
"<span style='font-size:18px;'>","</span>","<a href=","</a>",
"<img src="," />","<blockquote>","</blockquote>",
"<span style='font-size:16px;'>","</span>"),
"bbcode" => array("[b]","[/b]","[code]","[/code]","[i]","[/i]","[size=18]","[/size]",
"[URL=","[/URL]","[IMG]","[/IMG]","[quote]","[/quote]","[size=16]","[/size]"));
$open=fopen($dirTmp,"r");
$text=fread($open,filesize($dirTmp));
$texto=$text;
for( $x=0; $x<=count($etiquetas["html"]); $x++){
if ($opc == 2)
$text=str_ireplace($etiquetas["bbcode"][$x],$etiquetas["html"][$x],$text);
if ($opc == 1)
$text=str_ireplace($etiquetas["html"][$x],$etiquetas["bbcode"][$x],$text);
}

fclose($open);
?>
<form>
<a href="<?php $PHP_SELF ?>">Regresar</a>
<br><b>Texto Original</b><br>
<textarea name=texto rows=21 cols=100><?php echo $texto ?></textarea>
<br><br>
<b>Texto Modificado</b><br>
<textarea name=texto rows=21 cols=100><?php echo $text ?></textarea>
</form>
<?php
}else{
echo "Sólo se permiten archivos con extensión .txt" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
echo "El archivo debe ser menor de 100 Kb" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
?>
<FORM METHOD="POST" ACTION="<?php $PHP_SELF ?>" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="archivo">
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar">
<br><br><b>Convertir a:</b>
BBCODE: <input type="radio" name="opc" value="1">
HTML: <input type="radio" name="opc" value="2">
<br><br><b>Asegurate que eligas la ruta del archivo y la opción correcta</b>
</FORM>
<?
}
?>
</body>
</html>
Para poder probarlo localmente (que es como lo utilizo) hay que modificar la configuración de PHP en el archivo php.ini de la siguiente manera y agregar los permisos correspondientes. Todo esto para poder subir archivos a un servidor:

Archivo: /etc/php/apache2-php5/php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /tmp

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Asignando permisos al directorio temporal para subir achivos:

##Permisos a /tmp para el usuario y grupo apache

# chown apache:apache /tmp

Saludos!!

sábado, agosto 19, 2006

[Howto] Soporte a escaners en GNU/Linux (Multifuncional Epson Stylus CX1500)

[Howto] Soporte a escaners en GNU/Linux (Multifuncional Epson Stylus CX1500)

Andaba como si nada navegando por google hasta que me tope con esto: http://stargeizer.blogspot.com/2006/01/epson-cx-1500-bajo-linux.html , enseguida me di la tarea de investigar si el soporte ya estaba mejor que antes, lo cuál habia un soporte clasificado como bueno y no completo, pero que funciona a las mil maravillas :D

Bueno voy a tratar de orientar a los usuarios a poder dar soporte a sus escanners así como yo lo he realizado con la multifuncional Epson Stylus CX1500 (escaner, impresora y copiadora)..

La parte del soporte para la impresora la dejo a un lado ya que no es objetivo del tema, simplemente decir que esta soportada por el paquete guteprint..


http://www.linuxprinting.org/show_printer.cgi?recnum=Epson-Stylus_CX1500

Para dar soporte a la mayoria de escaners necesitamos sane (http://www.sane-project.org/) que es una API.

Como sabes si mi escaner es soportado?

Dirígete a: http://www.sane-project.org/sane-mfgs.html
También esta la versión cvs http://www.sane-project.org/lists/sane-mfgs-cvs.html

Antes de instalar Sane

Si una vez que aseguramos que el dispositivo esta soportado, vamos a verifícar si el escaner es detectado por el kernel. En mi caso es un dispositivo conectdo por USB y el kernel no lota como impresora (será por es impresora también).

Para resumir, si tu impresora se conecta para USB tienes que tener el soporte en el Kernel, al igual forma con SCSI..

Para esto disponemos de varias herramientas como veremos en seguida:


UnderHouse # cat /proc/bus/usb/devices
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: [b]Vendor=04b8 ProdID=080c[/b] Rev= 1.00
S: Manufacturer=EPSON
S: Product=USB MFP
S: SerialNumber=N05060409192322050
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms

UnderHouse # lshal | less
udi = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N050604
09192322050_if1_printer_noserial'
info.udi = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192
322050_if1_printer_noserial' (string)
printer.description = 'EPSON Stylus CX1500' (string)
printer.product = 'Stylus CX1500' (string)
printer.vendor = 'EPSON' (string)
info.vendor = 'EPSON' (string)
linux.device_file = '/dev/usb/lp0' (string)
linux.subsystem = 'usb' (string)
linux.hotplug_type = 2 (0x2) (int)
printer.physical_device = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192322050_if1' (string)
printer.device = '/dev/usb/lp0' (string)
info.product = 'Stylus CX1500' (string)
info.capabilities = {'printer'} (string list)
info.category = 'printer' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192322050_if1' (string) linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-2/1-2:1.1' (string)
linux.sysfs_path = '/sys/class/usb/lp0' (string)



UnderHouse ~ # lsusb
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04b8:080c Seiko Epson Corp.
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Si se fijan en lo de arriba ahora ya sabemos con exactitud el nombre del disposituvo y la ruta: /dev/usb/lp0 , además los códigos que identifican al proveedor y el ID del producto..

Instalación de Sane

Primero hay que darnos cuenta que sane maneja dos tipos de paquetes principalmente, uno es el API para los dispositivos llamado sane-backendsy otro es un par de utilerías para el usuario llamado sane-frontends.

Sane-frontends - Algunas de las herramientas que nos proporciona es:

xcam Un GUI para escanear desarrolado en GTK+ me parece.

sane-find-scanner Como su nombre lo dice, es para ver si detecta el escaner, pero como ya vimos que si está soportado no lo considero muy importante. Un ejemplo:


UnderHouse # sane-find-scanner

# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.

# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.

found USB scanner (UNKNOWN vendor and product) at device /dev/usbscanner
found USB scanner (vendor=0x0ac8 [V Micro. Corp.], product=0x0302 [PC Camera]) at libusb:001:003
found USB scanner (vendor=0x04b8 [EPSON], product=0x080c [USB MFP]) at libusb:001:002
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
# `UNKNOWN vendor and product' means that there seems to be a scanner at this
# device file but the vendor and product ids couldn't be identified.
# Currently identification only works with Linux versions >= 2.4.8. You may
# need to configure your backend manually, see the backend's manpage.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.


Más información: man sane-find-scanner

scanadf Esta es una que me ha gustado xD, no es necesario ajustar absolutamente nada, solo la ejecutas y te escanea la imagen y la coloca en tu home de tu usuario (Asi de simple, asi de sencillo :P)

Sobre sane-frontends: http://www.sane-project.org/sane-frontends.html


Instalando bajo las fuentes: Baja el paquete en el formato que más te convenga de aquí http://www.sane-project.org/source.html

La instalación de fuentes es normalmente como siempre..

Si tu dispositivo tiene soporte en la versión en desarrollo, tienes las instrucciones para CVS: http://www.sane-project.org/cvs.html

Instalando en gentoo:


# echo "media-gfx/sane-backends ~x86" >> /etc/portage/package.keywords

# echo "media-gfx/sane-frontends ~x86" >> /etc/portage/package.keywords

# echo "media-gfx/sane-frontends gimp" >> /etc/portage/package.use

# emerge sane-backends sane-frontends

Configurando dispositivo scanner:

Kerel >= 2.6.3 + Hotplug

Debemos verificar que el scanner este en la lista de sane, debemos buscar con el código del ID del producto que obtuvimos al inicio


UnderHouse ~ # grep 080c /etc/hotplug/usb/libsane.usermap
libusbscanner 0x0003 0x04b8 0x080c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000



Ahora nos dirigimos a /etc/sane.d/ donde buscaremos el fabricante de nuestro escaner y es el que contendra la configuración del dispositivo

# epson.conf
#
# here are some examples for how to configure the EPSON backend
#
# SCSI scanner:
scsi EPSON
# for the GT-6500:
scsi "EPSON SC"
#
# Parallel port scanner:
#pio 0x278
#pio 0x378
#pio 0x3BC
#
# USB scanner:
# There are two different methods of configuring a USB scanner: libusb and the kernel module
# For any system with libusb support (which is pretty much any recent Linux distribution) the
# following line is sufficient. This however assumes that the connected scanner
(or to be more
# accurate, it's device ID) is known to the backend.

## Especificamos el id del producto y del dispositivo

usb 04b8 080c

# For libusb support for unknown scanners use the following command
# usb
# e.g.:
# usb 0x4b8 0x110
# And for the scanner module, use the following configuration:
usb /dev/usbscanner0
usb /dev/usb/scanner0


Ya solo falta agregar nuestro usuario al grupo scanner


UnderHouse ~ # gpasswd -a soullost scanner
Añadiendo al usuario soullost al grupo scanner


En gentoo hay que modificar el archivo /etc/hotplug/usb/libusbscanner, quedando de esta manera:

#!/bin/sh

# This file is part of sane-backends.
#
# This script changes the permissions and ownership of a USB device under
# /proc/bus/usb to grant access to this device to users in the scanner group.
#
# Ownership is set to root:scanner, permissions are set to 0660.
#
# Arguments :
# -----------
# ACTION=[add|remove]
# DEVICE=/proc/bus/usb/BBB/DDD
# TYPE=usb


if [ -z "$DEVICE" ] ; then
IF=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\2:')
DEV=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\3:')
DEV=$(expr $DEV + 1)
DEVICE=$(printf '/proc/bus/usb/%.03d/%.03d' $IF $DEV)
fi

if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
chown root:scanner "$DEVICE"
chmod 0660 "$DEVICE"
fi


# That's an insecure but simple alternative
# Everyone has access to the scanner

# if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
# chmod 0666 "$DEVICE"
# fi


Si tienes el demonio hotplug iniciado, habrá que reiniciarlo

service hotplug restart
/etc/init.d/hotplug restart

Y listo! ya puedes verificar con las herramientas de sane-forntends que todo este funcionando como debe de ser..

Más programas para escanear

- Xsane Este GUI de sane es lo mejor que hay, es bastante configurable y además permite la edición de las imagenes..


UnderHouse ~ # eix xsane
* media-gfx/xsane
Available versions: 0.991
Installed: 0.991
Homepage: http://www.xsane.org/
Description: graphical scanning frontend

Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

- Xcam ( sane-frontends) No me gusto tanto como xsane, además al escanear, la aplicación se deforma por que la imagen es demasiado grande :lol:

Free Image Hosting at www.ImageShack.us

- Integración en Gimp

Free Image Hosting at www.ImageShack.us

- Integración en OpenOffice

Free Image Hosting at www.ImageShack.us

Mucha más información en:

SANE - Frontends (Applications) - http://www.sane-project.org/sane-frontends.html
The Scanner HOWTO - http://tldp.org/HOWTO/Scanner-HOWTO/index.html

Saludos!!

sáb 19 ago 2006 11:25:10 MDT

sábado, agosto 12, 2006

[Howto] Administración de Gentoo GNU/Linux

Introducción . Como ya he visto a varios usuarios usando Gentoo como distribución preferida, me pongo a redactar este pequeño articulo de cómo administrarlo con las herramientas y las configuraciones que nos ofrece esta excelente distribución a mi parecer. Por consiguiente, algunas recomendaciones son las que aconstumbro hacer y no están sujetas como obligatorias..

El archivo make.conf

Este archivo contiene toda las información necesaria para que emerge y portage hagan su labor debidamente. Ahora veamos la estructura de una configuración común de make.conf ( osea, la mia xD):


UnderHouse ~ # more /etc/make.conf
# These settings were set by the catalyst build script that automatically built
this stage
# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-O2 -march=pentium4 -pipe"
##-fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
USE="browserplugin nvidia nomalloccheck utf8 apache2 php imap
unicode gtk gpm directfbi foomaticdb nls spell -3dfx -aim alsa
-arts cdr -cjk debug doc -dedicate dga directfb encode fdftk flash
gnome -hardened -icq -jabber java -kde -qt -mmx mpeg msn nls opengl
oss samba svga usb xmms -yahoo nptl aac aalib -acpi apm cups dri fam
fbcon gphoto2 gstreamer hal mp3 -mozilla firefox esd sdl usb"
GENTOO_MIRRORS="http://linuv.uv.es/mirror/gentoo"
AUTOCLEAN="yes"
LINGUAS='es'
CONFIG_PROTECT_MASK="/usr/X11R6/bin/startx"
MAKEOPTS="-j2"
#PORTDIR_OVERLAY=/usr/local/portage
PORTDIR_OVERLAY="/usr/local/portage/xgl-coffee"
FEATURES="parallel-fetch"
INPUT_DEVICES="evdev keyboard mouse"
VIDEO_CARDS="nvidia fbded nv none vesa"
PORTAGE_ELOG_CLASSES="log error warn info"
PORTAGE_ELOG_SYSTEM="save"


CFLAGS: Esta variable contiene las opciones que usa el compilador (gcc) para compilar los paquetes para instalar/reinstalar. Por ejemplo yo tengo estas opciones:
-O2 Es el tipo de optimización
-march=pentium4 Es la arquitectura de mi sistemam, que es com ha visto un pentium 4
-pipe Usa tuberias para la compilación..

Generalmente se recomienda las opciones que generen una optimización segura y efectiva ( si estas opciones son muy agresivas los paquetes pueden llegar a tener errores ). Ahora la pregunta obligatoria, ¿Qué opciones uso para mi sistema?. Bueno hay una lista recomendada en la siguiente dirección: http://gentoo-wiki.com/Safe_Cflags

CHOST: Simplemente es el tipo de arquitectura que uses..

CXXFLAGS: Otra variable más para el compilador, generalmente toma las mismas definidas anteriormente en CFLAGS

USE: Esta es una de las variables que más me gustan :D. El concepto es simple, los paquetes disponen de ciertos soportes, pero que soportes? mirar: http://www.gentoo-portage.com/USE || less /usr/portage/profiles/use.desc

Por ejemplo, para que mis paquetes puedan integrarse al gnome uso la use "gnome" xD, si quiero que mis paquetes tenga soporte para varios idiomas uso la use "nls". Asi mismo para dar soporte escribimos la use tal y cual es, para quitarselo antepnemos un signo menos "-" antes del nombre..

Nota importante: Las USE's definidas en make.conf serán las usadas siempre, osea, emerge al instalar/actualizar el sistema siempre usará los soporte definidos por esta variable, por esos es importante colocar los soportes que queremos que "siempre" tengan nuestros paquetes..

GENTOO_MIRRORS: Simplemente el mirror que usará gentoo para actualizar la BD de portage

AUTOCLEAN="yes" Significa que los paquetes descargados (/usr/portage/distfiles) serán borrados después de un tiempo (no recuerdo bien el lapso, pero creo es cada mes o algo similar)..

LINGUAS='es': Algunos paquetes usan esta variable para dar soporte a ciertos idiomas incluyendo el español :P

CONFIG_PROTECT_MASK: Especifíca que archivos no seran modificados por emerge..

MAKEOPTS: Determina las compilaciones paralelas definidas por la cantidad de CPUS que tengas, en este caso como yo tengo solo un CPU le sumo uno "-j2", en caso de tener un CPU de doble nucleo ponemos "-j3"..

PORTDIR_OVERLAY: Es un directorio opcional para que emerge lo tenga en cuenta para paquetes definidos por los usuarios (ebuilds creados por nosotros, ebuils creados por desarroladores que no son del equipo de gentoo, etc..). Muy útil para pruebas y para agregar nuestros propios paquetes que no se encuentren en la BD de portage.

FEATURES="parallel-fetch": Esta opción habilita el poder bajar paquetes mientras a su vez se compola otro, útil al momento de actualizar todo el sistema..

INPUT_DEVICES: Esta variable la he puesto por el cambio a xorg-7.x, simplemente poner los dispositivos para los que queremos soporte. La lista es:


INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc
-dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse
-void -wacom"


VIDEO_CARDS: Lo mismo que lo anterior pero ahora para el soporte de las tarjetas gráficas que queremos tener disponibles. La lista:


VIDEO_CARDS="nv nvidia vesa -apm -ark -chips -cirrus -cyrix -dummy -fbdev
-fglrx -glint -i128 -i740 -i810 -imstt -mach64 -mga -neomagic -nsc -r128
-radeon -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb -tdfx
-tga -trident -tseng -v4l -vga -via -vmware -voodoo"


PORTAGE_ELOG_CLASSES: Integra la herramienta elog para emegerge ( a partir de la versión 2.1 de portage :P ), esta herramienta es de uso obigatorio, cuantas veces nos hemos dado cuenta que al emergear un paquete nos coloca aviso del tipo:


~/.wine/config is now deprecated. For configuration either use
winecfg or regedit HKCU\Software\Wine


Todos estos avisos están puestos para los usuarios, habilitando elog no se nos escapará ni uno solo :D

También bastante útil para los foros y cuando tengas errores..


PORTAGE_ELOG_SYSTEM: Decide donde arrojar estos logs, en mi caso le ponga "save" para que los errores los coloque en /var/log/portage/elog/paquete-x.x.x.

Bueno ya terminamos uno de los archivos más importantes en Gentoo :P

El archivo /etc/portage/package.use

Este archivo de configuración contiene las use que solo queremos para ciertos paquetes en especial..

Por ejemplo en un paquete quiero tener soporte X y en otros no, aqui podemos des/habilitar estas opciones por paquete..


echo "categoria/paquete -X +alsa -oss" >> /etc/portage/package.use


Les muestro un pedazo de mi archivo:


soullost@UnderHouse ~ $ head /etc/portage/package.use
sys-devel/gcc hardened
dev-lang/python -X
net-misc/openssh chroot
net-fs/samba -python
x11-base/xorg-x11 dlloader
app-editors/vim bash-completion vim-with-x
app-editors/vim-core bash-completion
www-client/mozilla crypt debug gnome ipv6 java mozcalendar
mozdevelop -moznocompose -moznoirc -moznomail -moznoxft mozsvg
-postgres ssl truetype -xinerama -xprint
media-video/totem xine
media-libs/xine-lib -X dvd imagemagick vcd vidix win32codecs ffmpeg


El archivo /etc/portage/package.keywords

Si tenemos una rama estable :P, aqui coloquemos todo esos paquetes que por alguna razón preferimos tener los paquetes más recientes en portage..


echo "categoria/paquete ~x86" >> /etc/portage/package.keywords


Les muestro un pedazo de mi archivo:

soullost@UnderHouse ~ $ head /etc/portage/package.keywords
net-im/amsn ~x86
app-emulation/kqemu ~x86
app-emulation/qemu-softmmu ~x86
app-emulation/qemu ~x86
app-emulation/qemu-user ~x86
media-gfx/gimp-print ~x86
net-print/foomatic ~x86
net-print/foomatic-db ~x86
net-print/foomatic-db-engine ~x86
net-print/foomatic-filters ~x86


También podemos escoger versiones de paquetes con los operadores >=. <=, = ..


echo ">=categoria/paquete-version ~x86" >> /etc/portage/package.keywords


El archivo /etc/portage/package.unmask

Contiene todos los paquetes que queremos tener disponibles pero marcados como masked por los desarrolladores de gentoo.


echo "categoria/paquete" >> /etc/portage/package.unmask


El archivo /etc/portage/package.mask

Contiene todos los paquetes que "nosotros" queremos enmascarar para de ninguna forma poder emergearlos


echo "categoria/paquete" >> /etc/portage/package.mask


Buscando paquetes

Yo regularmente uso eix para tal motivo :P


emerge eix


Uso:
eix paquete


Instalando paquetes

Mi procedimiento:

Primero miramos las dependencias de los paquetes y las uses por defecto:


emerge -pv paquete


Si es necesario agrego las uses a package.use, si hay dependencias de paquetes inestables o quiero alguna versión en especial al archivo package.keywords..

Ahora descargo/compilo e instalo:


emerge paquete


Otras formas de instalando paquetes

Podemos saltarnos la parte de agregar paquetes a los archivos package.use, package.keyword, emergeando de las siguientes formas respectivamentes:

USE="gnome -kde" emerge paquete



ACCEPT_KEYWORDS="~x86" emerge paquete



emerge =categoria/paquete-version


Tengan en claro que esta formas son correctas pero que al actualizar el sistema estas no son tomadas, por ejemplo, si instalo un paquete inestable al momento de actualizar todo el sistema, emerge me va a instalar la versión estable del paquete. Lo mismo pasa con las uses, cuando actualize el sistema o reemergee sin especificar nada tomará las uses por defecto en make.conf

Desinstalando paquetes


emerge -C paquete ## -C desinstalar
emerge depclean ## Elimina dependencias rotas
revdep-rebuild ## Arregla librerias rotas


Cuidado con usar depclean, antes de desinstalar dependencias "según inservibles" te manda un listado, verifica que no este ningún paquete importante que puedan corromper el sistema..

Ver dependencias de paquetes

Hay muchas herramientas disponibles en el paquete gentookit, una de ellas es el poder ver las dependencias de las que depende un paquete, por ejemplo para el apache:


UnderHouse ~ # equery depends apache
[ Searching for packages depending on apache... ]
dev-util/subversion-1.3.2-r1
dev-lang/php-5.1.4-r4


Útil al momento de desinstalar paquetes

Nota: Solo disponible para paquetes ya instalados en el sistema :P

Para mirar todos los archivos que componen el paquete apache:


UnderHouse ~ # equery files apache

/usr/share/man/man8
/usr/share/man/man8/ab2.8.gz
/usr/share/man/man8/apache2.8.gz
/usr/share/man/man8/apache2ctl.8.gz
/usr/share/man/man8/apxs2.8.gz
/usr/share/man/man8/logresolve2.8.gz
/usr/share/man/man8/rotatelogs2.8.gz
/usr/share/man/man8/suexec2.8.gz
/var
/var/cache
/var/cache/apache2
/var/cache/apache2/.keep
/var/lib
/var/lib/dav
/var/lib/dav/.keep
/var/log
/var/log/apache2
/var/log/apache2/.keep
/var/www


Más usos de equery:

Usage: equery <global-opts> command <local-opts>
where <global-opts> is one of
-q, --quiet - minimal output
-C, --nocolor - turn off colours
-h, --help - this help screen
-V, --version - display version info
-N, --no-pipe - turn off pipe detection
where command(short) is one of
belongs(b) <local-opts> files... - list all packages owning files...
changes(c) - not implemented yet
check(k) pkgspec - check MD5sums and timestamps of pkgspec's files
depends(d) <local-opts> pkgspec - list all direct dependencies matching pkgspec
depgraph(g) <local-opts> pkgspec - display a dependency tree for pkgspec
files(f) <local-opts> pkgspec - list files owned by pkgspec
glsa(a) - not implemented yet
hasuse(h) <local-opts> useflag - list all packages with useflag
list(l) <local-opts> pkgspec - list all packages matching pkgspec
size(s) <local-opts> pkgspec - print size of files contained in package pkgspec stats(t)
- not implemented yet
uses(u) <local-opts> pkgspec - display USE flags for pkgspec
which(w) pkgspec - print full path to ebuild for package pkgspec


Actualizando todo el sistema

La manera más recomendable es hacerlo de la siguiente forma:

emerge --sync
emerge -uDav --newuse world

Opciones:

-u Actualizar
-D Actualiza dependencias
-av Pregunta antes de actualizar e información extra
--newuse Verifica si hay uses nuevas y si las tenemos especificadas las toma en cuenta..
world XDDDDDDDDD :P

Archivos de configuración nuevos

Cada vez que actualizamos servicios posiblemente nos tire un mensaje que necesitams ejecutar etc-update para actualizar archivos de configuración. Algo similar a esto:


Por favor, seleccione el fichero a editar introduciendo el número correspondiente.
(-1 para salir) (-3 para auto-combinar todos los ficheros restantes)
(-5 para auto-combinar SIN usar 'mv -i'):


Yo siempre recomiendo ver primero los archivos, una vez que te muestros los archivos y las lineas agregadas (++) o quitadas (--) puede decirir si dejarlo como estaba o poner la nueva configuración. Las opciones son:


1) Reemplazar el original con la actualización
2) Borrar la actualización, manteniendo el original inalterado
3) Combinar interactivamente el original y la actualización
4) Mostrar de nuevo las diferencias


Servicos/Demonios

Nomenclatura:

Runlevels: boot default
[] - Opcional
< > - Obligatorio


Para mirar los servicios encendidos:

rc-update -s

Para mirar todos los servicios disponibles:

rc-update -s -v [runlevel]

Para buscar un servicio

rc-update -s -v [runlevel] | grep <servicio>

Para agregar un servicio al inicio del sistema

rc-update add <servicio> <runlevel>

Para quitar un servicio del sistema

rc-update del <servicio> <runlevel>

[b]Script para el clásico: service <servicio> <acción>[/b]


#!/bin/bash

/etc/init.d/$1 $2


Ahora ya podemos usar: service apache start

En lugar de: /etc/init.d/<servicio> start


Archivos de configuración de Servicios

Los archivos de configuración de los demonios del sistema se encuentra en /etc/conf.d/

Perfiles/Actualización de Gcc, Python, Java y Similares

Nomenclatura:

* - En uso

Todos estos paquetes tiene una herramienta para poder usar alguna versión en especifico. Por ejemplo, con gcc podemos ver los perfiles disponibles con: gcc-config -l


[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-3.3.6-hardenednopie
[3] i686-pc-linux-gnu-3.3.6-hardenednopiessp
[4] i686-pc-linux-gnu-3.3.6-hardenednossp
[5] i686-pc-linux-gnu-3.3.6-vanilla
[6] i686-pc-linux-gnu-3.4.6
[7] i686-pc-linux-gnu-3.4.6-hardenednopie
[8] i686-pc-linux-gnu-3.4.6-hardenednopiessp
[9] i686-pc-linux-gnu-3.4.6-hardenednossp
[10] i686-pc-linux-gnu-3.4.6-vanilla *


Para usar alguna versión especifico necesitamos seleccionarlo de la siguiente manera:

gcc-config <num de perfil> && source /etc/profile

Para java:

java-config -L ## Para mirar las maquinas virtuales disponibles y la que usamos actualmente


[sun-jdk-1.4.2.10] "Sun JDK 1.4.2.10" (/etc/env.d/java/20sun-jdk-1.4.2.10) *
[blackdown-jdk-1.4.2.03] "Blackdown JDK 1.4.2.03" (/etc/env.d/java/20blackdown-jdk-1.4.2.03)


Para cambiar de versión:

java-config -S argument --set-system-vm=blackdown-jdk-1.4.2.03

Ahora para python tenemos: python-updater y python-config

Variables de entorno (PATH)

Estas configuraciones las encontramos en /etc/env.d
Una pequeña descripción de las variables:

PATH Esta variable contiene una lista de directorios separados
por ":" en la cual el sistema buscará los archivos ejecutables.
Al introducir el nombre de un ejecutable (como ls, rc-update o emerge) que no
se encuentre en un de los directorios listados, el sistema no lo encontrará,
(a menos que se introduzca la ruta completa, por ejemplo: /bin/ls).
ROOTPATH Esta variable tiene la misma función que PATH, pero únicamente
contiene los directorios que el sistema debe revisar cuando el usuario root
introduce un comando.
LDPATH Esta variable contiene una lista de directorios separados por
":" en la cual el enlazador dinámico busca para encontrar una librería.
MANPATH Esta variable contiene una lista de directorios separados por
":" en la cual el comando man busca las páginas de manual.
INFODIR Esta variable contiene una lista de directorios separados por
":" en la cual el comando info busca las páginas info.
PAGER Esta variable contiene la ruta hacia el programa utilizado para
mostrar el contenido de los ficheros (como less o more).
EDITOR Esta variable contiene la ruta hacia el programa utilizado para
modificar el contenido de los archivos (como nano o vi).
KDEDIRS Esta variable contiene una lista de directorios separados por
":" los cuales contienen material específico de KDE.
CLASSPATH Esta variable contiene una lista de directorios separados por
":" los cuales contienen las clases de Java.
CONFIG_PROTECT Esta variable una lista de directorios separados por espacio
los cuales deben ser protegidos por Portage durante las actualizaciones.
CONFIG_PROTECT_MASK Esta variable una lista de directorios separados
por espacio los cuales no deben ser protegidos por Portage durante las actualizaciones.


Cada vez que actualizemos estas variables es importante hacer: env-update

Problemas compilando

Mirar: http://www.gentoo-es.org/node/363

Nota: Si utilizan el perfil de gcc realizado por gentoo, siempre traten rebajando la versión o utilizando el perfil por default titulado como vanilla..

Bugs de gentoo para reportar y revisar: http://bugs.gentoo.org && http://bugs.gentoo.org/query.cgi

Links que considero importantes

Foros en español: http://forums.gentoo.org/viewforum.php?f=30
Repositorio web de gentoo: http://packages.gentoo.org/
Recursos de documentación: http://www.gentoo.org/doc/es/list.xml
Gentoo Wiki: http://gentoo-wiki.com/Main_Page
Gentoo y portatiles Toshiba: http://web.gentrinoo.org/
Boletín Semana de Gentoo en español: http://www.gentoo.org/news/es/gwn/gwn.xml
Gentoo español: http://www.gentoo-es.org/

powered by performancing firefox