Desinstalando kernels obsoletos

junio 30, 2007

El Kernel es el núcleo de cualquier distribución Linux, que se actualiza periódicamente, pero quedándose en la reserva el anterior. Cuando encendemos el ordenador, en el GRUB podemos arrancar Ubuntu con la última versión del Kernel u otro anterior (esto es así por seguridad; si el nuevo falla o algún programa no nos funciona con éste, podemos volver a la anterior fácilmente).
Sin embargo, esto ocupa bastante espacio en el disco duro, y está bien guardar la penúltima versión, pero no las últimas 5…

Primero verificamos qué versiones tenemos instaladas:
sudo dpkg –get-selections | egrep linux-image

Nos responderá algo así:
linux-image-2.6.17-10-generic install
linux-image-2.6.17-11-generic install
linux-image-2.6.20-15-generic install
linux-image-2.6.20-16-generic install
linux-image-generic install

Finalmente, se desinstalan las versiones que consideremos oportunas:
sudo apt-get remove –purge linux-image-2.6.17-10-generic

Cuando desinstalamos una gran cantidad de kernels de golpe, se nota bastante el espacio que queda libre en el disco ya que cada kernel ocupa algo más de 100 Mb (y a la larga eso se nota).


El comando man

junio 24, 2007

No se si a todos os ha pasado, pero cuando empezé a manejar mi Ubuntu tenía miedo de utilizar la consola. Para empezar no conocía practicamente ningún comando y los pocos que no ignoraba me aterraba utilizarlos por miedo a “romper” algo o no saber sacarles todo el jugo. Pero un día un amigo (que me ha ayudado mucho a la hora de empezar con Linux) me descubrió el comando man. Este comando proviene de la palabra manual, y se podría decir que es una especie de manual de comandos. Su utilización es realmente sencilla escribes man seguido del comando que quieras conocer en profundidad; utilizaremos el típico ejemplo de:

user@makina:~$ man man

El resultado obtenido es este:

MAN(1) Útiles de Páginas de Manual MAN(1)

 

NOMBRE
man – una interfaz de los manuales de referencia electrónicos

SINOPSIS
man [-c|-w|-tZT dispositivo] [-adhu7V] [-m sistema[,…]] [-L locale]
[-p cadena] [-M ruta] [-P paginador] [-r prompt] [-S lista] [-e exten‐
sion] [[sección] pagina …] …
man -l [-7] [-tZT dispositivo] [-p cadena] [-P paginador] [-r prompt]
fichero …
man -k [-M ruta] palabra_clave …
man -f [-M ruta] pagina …

DESCRIPCIÓN
man es el paginador del manual del sistema. Las páginas usadas como
argumentos al ejecutar man suelen ser normalmente nombres de programas,
útiles o funciones. La página de manual associada con cada uno de esos
argumentos es buscada y presentada. Si la llamada da también la
sección, man buscará sólo en dicha sección del manual. Normalmente, la
búsqueda se lleva a cabo en todas las secciones de manual disponibles
según un orden predeterminado, y sólo se presenta la primera página
encontrada, incluso si esa página se encuentra en varias secciones.

La siguiente tabla muestra los números de sección del manual y los
tipos de […]

Otra gran utilidad de este comando es la posibilidad de buscar comandos nuevos, si en la consola introducimos man -k seguido de la palabra a buscar nos da como resultados todos los comandos que contengan dicha palabra (tanto en el nombre como en el manual). Un ejemplo muy típico es el de:

user@makina:~$ man -k date

Que nos muestra en la terminal lo siguiente:

