1. Archlinux
Comunidad Archlinux Chile
A simple, lightweight linux distribution.
Abril, 2009
2. ¿Qu´ es Archlinux?
e
Archlinux es una distribuci´n de linux que apunta a ser:
o
Liviana
Simple
Optimizada
Flexible
“La meta de Arch no es ser grande. La meta es estar bien hecha”
Creada por Judd Vinet a finales del 2001
Luego mantenida por Aaron Griffin
Basada en la ideas mostradas en Crux Linux y sistemas BSD
2 of 61
3. Caracter´
ısticas
Enfocada para usuarios de nivel intermedio o avanzados.
Filosofia KISS
Optimizada para i686 y portada a i585, x86 64 y PPC.
Configuraci´n cr´
o ıtica centralizada /etc/rc.conf.
Actualizaciones f´ciles y constantes. Rolling Release
a
Comunidad activa y con iniciativa. (AUR)
Paquetes minimalistas y f´ciles de crear o modificar. (PKGBUILD)
a
Simple.
Abierto.
Centrado en el Usuario
Libre.
3 of 61
4. Filosofia
KISS ”Keep It Simple Stupid”
5 conceptos
Simpleza: Ligera estructura base sin agregados innecesarios,
modificaciones o complicaciones, permitiendo modelar el sistema
totalmente. Elegante y minimalista
Prioridad C´digo: Elegancia del dise˜o sobre parches innecesarios.
o n
Los parches se mantienen al m´ ınimo. Solo lo necesario
Abierto: Solo herramientas simples y de c´digo abierto. Se eliminan
o
los limites entre el usuario y el sistema.
Centrado al Usuario: ArchLinux se fija y toma en cuenta a los
usuarios, d´ndole total y solo total control sobre le sistema.
a
Libre: Al mantener el sistema sencillo, se entrega total libertad de
tomar cualquier decision y hacer cualquier cosa sobre el sistema.
”Arch Linux es lo que TU hiciste”
4 of 61
5. Estructura del Sistema (1)
Basada en archivos de texto plano”
Boot: Basado en bash scripts para init que son llamados desde
/etc/inittab(rc.sysinit rc.single rc.multi....)
Se leen las configuraciones de /etc/rc.conf
Se utilizan las funciones de /etc/rc.d/functions
Se muestra el mensaje de bienvenido
Montaje de los sistemas de ficheros virtuales
Comienza el registro de mensajes (minilogd y dmesg)
Se configura el reloj de hardware
Comienza Udev
Se inician las interfaces de red (loopback)
Se cargan los modulos de /etc/rc.conf
Se revisa el sistema de ficheros
Se montan las particiones locales (definidos en /etc/fstab)
Se activa swap y el nombre de host.
5 of 61
6. Estructura del Sistema (2)
Configuracion de LOCALE, consola y el mapeo de teclado
Se escribe la salida a /var/log/dmesg.log
Se decide (basado en el runlevel) si se inicia en modo singl (rc.single)
o multiusuario (rc.multi)
Se ejecutan las tareas definidas en rc.local
Se muestra la consola de login (o en su defecto el login manager
definido ej: GDM)
Utilizamos nuestro sistema.
6 of 61
7. rc.conf
#S e c c i o n b a s e
LOCALE= ’ ’ e s E S . u t f 8 ’ ’
HARDWARECLOCK= ’ ’UTC’ ’
USEDIRECTISA = ’ ’ no ’ ’
TIMEZONE= ’ ’ C h i l e / C o n t i n e n t a l ’ ’
KEYMAP= ’ ’ l a−l a t i n 1 ’ ’
CONSOLEFONT= ’ ’ t e r −v16b ’ ’
CONSOLEMAP=
USECOLOR= ’ ’ y e s ’ ’
#S e c c i o n Modulos ( ! = N i e g a )
MOD AUTOLOAD= ’ ’ y e s ’ ’
MODULES=()
#S e c c i o n m i s c
USELVM= ’ ’ no ’ ’
#S e c c i o n Network
HOSTNAME= ’ ’ a r c h l i n u x ’ ’
e t h 0 = ’ ’ dhcp ’ ’
w l a n 0 = ’ ’ dhcp ’ ’
INTERFACES=( e t h 0 ! w l a n 0 )
g a t e w a y = ’ ’ d e f a u l t gw 1 9 2 . 1 6 8 . 0 . 1 ’ ’
ROUTES=(! g a t e w a y )
#Demonios ( ! = Niega , @ = E j e c u t a en b a c k g r o u n d )
DAEMONS=( s y s l o g −ng h a l ! n e t w o r k @crond @ a l s a @wicd p o s t f i x )
7 of 61
8. Pacman (1)
Administrador de paquetes de Archlinux
PACkage MANager.
Entrega la posibilidad de utilizar paquetes binarios y fuentes.
Escrito en C.
Posee una lista negra y de prioridad de paquetes.
Trabaja con paquetes del formato: paquete.pkg.tar.gz
Combina ideas de Gentoo, Debian y Slackware.
Su configuraci´n se basa en el archivo /etc/pacman.conf
o
Permite una facil creaci´n de nuevos paquetes por parte de los
o
usuarios (makepkg, ABS, AUR).
Generados a partir de un PKGBUILD
8 of 61
9. Pacman (2)
Ofrece las carateristicas de las mayoria de los
gestores de paquetes
Agregar pacman -S pkg
Agregar desde paquete local pacman -U
paquete.pkg.tar.gz
Eliminar pacman -Rd pkg
Buscar pacman -Ss pkg
Mostrar informaci´n pacman -Qi pkg
o
Solucionar dependencias
Descarga de paquetes sin instalar
9 of 61
10. Repositorios (1)
core
Nucleo del sistema (kernel, pacman, glib,etc).
Uno de cada.
Incluido en ISO releases.
extra
Ambientes graficos (GNOME,KDE,XFCE,etc).
Herramientas de desarrollo.
Editores.
Etc.
unstable
Software experimental e inestable
testing
Paquetes candidatos para core, extra y unstable.
Pueden existir colisiones con otros paquetes de los otros repositorios
10 of 61
11. Repositorios (2)
release
Es un snapshot del repositorio core. No est´ pensado para uso general
a
Existe por motivos historicos
community
Mantenido por los TU.
Paquetes populares venidos de AUR.
11 of 61
12. PKGBUILD
Archivo que crea las directrices para la creaci´n de un paquete
o
Escrito en bash
# $ I d : PKGBUILD 4756 2008−07−09 2 0 : 0 0 : 5 4 Z a n d y r t r $
# M a i n t a i n e r : Judd V i n e t <j v i n e t @ z e r o f l u x . org>
pkgname=wget
pkgver =1.11.4
p k g r e l =1
p k g d e s c = ’ ’A n e t w o r k u t i l i t y t o r e t r i e v e f i l e s from t h e Web ’ ’
a r c h =( i 6 8 6 x 8 6 6 4 )
u r l = ’ ’ h t t p : / /www . gnu . o r g / s o f t w a r e / wget / wget . html ’ ’
l i c e n s e =( ’GPL3 ’ )
g r o u p s =( ’ b a s e ’ )
d e p e n d s =( ’ g l i b c ’ ’ o p e n s s l ’ )
backup =( ’ e t c / w g e t r c ’ )
s o u r c e =( f t p : / / f t p . gnu . o r g / gnu / $pkgname / $pkgname−$ p k g v e r . t a r . gz )
md5sums =( ’69 e 8 a 7 2 9 6 c 0 e 1 2 c 5 3 b d 9 f f d 7 8 6 4 6 2 e 8 7 ’ )
build () {
cd ${ s r c d i r }/$pkgname−$ p k g v e r
./ configure − −p r e f i x =/ u s r − y s c o n f d i r =/ e t c
−s
make | | r e t u r n 1
make DESTDIR=${ p k g d i r } i n s t a l l
}
12 of 61
13. Arch Build System (ABS)
Muy parecido a los ports de BSD o el snapshot de Portage de
Gentoo
Es un ´rbol de directorios (/var/abs) construido en base a los
a
repositorios
Trabaja con PKGBUILDS
Se sincroniza con el repositorio SVN del proyecto Archlinux
Permite la compilaci´n de cualquier paquete
o
Provee estabilidad, desempe˜o y gran personalizaci´n de los
n o
paquetes.
Posee la capacidad de reconstruir todo el sistema.
Integrado con PACMAN.
13 of 61
14. ArchLinux User Repository (AUR)
Abierto a cualquiera que desea publicar su PKGBUILD.
Los paquetes populares son, por lo general, movidos al repositorio
[community]. (por medio de un sistema de votacion ej. aurvote)
Provee una gran flexibilidad y facilita el flujo de nuevos paquetes
hacia la distribuci´n.
o
Administrado por los Trusted Users:
Encargados de mantener el orden en AUR y [community]
Intermediarios entre paquetes no soportados y community
Propuestos por los usuarios y electos de forma democr´tica por el
a
resto de los TU.
Acceso desde la iterfaz web o desde herramientas como yaourt o
aurbuild
14 of 61
15. Instalaci´n
o
Aqui iba un video xD
Sigamos con screenshots
15 of 61
50. Empaquetando (1)
Simples .tar.gz
Contienen el directorio del paquete con el PKGBUILD y otros
opcionales
Los opcionales son algun .install para pre y post instalacion
Necesitamos el archivo fuente que queremos empaquetar.
Debemos “anotar” los comandos necesarios para la instalacion (los
tipicos configure, make, make install)
Usaremos un PKGBUILD tipo
50 of 61
51. Empaquetando (2)
# $ I d : PKGBUILD 4756 2008−07−09 2 0 : 0 0 : 5 4 Z a n d y r t r $
# M a i n t a i n e r : Judd V i n e t <j v i n e t @ z e r o f l u x . org>
pkgname=
p k g v e r=
p k g r e l=
p k g d e s c=
a r c h =( i 6 8 6 )
u r l=
l i c e n s e =()
g r o u p s =()
d e p e n d s =()
makedepends =()
o p t d e p e n d s =()
backup =()
s o u r c e =()
md5sums=( )
build () {
cd ${ s r c d i r }/$pkgname−$ p k g v e r
./ configure − −p r e f i x =/ u s r − y s c o n f d i r =/ e t c
−s
make | | r e t u r n 1
make DESTDIR=${ p k g d i r } i n s t a l l
}
pkgname: El nombre del paquete.
51 of 61
52. Empaquetando (3)
pkgver: La versi´n del paquete.
o
pkgrel: El n´mero de release del paquete, debe ser modificado
u
cada vez que se le hagan cambios al PKGBUILD.
pkgdesc: Descripci´n del paquete.
o
arch: Arquitectura del paquete.
url: La direcci´n del sitio web del paquete.
o
license: Tipo de licencia del paquete.
groups: El grupo o los grupos a los que el paquete pertence (ej:
gnome, multimedia).
depends: Dependencias del paquete, deben estar instaladas, se
puede usar el signo ¿= para exigir una versi´n.
o
52 of 61
53. Empaquetando (4)
makedepends: Dependencias que se necesitan para construir el
paquete pero que no son necesarias para el funcionamiento del
paquete.
optdepends: Dependencias opcionales para entregar mas
funcionalidades al paquete.
conflicts: Paquetes que pueden causar conflictos con este paquete.
replace: Nombre de paquetes obsoletos que son reemplazados por
´ste. (ej: replaces=(“ethereal”) para wireshark).
e
backup: Listado de archivos que deben ser respaldados.
install: Nombre de los archivos .install que se usar´n para la
a
construcci´n del paquete.
o
source: Listado de archivos necesarios para construir el paquete ,
debe contener la locaci´n del archivo.
o
53 of 61
54. Empaquetando (5)
md5sums:Verificaci´n de sumas md5 de las fuentes. Se puede
o
generar con makepkg -g.
54 of 61
55. Empaquetando
La funcion build()
build () {
cd ${ s r c d i r }/$pkgname−$ p k g v e r
./ configure − −p r e f i x =/ u s r − y s c o n f d i r =/ e t c
−s
make | | r e t u r n 1
make DESTDIR=${ p k g d i r } i n s t a l l
}
Usa comandos shell comunes para compilar el software y crear el
directorio pkg/
Primero ingresa al directorio fuente una vez descomprimido
Dependiendo del paquete, se listan los comandos necesarios para la
compilaci´n e instalaci´n.
o o
Veamos un ejemplo real
55 of 61
56. PKGBUILD gwibber (1)
# C o n t r i b u t o r : Ma rio D a n i c <m a r i o . d a n i c @ g m a i l . com>
# C o n t r i b u t o r : k a s a <b i u t a . j r @ g m a i l . com>
pkgname=g w i b b e r
r e a l n a m e=g w i b b e r
pkgver =1.2.0
b z r e v =339
p k g r e l =1
p k g d e s c = ’ ’ an open s o u r c e m i c r o b l o g g i n g c l i e n t f o r GNOME’ ’
u r l = ’ ’ h t t p s :// launchpad . net / gwibber ’ ’
l i c e n s e = ( ’ ’ GPL2 ’ ’ )
arch =( ’ ’ i686 ’ ’ ’ ’ x86 64 ’ ’ )
d e p e n d s = ( ’ ’ gnome−python−d e s k t o p ’ ’ ’ ’ dbus−python ’ ’ ’ ’ gnome−python ’ ’ ’ ’ python−n o t i f y ’ ’ ’ ’ pyt
makedepends = ( ’ ’ b z r ’ ’ )
p r o v i d e s =(${ r e a l n a m e })
c o n f l i c t s =(${ r e a l n a m e })
options =( ’ ’! l i b t o o l ’ ’ )
i n s t a l l =g w i b b e r . i n s t a l l
b z r t r u n k=l p : g w i b b e r
bzrmod=${ r e a l n a m e }
build () {
cd ${ s r c d i r }
msg ’ ’ C o n e c t a n d o a l s e r v i d o r b z r . . . . . ’ ’
56 of 61
57. PKGBUILD gwibber (2)
if [ ! −d . / ${ bzrmod} ] ; t h e n
b z r co ${ b z r t r u n k } ${ bzrmod} −r ${ b z r e v }
else
b z r up ${ bzrmod}
fi
msg ’ ’ C o p i a d e s d e BZR t e r m i n a d a ’ ’
msg ’ ’ Comenzando c o n s t r u c c i o n . . . ’ ’
[ −d . / ${ bzrmod}−b u i l d ] && rm −r f . / { $ b z r e v}−b u i l d
cp −r . / ${ bzrmod} . / ${ bzrmod}−b u i l d
cd . / ${ bzrmod}−b u i l d
p y t h o n s e t u p . py b u i l d
p y t h o n s e t u p . py i n s t a l l −−p r e f i x =${ p k g d i r }/ u s r | | r e t u r n 1
}
gwibber.install
57 of 61
58. PKGBUILD gwibber (3)
pkgname=g w i b b e r
p o s t i n s t a l l () {
gtk−u p d a t e−i c o n−c a c h e −q −t −f u s r / s h a r e / i c o n s / h i c o l o r
u p d a t e−d e s k t o p−d a t a b a s e −q
}
post upgrade () {
p o s t i n s t a l l $1
}
post remove () {
u p d a t e−d e s k t o p−d a t a b a s e −q
gtk−u p d a t e−i c o n−c a c h e −q −t −f u s r / s h a r e / i c o n s / h i c o l o r
}
58 of 61
59. Archlinux y Chile
Comunidad Archlinux Chile.
Creada en Febrero del 2009.
Objetivos:
Difundir y educar sobre el uso de Archlinux.
Crear un lugar de encuentro para los usuarios Archlinux en Chile.
Generar ideas y proyectos relacionados con Archlinux.
Ser un aporte a la Comunidad Internacional.
59 of 61
60. Comunidad Archlinux (1)
Portal de la comunidad.
http://www.archlinux.cl
Lista de correos
http://listas.archlinux.cl
Foros de la comunidad
http://foro.archlinux.cl
Wiki
http://wiki.archlinux.cl
Galeria
http://galeria.archlinux.cl
Planet
http://planet.archlinux.cl
Canal IRC
60 of 61