archlinux
TRANSCRIPT
Archlinux
Comunidad Archlinux Chile
A simple, lightweight linux distribution.
Abril, 2009
¿Que es Archlinux?� Archlinux es una distribucion de linux que apunta a ser:
� 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
Caracterısticas
� Enfocada para usuarios de nivel intermedio o avanzados.
� Filosofia KISS
� Optimizada para i686 y portada a i585, x86 64 y PPC.
� Configuracion crıtica centralizada /etc/rc.conf.
� Actualizaciones faciles y constantes. Rolling Release
� Comunidad activa y con iniciativa. (AUR)
� Paquetes minimalistas y faciles de crear o modificar. (PKGBUILD)
� Simple.
� Abierto.
� Centrado en el Usuario
� Libre.
3 of 61
Filosofia
� KISS ”Keep It Simple Stupid”� 5 conceptos
� Simpleza: Ligera estructura base sin agregados innecesarios,modificaciones o complicaciones, permitiendo modelar el sistematotalmente. Elegante y minimalista
� Prioridad Codigo: Elegancia del diseno sobre parches innecesarios.Los parches se mantienen al mınimo. Solo lo necesario
� Abierto: Solo herramientas simples y de codigo abierto. Se eliminanlos limites entre el usuario y el sistema.
� Centrado al Usuario: ArchLinux se fija y toma en cuenta a losusuarios, dandole total y solo total control sobre le sistema.
� Libre: Al mantener el sistema sencillo, se entrega total libertad detomar cualquier decision y hacer cualquier cosa sobre el sistema.
� ”Arch Linux es lo que TU hiciste”
4 of 61
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
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
rc.conf
#Secc i on baseLOCALE= ’ ’ es ES . ut f8 ’ ’HARDWARECLOCK= ’ ’UTC’ ’USEDIRECTISA= ’ ’no ’ ’TIMEZONE= ’ ’ C h i l e / Con t i n en t a l ’ ’KEYMAP= ’ ’ l a−l a t i n 1 ’ ’CONSOLEFONT= ’ ’ t e r−v16b ’ ’CONSOLEMAP=USECOLOR= ’ ’ yes ’ ’
#Secc i on Modulos ( ! = Niega )MOD AUTOLOAD= ’ ’ yes ’ ’MODULES=()
#Secc i on miscUSELVM=’ ’no ’ ’
#Secc i on NetworkHOSTNAME= ’ ’ a r c h l i n u x ’ ’e th0 = ’ ’ dhcp ’ ’wlan0= ’ ’ dhcp ’ ’INTERFACES=(eth0 ! wlan0 )gateway= ’ ’ d e f a u l t gw 192 . 1 6 8 . 0 . 1 ’ ’ROUTES=(! gateway )
#Demonios ( ! = Niega , @ = E j e cu t a en background )DAEMONS=( s y s l o g−ng ha l ! network @crond @a l sa @wicd p o s t f i x )
7 of 61
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 configuracion se basa en el archivo /etc/pacman.conf� Permite una facil creacion de nuevos paquetes por parte de los
usuarios (makepkg, ABS, AUR).� Generados a partir de un PKGBUILD
8 of 61
Pacman (2)
� Ofrece las carateristicas de las mayoria de losgestores 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 informacion pacman -Qi pkg� Solucionar dependencias� Descarga de paquetes sin instalar
9 of 61
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
Repositorios (2)� release
� Es un snapshot del repositorio core. No esta pensado para uso general� Existe por motivos historicos
� community� Mantenido por los TU.� Paquetes populares venidos de AUR.
11 of 61
PKGBUILD
� Archivo que crea las directrices para la creacion de un paquete
� Escrito en bash
# $Id : PKGBUILD 4756 2008−07−09 20 : 00 : 54Z and y r t r $# Ma in t a i n e r : Judd V ine t <j v i n e t @ z e r o f l u x . org>pkgname=wgetpkgve r =1.11.4p k g r e l=1pkgdesc = ’ ’A network u t i l i t y to r e t r i e v e f i l e s from the Web’ ’a r ch=( i 686 x86 64 )u r l = ’ ’ h t tp : //www. gnu . org / s o f twa r e /wget/wget . html ’ ’l i c e n s e =( ’GPL3 ’ )g roups =( ’ base ’ )depends=( ’ g l i b c ’ ’ open s s l ’ )backup=( ’ e t c /wgetrc ’ )s ou r c e=( f t p : // f t p . gnu . org /gnu/$pkgname/$pkgname−$pkgver . t a r . gz )md5sums=( ’69 e8a7296c0e12c53bd9f fd786462e87 ’ )
b u i l d ( ) {cd ${ s r c d i r }/$pkgname−$pkgver. / c o n f i g u r e −−p r e f i x=/u s r −−s y s c o n f d i r=/e t cmake | | r e t u r n 1make DESTDIR=${pkgd i r} i n s t a l l
}
12 of 61
Arch Build System (ABS)
� Muy parecido a los ports de BSD o el snapshot de Portage deGentoo
� Es un arbol de directorios (/var/abs) construido en base a losrepositorios
� Trabaja con PKGBUILDS
� Se sincroniza con el repositorio SVN del proyecto Archlinux
� Permite la compilacion de cualquier paquete
� Provee estabilidad, desempeno y gran personalizacion de lospaquetes.
� Posee la capacidad de reconstruir todo el sistema.
� Integrado con PACMAN.
13 of 61
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 paqueteshacia la distribucion.
� 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 democratica por el
resto de los TU.
� Acceso desde la iterfaz web o desde herramientas como yaourt oaurbuild
14 of 61
Instalacion
� Aqui iba un video xD
� Sigamos con screenshots
15 of 61
Instalacion
16 of 61
Instalacion
17 of 61
Instalacion
18 of 61
Instalacion
19 of 61
Instalacion
20 of 61
Instalacion
21 of 61
Instalacion
22 of 61
Instalacion
23 of 61
Instalacion
24 of 61
Instalacion
25 of 61
Instalacion
26 of 61
Instalacion
27 of 61
Instalacion
28 of 61
Instalacion
29 of 61
Instalacion
30 of 61
Instalacion
31 of 61
Instalacion
32 of 61
Instalacion
33 of 61
Instalacion
34 of 61
Instalacion
35 of 61
Instalacion
36 of 61
Instalacion
37 of 61
Instalacion
38 of 61
Instalacion
39 of 61
Instalacion
40 of 61
Instalacion
41 of 61
Instalacion
42 of 61
Instalacion
43 of 61
Instalacion
44 of 61
Instalacion
45 of 61
Instalacion
46 of 61
Instalacion
47 of 61
Instalacion
48 of 61
Instalacion
49 of 61
Empaquetando (1)
� Simples .tar.gz
� Contienen el directorio del paquete con el PKGBUILD y otrosopcionales
� 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 (lostipicos configure, make, make install)
� Usaremos un PKGBUILD tipo
50 of 61
Empaquetando (2)# $Id : PKGBUILD 4756 2008−07−09 20 : 00 : 54Z and y r t r $# Ma in t a i n e r : Judd V ine t <j v i n e t @ z e r o f l u x . org>pkgname=pkgve r=pk g r e l=pkgdesc=arch=( i 686 )u r l=l i c e n s e =()groups=()depends=()
makedepends=()optdepends=()
backup=()s ou r c e =()md5sums=( )
b u i l d ( ) {cd ${ s r c d i r }/$pkgname−$pkgver. / c o n f i g u r e −−p r e f i x=/u s r −−s y s c o n f d i r=/e t cmake | | r e t u r n 1make DESTDIR=${pkgd i r} i n s t a l l
}
� pkgname: El nombre del paquete.
51 of 61
Empaquetando (3)� pkgver: La version del paquete.
� pkgrel: El numero de release del paquete, debe ser modificadocada vez que se le hagan cambios al PKGBUILD.
� pkgdesc: Descripcion del paquete.
� arch: Arquitectura del paquete.
� url: La direccion del sitio web del paquete.
� 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, sepuede usar el signo ¿= para exigir una version.
52 of 61
Empaquetando (4)� makedepends: Dependencias que se necesitan para construir el
paquete pero que no son necesarias para el funcionamiento delpaquete.
� optdepends: Dependencias opcionales para entregar masfuncionalidades al paquete.
� conflicts: Paquetes que pueden causar conflictos con este paquete.
� replace: Nombre de paquetes obsoletos que son reemplazados poreste. (ej: replaces=(“ethereal”) para wireshark).
� backup: Listado de archivos que deben ser respaldados.
� install: Nombre de los archivos .install que se usaran para laconstruccion del paquete.
� source: Listado de archivos necesarios para construir el paquete ,debe contener la locacion del archivo.
53 of 61
Empaquetando (5)� md5sums:Verificacion de sumas md5 de las fuentes. Se puede
generar con makepkg -g.
54 of 61
Empaquetando
� La funcion build()
b u i l d ( ) {cd ${ s r c d i r }/$pkgname−$pkgver. / c o n f i g u r e −−p r e f i x=/u s r −−s y s c o n f d i r=/e t cmake | | r e t u r n 1make DESTDIR=${pkgd i r} i n s t a l l
}
� Usa comandos shell comunes para compilar el software y crear eldirectorio pkg/
� Primero ingresa al directorio fuente una vez descomprimido
� Dependiendo del paquete, se listan los comandos necesarios para lacompilacion e instalacion.
� Veamos un ejemplo real
55 of 61
PKGBUILD gwibber (1)
# Con t r i b u t o r : Mario Danic <mario . dan i c@gma i l . com># Con t r i b u t o r : kasa <b i u t a . j r@gma i l . com>pkgname=gwibberr ea l name=gwibber
pkgve r =1.2.0bz r e v=339p k g r e l=1pkgdesc = ’ ’ an open sou r c e m i c r ob l o gg i ng 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 ’ ’ )a rch =( ’ ’ i686 ’ ’ ’ ’ x86 64 ’ ’ )depends =( ’ ’ gnome−python−desktop ’ ’ ’ ’ dbus−python ’ ’ ’ ’ gnome−python ’ ’ ’ ’ python−n o t i f y ’ ’ ’ ’ python−s imp l e j s o n ’ ’ ’ ’ python−egen i x−mx−base ’ ’ ’ ’ pywebk i tgtk ’ ’ ’ ’ python−d i s t u t i l s−ex t r a ’ ’ ’ ’ p i l ’ ’ ’ ’ pyxdg ’ ’ ’ ’ python−f e e d p a r s e r ’ ’ )makedepends =( ’ ’ bzr ’ ’ )p r o v i d e s=(${ r ea l name })c o n f l i c t s =(${ r ea l name })o p t i o n s =( ’ ’ ! l i b t o o l ’ ’ )i n s t a l l=gwibber . i n s t a l l
b z r t r u n k=l p : gwibberbzrmod=${ r ea l name}
b u i l d ( ) {cd ${ s r c d i r }
msg ’ ’ Conectando a l s e r v i d o r bz r . . . . . ’ ’
56 of 61
PKGBUILD gwibber (2)i f [ ! −d . / ${ bzrmod} ] ; then
bz r co ${ b z r t r u n k} ${ bzrmod} −r ${bz r e v}e l s e
bz r up ${ bzrmod}f i
msg ’ ’ Copia desde BZR terminada ’ ’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 dcp −r . / ${ bzrmod} . / ${ bzrmod}−b u i l dcd . / ${ bzrmod}−b u i l dpython se tup . py b u i l dpython se tup . py i n s t a l l −−p r e f i x=${pkgd i r}/ u s r | | r e t u r n 1
}
� gwibber.install
57 of 61
PKGBUILD gwibber (3)pkgname=gwibber
p o s t i n s t a l l ( ) {gtk−update−i con−cache −q −t −f u s r / sha r e / i c o n s / h i c o l o rupdate−desktop−database −q
}
po s t upg r ade ( ) {p o s t i n s t a l l $1
}
pos t r emove ( ) {update−desktop−database −qgtk−update−i con−cache −q −t −f u s r / sha r e / i c o n s / h i c o l o r
}
58 of 61
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
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
Comunidad Archlinux (2)� Server: irc.cl� #archlinux
61 of 61