822-date (1) – Print date and time in RFC822 format
cal (1) – displays a calendar and the date of easter
catman (8) – create or update the pre-formatted manual pages
ccs_tool (8) – The tool used to make online updates of CCS config files.
chgpasswd (8) – update group passwords in batch mode
chpasswd (8) – update passwords in batch mode
cups-genppdupdate (8) [cups-genppdupdate.5.0] – update CUPS+Gutenprint PPD files
cups-genppdupdate.5.0 (8) – update CUPS+Gutenprint PPD files
date (1) – print or set the system date and time
Date::Format (3pm) – Date formating subroutines
Date::Manip (3pm) – date manipulation routines
Date::Parse (3pm) – Parse date strings into time values
ddate (1) – converts Gregorian dates to Discordian dates
debtags-updatecontrol (1) – Update Debtags information in control files
desktop-file-validate (1) – validate a .desktop file
Gnome2::DateEdit (3pm) – (desconocido)
gtk-update-icon-cache (1) – Icon theme caching utility
HTTP::Date (3pm) – date conversion routines
install-info (8) – create or update entry in Info directory
IO::AtomicFile (3pm) – write a file which is updated atomically
kconf_update (1) – KDE Tool for updating user configuration files
kded (1) – triggers Sycoca database updates when needed
mandb (8) – create or update the manual page index caches
mysql_find_rows (1) – MySQL shell skript for searching in update logs.
ncal (1) – displays a calendar and the date of easter
Net::DNS::Update (3pm) – Create a DNS update packet
newusers (8) – update and create new users in batch
nsupdate (8) – Dynamic DNS update utility

[…]

Espero que este comando le sirva a alguién, como ya he dicho a mí me ayudó bastante en mis primeros contactos con la terminal. Y aún sigo utilizandolo bastante, de hecho aparece el la cuarta posición de mis diez comandos mas usados:

96 cd
92 ls
72 sudo
40 man
39 ps
16 kate
15 g++
11 exit
11 cal
10 aptitude


Desarrollo de drivers para Linux

junio 2, 2007

Este artículo salido de lapastillaroja.net, me parecío bastante ineresante e importante, así que copio y pego directamente:

Efectivamente señoras y señores. Cuando no hay manera de encontrar los “drivers” para ese dispositivo en nuestro linux, hasta ahora la solución era: “Haztelos tú mismo”. Ahora hay otra opción.

Claro, ese háztelo, suponía bucear largos ratos entre los ejemplos del Linux Device Driver Kit, o entre el árbol de fuentes del kernel, buscando el ejemplo más similar al tuyo.

A partir de ya, la Comunidad del Kernel del Linux, ofrece a todas las empresas desarrollarles los drivers para sus dispositivos de forma gratuita. Esto es lo que anuncia Greg Kroah-Hartman en su blog.

Lo único que se pide es el contacto de un ingeniero para poder responder a las preguntas de los desarrolladores de la comunidad que se encargen de tu controlador.

Citando de dicha entrada:

A cambio recibirás un controlador integrado con el kernel de Linux. Se distribuirá con el kernel y seguirá funcionando con los cambios que se hagan al API, y se ejecutará correctamente en las diferentes CPUs en las que funciona actualmente Linux, que es el sistema operativo que corre en más procesadores de la historia de la computación.

Respecto al soporte, habrá soporte directo a través del correo electrónico de los desarrolladores que lo han hecho.

Así tus programadores podrán dedicar más tiempo a desarrollar “drivers” para los demás sistemas operativos, y podrás poner en tu producto “Soportado en Linux”.

Así se las ponían a Felipe II. A veces aplica más dar peces que enseñar a pescar…


Linux Media Center con MythTV

junio 1, 2007

No he tenido mucho tiempo ultimamente debido a problemas personales que me han impedido ir colgando post en el blog. Pero tal y como os dije hos traigo un ragalito por mis mil primeras visitas :P.

No se si conocereis el programa MythTV, se trata de un Media Center Open Source que no tiene nada que envidiar al de Microsoft.

Navegando por javipas.ciom, he encontrado un tutorial donde se explica de una manera bastante sencilla como instalar y configurar este Media Center. Una vez configurado nos explica como sintonizar canales de TV, desde canales libres a canales codificados (como Digital+), pasando por los canales de satelite. El tutorial a sido realizado sobre una maquina con las siguientes caracteristicas:
-Placa ASUS con chipset RD580
-Athlon 4800+
-2 Gbytes de memoria DDR-400
-Una partición de 10 Gbytes para Ubuntu Feisty Fawn 7.04 y otra para swap de 2 Gbytes -GeForce 6600 GT
-Pinnacle PCTV Sat CI

