APT

De franhpWiki

Dreceres ràpides: navegació, cerca

Contingut

Apt: Instal·lació de programari

Introducció

La instal·lació de programari té els següents problemes:

  • Ha de ser fàcilment utilitzable per l'usuari
  • Els programes s'han de desinstal·lar correctament
  • Alguns programes depenen d'altres. Cal que les dependències siguen correctes.
  • Algun programes necessiten llibreries comunes a altres programes. Les llibreries comunes sols s'han de desintal·lar si cap programa les utilitza.

La configuració de paquets en Debian es realitza amb APT, acrònim de "Advanced Packaging Tool" (eina avançada d'empaquetament).

Conceptes previs

Versions de Debian: Estable, De Proves o Inestable

'Exercici 2.1.a: Contesta a aquestes preguntes referides a [[1]].

  • Quin nom, data de llençament i versió té la última distribució estable de Debian? I la de proves? I la inestable?
Lenny 5.0, va sortir el 14 de febrer de 2009
Squeeze és la versió de proves
Sid és la versió inestable

  • Perquè la versió Inestable sempre s'anomena Sid?
Perqué és el personatge dolent de Toy Story
  • Quina distribució és l'adequada per a muntar un servidor d'internet? I per a un ordinador d'escriptori? I per a provar les últimes versions de KDE o GNOME?
Per a servidors Lenny
Escriptori la Squeeze
Per a proves és millor la Sid
  • Què passa un mes després de que la versió de proves s'haja congelat?
Que es converteix en estable.

Cicle de Vida

Les distribucions Linux són mantingudes durant un cert període de temps anomenat 'Cicle de Vida':

  • En Debian el cicle de vida és d'aproximadament 4 anys. La propera versió estable de Debian eixirà 'quan estiga preparada'.
  • En Ubuntu, les versions LTS (Long Term Support) tenen un cicle de vida de 3 anys per a la versió Desktop i de 5 anys per a la versió Server. L'última versió LTS és la Ubuntu 8.04 Hardy Heron (Abril-2008). Les versions de Ubuntu ixen cada 6 mesos.


Elements de configuració

Sintaxi dels fitxers de configuració

El fitxer de configuració d'apt és /etc/apt/sources.list té la següent sintaxi:

tipus_deb oritge://lloc.http.org/distribució versió secció_1 secció2 secció_3

On:

  • tipus_deb= deb per a localitzar executables o deb-src per a localitzar fitxers font.
  • oritge=ftp o http o ssh o cdrom o file
  • distribució=debian o ubuntu
  • versió= Nom de la versió. En Debian: stable, unstable o sid. En Ubuntu: breezy, eft, edgy, ...

Exercici 3.1.a: Explica cadascuna de les següents línies d'aquest fitxer sources.list:

    # See sources.list(5) for more information, especialy
    # Remember that you can only use http, ftp or file URIs
    # CDROMs are managed through the apt-cdrom tool.
     Tots els paquets de la branca estable
    deb http://http.us.debian.org/debian stable main contrib non-free
     Paquets que no son legals dins els estats units
    deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
    Actualitzacions de seguretat 
    deb http://security.debian.org stable/updates main contrib non-free
    

Exercici 3.1.b: Explica les línies del teu sources.list

debian-gandalf:~# cat /etc/apt/sources.list
deb http://ftp.de.debian.org/debian lenny main contrib non-free

Només hi ha els paquets normals per a lenny concretament



Triant un mirror

Debian i Ubuntu copien el seu programari a diferents servidors d'Internet anomenats mirrors.

Exercici 3.2.a: Sols si tens Debian. Quin mirror ha triat netselect-apt?

The fastest server seems to be:
       http://ftp.rediris.es/debian/
Writing sources.list.
Done.


Primerament, farem una còpia de sources.list:

  • cp /etc/apt/sources.list /etc/apt/sources.list.copia

Instal·larem el paquet netselect-apt:

  • apt-get install netselect-apt

Farem que automàticament s'actualitze sources.list

  • netselect-apt

Cal paciència per a que netselect-apt trie el mirror més ràpid.

APT

Els noms dels paquets

Suposem que voleu reviure l'època daurada de l'Atari 2600. Voleu usar APT per a instal·lar un emulador Atari, i després descarregar-vos alguns jocs. Podeu fer el següent:

    * apt-cache search atari
    atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
    circuslinux - The clowns are trying to pop balloons to score points!
    madbomber - A Kaboom! clone
    tcs - Character set translator.
    atari800 - Atari emulator for svgalib/X/curses
    stella - Atari 2600 Emulator for X windows
    xmess-x - X binaries for Multi-Emulator Super System

Heu trobat diversos paquets relacionats amb el que estem cercant, junt amb les seves descripcions curtes. Per aconseguir més informació quant a un paquet específic, podem fer el següent:

    * apt-cache show stella
    Package: stella
    Priority: extra
    Section: non-free/otherosfs
    Installed-Size: 830
    Maintainer: Tom Lear <tom@trap.mtview.ca.us>
    Architecture: i386
    Version: 1.1-2
    Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
    Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
    Size: 483430
    MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
    Description: Atari 2600 Emulator for X windows
     Stella is a portable emulator of the old Atari 2600 video-game console
     written in C++.  You can play most Atari 2600 games with it.  The latest
     news, code and binaries for Stella can be found at:
     http://www4.ncsu.edu/~bwmott/2600


Comprovació de la versió d'un paquet

Instal·lem el programa

 * apt-get install apt-show-versions 

Exercici 4.2.a: Quina és la versió instal·lada de bash?

debian-gandalf:~# apt-show-versions bash
bash/lenny uptodate 3.2-4


Veure els fitxers d'un paquet

Instal·lem el programa

  • apt-get install apt-file

Aquest paquet mostra els fitxers que composen un paquet i les seues dependències.

Les accions amb apt-file són:

  • update: Actualitza la base de dades de fitxers de paquets.
  • search: Cerca un fitxer.
  • list: Mostra els fitxers d'un paquet.
  • purge: Elimina la base de dades de fitxers de paquets.

Exercici 4.3.a: Quants fitxers té el paquet apache2 i les seues dependències?

debian-gandalf:~# apt-file list apache | wc -l
4937


Veure les dependències d'un paquet

Exemple:

    # apt-cache depends penguin-command
    penguin-command
      Depends: libc6
      Depends: libpng2
      Depends: libsdl-mixer1.1
      Depends: libsdl1.1
      Depends: zlib1g

Exercici 4.4.a: Quines dependències té el paquet apache2?

debian-gandalf:~# apt-cache depends apache2
apache2
|Depén: apache2-mpm-worker
|Depén: apache2-mpm-prefork
 Depén: apache2-mpm-event

Desinstal·lació de paquets

Desinstal·lant un paquet, excepte els fitxers de configuració:

  • apt-get remove paquet

Desinstal·lant un paquet totalment:

  • apt-get --purge remove paquet


Actualització de paquets

Actualitzar la llista de paquets:

  • apt-get update

Actualitzar els paquets:

  • apt-get upgrade

Exercici 4.6.a: Avantatges i inconvenients de fer un apt-get update;apt-get upgrade -y amb cron.

Avantatges:
* No t'has de preocupar mai més per actualitzar el sistema
* El sistema sempre serà segur, ja que disposa de les actualitzacions de seguretat ràpidament

Inconvenients:
* És possible que un dels canvis que hem acceptat automàticament pugui afectar al funcionament d'alguna aplicació vital
* Es produeixen talls de servei, ja que molts serveis es tornen a iniciar en el procés.


Actualització a una nova versió de la Distribució

Amb aquesta opció podem passar d'una versió de Debian a altra. Per exemple, de stable a unstable.

Primerament, actualitzarem /etc/apt/sources.list i, després:

 * apt-get dist-upgrade

Exercici 4.7.a: Com quedaria el fitxer sources.list per a passar de Debian Stable a Sid?

    deb http://http.us.debian.org/debian sid main contrib non-free
    deb http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free
    deb http://security.debian.org sid/updates main contrib non-free

Esborrant la memòria cau de paquets

Quan instal·leu un paquet, APT descarregarà els fitxers necessaris des de les màquines llistades al /etc/apt/sources.list, llavors els desa en la memòria cau (cache) en /var/cache/apt/archives/, i des d'allí procedeix a la seva instal·lació.

Per a buidar la cache d'APT

 # apt-get clean

Exercici 4.8.a: Explica avantatges i inconvenients de la instrucció anterior.

Avantatges:
* Més espai disponible en el disc dur.

Inconvenients:
* Si volem reinstalar un paquet, l'haurem de tornar a descarregar




dpkg

Instal·lant paquets .deb des del disc dur

Sintaxi:

  • dpkg -i fitxer.deb


Reconfigurar un paquet

Sintaxi

  • dpkg-reconfigure paquet

Exercici 5.2.a: Instal·la ssh i tria les opcions per defecte. Modifica la configuració amb dpkg-reconfigure

debian-gandalf:~# dpkg-reconfigure openssh-server
Restarting OpenBSD Secure Shell server: sshd.

El procés no te gaire cosa a reconfigurar ...

Compilació de paquets: apt-build

Paquets binaris vs paquets compilats per l'usuari

Debian proporciona els paquets per a l'arquitectura pc compilats en format binari per al microprocessador i386. D'aquesta manera, s'assegura la compatibilitat per a tot tipus de CPU, però es desaprofita la potència de càlcul de la CPU, com pot ser l'ús d'instruccions per a multimèdia. Afortunadament, Debian permet a l'usuari descarregar el codi font dels paquets i compilar-lo amb l'arquitectura del seu processador.

Perquè compilar?

Si compilem un programa i l'optimitzem per a la CPU del nostre ordinador, obtindrem un programa més petit i ràpid. Per contra, optimitzar un programa requereix temps i perdrem l'opció d'actualització automàtica.

Exercici 6.2.a:

  • Justifica l'anterior afirmació.
Si compilem un programa especificament per a les característiques del nostre ordinador, ens assegurem que les instruccions utilitzades són les específiques i ràpides, no les opcions de compatibilitat.   Flame!
  • Paga la pena optimitzar vi?
És un progrorama prou petit i ràpid, no cal més optimització

  • Paga la pena optimitzar OpenOffice?
Es tracta d'un programa molt gran i per tant val la pena, encara que també s'actualitza molt sovint, fent aquesta opció inviable si es disposa d'un ordinador lent

  • Paga la pena optimitzar mplayer per a fer còpies de seguretat de dvd a xvid?
És un programa que no s'actualitza i que fa un ús excessiu de CPU, per tant necessitarem la màxima optimització disponible

Instal·lació d'apt-build

Executarem:

  • apt-get install apt-build

Triarem les opcions per defecte.

Configuració

Llegeix http://cronopios.net/Traducciones/apt-build.es.html fins el punt "Con los si, se rehace el mundo, también con apt-build". Tria una màquina virtual amb Debian Etch i386 i configura apt-build per a optimitzar per a una CPU Pentium 3 o Atlon xp amb la màxima optimització.

Nota: Tant Debian com Ubuntu configuren la tarja de xarxa basant-se en la MAC. Quan descomprimiu la màquina virtual, la MAC de la màquina virtual no coincidirà amb la MAC assignada per VirtualBox o VMware. Per a corregir aquest problema:

  • rm /etc/udev/rules.d/z25_persistent-net.rules
  • reboot

Exercici 6.4.a: Quines opcions cal posar a /etc/apt/apt-build.conf

build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O2
mtune = -mtune=pentium3
options = " "
make_options = " "

Compressió d'àudio sense pèrdua d'informació

Els formats més utilitzats per a l'intercanvi de música amb pèrdua d'informació són:

  • MP3: Format propietari. Es necessita pagar royalties per al seu ús.
  • OGG: Format lliure. Millor qualitat que MP3 i fitxers més reduïts.

Els formats més utilitzats per a l'intercanvi de música sense pèrdua d'informació són:

  • Monkey's audio o APE: Format propietari i gratuït. L'empresa sols dona suport a la versió Windows.
  • FLAC: Free Lossless Audio Codec
  • True Audio o TTA
  • WavPack

Podeu trobar més informació a: http://en.wikipedia.org/wiki/Comparison_of_audio_codecs

Exercici 6.5.a: Quina és la millor opció de distribució de música per a un grup d'afeccionats amb pocs recursos?

OGG/Vorbis, ja que és completament gratis i lliure


Exercici apt-build

L'exercici consistirà en comprovar les millores produïdes per la optimització del codi del paquet FLAC.

Primerament, utilitzarem el paquet flac oficial de Debian. Documenta tots els passos:

 - Instal·la el paquet flac.
 - Cronometra amb date el temps que tarda el programa flac en comprimir amb la màxima compressió els fitxers d'àudio de la pràctica.
 - Desinstal·la flac i libflac6.
 - Reinicia el sistema.

Després, optimitzarem el paquet flac. Documenta tots els passos.

 - Compila flac amb Optimització de Nivell 3 per a Pentium III
 - Cronometra amb date el temps que tarda el programa flac en comprimir amb la màxima compressió els fitxers d'àudio de la pràctica a rebost/practiques_xcardona/bolet_peret.zip.

Exercici 6.6.a: Quin avantatge té flac oficial sobre flac recompilat? I desavantatge?

Precompilat:
Fitxer:flac1.png
Compilat:
Fitxer:flac2.jpg


Exercici 6.6.b: Quin avantatge té fer un apt-build world? I desavantatge?

Avantatge: Optimització màxima de tot el sistema al complert
Desavantatge: Pot tardar molta estona a compilar-ho tot i per cada actualització de programari, s'ha de tornar a compilar. 


Exercici 6.6.c: Per què cal fer pinning dels paquets que optimitzem?

Pq cada vegada que surti una nova versió del programa, es tornarà a compilar automàticament (gastant temps i CPU). En canvi, si li posem el Pin, ho haurem de fer voluntàriament.