La guía de artículos, que esta dividida en páginas y subpáginas, es la siguiente:

MythTV, Ubuntu… y Digital+
1. Instala los paquetes necesarios
2. Configuración General
3. Capturadoras
4. Fuentes de vídeo
5. Conexiones
6. Sintonización de canales
7. Televisión por satélite en MythTV
8. Viendo los canales codificados en MythTV

Espero que os interese, la verdad es que a mi me llamo bastante la atención (sobre todo el hecho de poder ver los canales codificados de manera gratuita). Mi intención actual es conseguir un ordenador medianamente decente, sobre el que montar un Centro Multimedia (y que a la vez sirva de “servidor” para una red interna) siguiendo este tutorial, y asi acercar a Linux a mis compañeros de piso.


[Nuevo] Documentación para Linux

mayo 23, 2007

Hos comunico a todos los que visiteis mi blog de manera medianamente regular, que he abierto una nueva sección llamada Documentación Linux. Allí he posteado, y serguire haciendolo con la mayor regularidad posible, una colección interesante de manuales, tutoriales, etc. que he ido recopilando por la web. La mayoria de los documentos que allí se hayan (más de la mitad) provienen de TLDP-ES, también encontramos muchos otros salidos de otras fuentes.

Una vez dicho esto solo quisiera detallar que agradeceré mucho vuestra colaboración, siempre que encontreis o realiceis un documento por el estilo (aunque no tenga nada que ver con Linux, me basta con que trade de informática) y os parezca conveniente compartirlo con el resto del mundo hacedmelo saber, estaré encantado de recibir todas vuestra propuestas (enviadme un mail o poned un comentario). Muchas gracias por vuestros segundos de atención.


Famelix 2.0 “Hasta la Vista”

mayo 22, 2007

Los que tengan la suerte de poder acceder a su único Mirror podrán disfrutar de la versión Beta de Famelix 2.0 “Hasta la Vista”, la distribución GNU/Linux hecha en universidad FAMEG de Guaramirim en Brasil. Famelix está creada para ser un “clon virtual” de Windows de tal manera que en la migración desde un sistema operativo propietario a un sistema operativo libre, se pueda aprovechar los conocimientos ya adquiridos por los usuarios. Incluye muchas mejoras y adiciones artísticas muy atractivas para su nueva versión 2.0, además de ofrecer un soporte total para el idioma castellano gracias al trabajo de la Universidad Austral de Chile.

 Articulo original: VivaLinux!.com


Conceptos básicos GNU/Linux

mayo 20, 2007

En esta sección Vamos a tratar algunas cosas que tenemos que tener claras antes de instalar y comenzar a utilizar Linux. No tienes que aprenderlas de memoria, simplemente lee esto con atención y estarás en disposición de continuar aprendiendo sobre Linux.

El arranque de Linux

Veamos qué es lo que pasa cuando nuestra máquina arranca y tenemos que elegir un sistema operativo. Cuando la BIOS termina su chequeo, empieza a buscar dónde hay software para ser ejecutado. Si los CDROMs no son de arranque, pasa al primer disco duro por defecto. En el principio del disco duro o MBR (acuérdate, lo vas a ir más de dos veces con Linux) o en una partición queda instalado con Linux un cargador de arranque. Los dos más usados son LILO (LInux LOader) y GRUB. Nada más arrancar se ejecuta este cargador cuya misión permitir al usuario elegir sistema operativo de los que tenemos en nuestro ordenador quiere utilizar. Al instalarse, LILO (o GRUB) habrán sido configurados para poder arrancar cualquier sistema operativo que tengamos instalado, reconoce la mayoría de los existentes. Seleccionamos nuestra versión de Linux y el cargador da paso al Kernel de Linux que empieza a hacer sus chequeos y a montar (hacer utilizable) el sistema de archivos.

El sistema de archivos

El sistema de archivos es más o menos “la forma de escribir los datos en el disco duro”. El sistema de archivos nativo de Linux es el EXT2. Ahora proliferan otros sistemas de archivos con journalising (si se arranca sin haber cerrado el sistema, no necesitan hacer un chequeo sino que recuperan automáticamente su último estado), los más conocidos son EXT3, ReiserFS y XFS.

La estructura de directorios que sigue Linux es parecida a la de cualquier UNIX. No tenemos una “unidad” para cada unidad física de disco o partición como en Windows, sino que todos los discos duros o de red se montan bajo un sistema de directorios en árbol, y algunos de esos directorios enlazan con estas unidades físicas de disco. MUY IMPORTANTE: Las barras en Linux al igual que en cualquier UNIX son inclinadas hacia la derecha, como se puede ver más abajo (ese es el motivo de que en internet sean inclinadas hacia la derecha ya que nació bajo UNIX y en Linux podremos aprovechar todas sus ventajas). Expliquemos esto más a fondo, incluyendo los directorios principales:

Tabla 1.1. Estructura de directorios en Linux

Directorio Descripción
/ Es la raíz del sistema de directorios. Aquí se monta la partición principal Linux EXT.
/etc Contiene los archivos de configuración de la mayoría de los programas.
/home Contiene los archivos personales de los usuarios.
/bin Contiene comandos básicos y muchos programas.
/dev Contiene archivos simbólicos que representan partes del hardware, tales como discos duros, memoria…
/mnt Contiene subdirectorios donde se montan (se enlaza con) otras particiones de disco duro, CDROMs, etc.
/tmp Ficheros temporales o de recursos de programas.
/usr Programas y librerías instalados con la distribución
/usr/local Programas y librerías instalados por el administrador
/sbin Comandos administrativos
/lib Librerías varias y módulos (“trozos”) del kernel
/var Datos varios como archivos de log (registro de actividad) de programas, bases de datos, contenidos del servidor web, copias de seguridad…
/proc Información temporal sobre los procesos del sistema (explicaremos esto más en profundidad posteriormente).

Nombres de archivos en Linux

Los nombres de archivos en Linux (como en todos los UNIX) distinguen mayúsculas de minúsculas, esto es, son “case sensitive”. Los archivos README, readme, REadme y rEadme por ejemplo son archivos distintos y por lo tanto al ser nombres distintos pueden estar en el mismo directorio.

En Linux los archivos no tienen por qué tener una extensión. La suelen tener a modo orientativo, pero no es en absoluto necesario. Linux sabe qué contiene cada archivo independientemente de cuál sea su extensión. Por comodidad, podremos llamar a todos nuestros archivos de texto con la extensión .texto, o a todos nuestros documentos con la extensión .documento, de esta manera, podremos luego agruparlos más fácilmente.

Los ficheros y directorios ocultos en Linux comienzan su nombre por un punto (.)

Los nombres de archivos o directorios pueden ser muy largos, de más de 200 caracteres, lo cual nos da bastante flexibilidad para asociar el nombre de un archivo a lo que contiene. No obstante, hay ciertos caracteres que nunca se deberían utilizar a la hora de nombrar un archivo. Uno de ellos es el espacio, nunca llamaremos a un fichero con un nombre que contenga un espacio. Tampoco son recomendados otros caracteres raros como signos de puntuación (a excepción del punto), acentos o la ñ. En algunos casos Linux ni siquiera nos permitirá usarlos. Los recomendables son las letras A-Z, a-z, los números (0-9), el punto, el guión (-) y el guión bajo (_) para nombrar un archivo. Los acentos y la ñ tampoco se recomiendan.

El software adicional para GNU/Linux

Primero, hacer notar que LINUX NO ES WINDOWS. El software de Windows no funcionará en Linux, hay proyectos de emulación al respecto, que no recomendamos.

El software para Linux lo podemos encontrar de dos formas: en un paquete binario o en un paquete con su código fuente.

Los paquetes binarios

Existen varios tipos de paquetes binarios. Todos tienen una característica en común, y es que contienen código de máquina, no código fuente, por eso cada tipo de procesador necesita su propia versión de cada paquete. Al haber varias distribuciones de Linux existen varios tipos de paquetes binarios, habiendo varias distribuciones que comparten sistema de paquetes. Los más comunes son:

  • Los paquetes RPM: Los usan las distribuciones RedHat, Caldera, Madrake, SuSE y TurboLinux entre otras. Su uso está muy extendido y es posible instalar este tipo de paquetes mediante la aplicación rpm. El nombre de los paquetes rpm es del tipo nombredelpaquete_version_plataforma.rpm
  • Los paquetes Debian (deb): Los usa la distribución Debian y sus derivadas. Es un sistema de paquetes muy potente y que facilita en gran medida la actualización del sistema, además de resolver las dependencias (qué paquetes necesitan a qué otros) y satisfacerlas instalando todos los paquetes necesarios automáticamente. La aplicaciones que gestionan este sistema de paquetes se llaman apt y dpkg. Los paquetes Debian se suelen nombrar de la forma nombredelpaquete_version_plataforma.deb
  • Los paquetes tgz de Slackware los usa la distribución del mismo nombre, y siguen los principios de los dos anteriores, son paquetes binarios aunque tienen una estructura distinta.

Los paquetes de código fuente

Estos paquetes contienen los archivos que salen del ordenador del programador o programadores, lo que quiere decir que ya hay que aportar algo de nuestra parte para utilizar los programas que contienen. El proceso de instalación de este tipo de paquetes implica también una COMPILACIÓN, concepto que vas a escuchar más de tres veces. Una compilación nos permite que el programa que vamos a instalar se optimice totalmente para el tipo de componentes que tenemos en nuestro ordenador y el tipo de versión de GNU/Linux. Este programa que hemos compilado correrá más rápido que si nos hubiéramos limitado a instalar un paquete binario normal. La compilación de un programa requiere de unos COMPILADORES, que son unos programas que junto con unas LIBRERíAS de lenguajes de programación, consiguen transformar el código fuente en lenguaje de máquina. Trataremos más adelante cómo instalar software.

Son también de amplio uso los Source RPM, que son paquetes RPM pero que en vez de ser binarios, llevan código fuente. Mediante la instalación de este tipo de paquetes, lo que hacemos es crear un nuevo paquete optimizado (compilar un nuevo paquete) para nuestra máquina. Después instalamos este último.

Meta-Paquetes

Conocemos por meta-paquete a aquellos paquetes en los cuales no hay código fuente, o binarios, sino reglas sobre CÓMO construir e instalar dicho paquete. Estos paquetes los usan distribuciones como Gentoo Linux (http://www.gentoo.org), Linux From Scratch (http://www.linuxfromscratch.com) y algunos otros sistemas operativos como FreeBSD (http://www.freebsd.org). La ventaja que tienen estos paquetes es que son muy sencillos de generar, los binarios quedan optimizados para la máquina que los va a ejecutar, pero como todo, esto tiene una contrapartida…. las distribuciones que los usan pueden ser más complicadas de manejar y se necesitan conexiones muy rápidas y procesadores potentes si no se quiere estar mucho tiempo compilando los paquetes.

Los usuarios y los permisos de archivos

Linux es un sistema operativo multiusuario. Cada usuario generalmente tiene su carpeta de usuario en /home/usuario. Por defecto sólo puede escribir, modificar y borrar archivos dentro de esta carpeta. Ningún otro usuario (excepto root) puede acceder a los archivos que hay en este directorio, ni si quiera puede ver cuáles son. Este usuario -por defecto- puede leer en el resto de las carpetas que hay en el sistema de archivos excepto en la de root y las de otros usuarios. Todos los programas recuerdan las preferencias de cada usuario, e incluso un usuario puede instalar un programa sin que los otros usuarios tengan acceso a él (vale sí, root si tendrá, lo sé, lo sabemos :-); aunque instalando los usuarios tienen muchas limitaciones como veremos después. Un usuario no puede causar por este motivo daño al sistema ni cambiar su configuración de ninguna forma. ¿Y quién es ese tal root? En cualquier sistema UNIX, root es “el que todo lo puede”. Es la excepción que confirma la regla, es el superusuario todopoderoso de estos sistemas. Cuando hagas login como root en una máquina GNU/Linux, siente el poder bajo tus teclas. Puedes hacer todo lo que se te pase por la cabeza. Pero ojo, tienes poder para lo bueno y para lo malo. Tienes acceso a todo el sistema, pero una equivocación… sería fatal. Puedes cargarte el sistema Linux y los preciados datos y configuraciones que tengas en él. Por esto, para tareas normales SIEMPRE entraremos al sistema como un usuario normal por los riesgos que se corren trabajando como root. Además NUNCA usaremos Internet como root. Incluso algunos programas no permiten ser ejecutados por root por motivos de seguridad. Como ya habrás adivinado, la contraseña de root se la guarda uno en la cabeza y se asegura de que no se le olvida, y por supuesto se preocupa uno de que nadie pueda acceder a ella en ningún fichero o de que no la ven cuando la escribimos. Si se cree que la han podido adivinar o están cerca, se cambia. Cuanto más larga, tediosa y sin sentido sea esta contraseña, más seguro estará nuestro sistema. Recuerda que tu máquina Linux es tan segura como segura sea tu contraseña de root.

¿Qué son los permisos? Todos y cada uno de los archivos y directorios del árbol jerárquico que monta nuestro sistema Linux tienen permisos. Estos permisos dicen, para cada usuario del sistema, si puede ejecutarlo, si puede ver su contenido o si puede borrarlo o modificarlo. Del mismo modo, cada elemento del sistema de archivos tiene un dueño. Por defecto, este dueño del elemento (tanto directorio como archivo) tiene acceso total a él y puede realizar todas las acciones posibles permitidas. El resto de usuarios pueden leer y ejecutar este elemento por defecto aunque todo esto se puede cambiar para cada uno de los elementos. Todos los archivos de las carpetas de sistema y configuración suelen tener a root como propietario. Los de la carpeta personal de cada usuario tienen a ese usuario como propietario, pero el resto de usuarios normales no tienen ningún permiso sobre estos elementos, y lo mismo ocurre con la carpeta de root (que se encuentra en la raíz, en /root).

El arranque de Linux II

Cuando el kernel ya ha montado el sistema de archivos, comienzan a inicializarse algunos procesos llamados “daemons” (demonios). Cada uno de estos demonios se inicia cuando el sistema arranca y durante su vida va acontrolar un proceso determinado, y va a permanecer en segundo plano (transparente para el usuario), no vamos a notar que se está ejecutando a menos que pidamos información a este proceso, lo detengamos o lo reiniciemos. Algunos de estos demonios son, por ejemplo, el servidor web, el servidor de correo, el cortafuegos, el servidor de nombres DNS… y muchos otros que gestionan varias tareas, en su mayoría servicios de servidor de red para servir de host a otras máquinas. Cuando todos esos demonios se hayan cargado, aparecerá ante nosotros una línea de texto de login (autentificación en un sistema) o bien una ventana de login gráfico. Vamos a empezar entrando como usuario normal primero.

Nombramiento de dispositivos y particiones

Debemos saber de qué manera nombra Linux a los discos duros que tenemos conectados a nuestra máquina y sobre todo a sus particiones. Todos los discos duros (IDE) comienzan su nombre como hd. Un ejemplo de nombre completo de disco duro sería hda y de la primera partición de ese disco duro sería hda1.

La ‘a’ significa que ese disco duro está conecatdo al IDE1 como maestro. Si fuera esclavo tendría la ‘b’, y si estuviera conectado al IDE2 como maestro, la ‘c’, y si estuviera al IDE2 como esclavo, la ‘d’.

Articulo Original: ZonaSiete.org