Administración de programas

Indicadores de Logros

Lecturas: Administración de programas

Otra labor del administrador es buscar, instalar, actualizar y configurar los programas que requiera algún grupo de usuarios (es decir los programas disponibles normalmente en /usr/bin /usr/local/bin y /opt). Eventualmente puede promover el desarrollo de software para la institución.

Ejecución de programas y bibliotecas compartidas

El formato binario que soportan las distribuciones actuales de Linux es ELF [1] , el cual permite cargar bibliotecas compartidas [2] durante la ejecución ---pueden verse datos del formato de un ejecutable ELF con el programa readelf. En este contexto biblioteca compartida se refiere a un conjunto de servicios que uno o más programas puede emplear y que están agrupados en un archivo ---para ver las bibliotecas compartidas que un programa requiere puede emplear el programa ldd seguido de la ruta del programa (e.g ldd /bin/cat) y para ver los servicios que ofrece una biblioteca puede emplear objdump.

Comando que permite conocer las bibliotecas compartidas que requiere un programa

Comando que permite conocer los servicios que ofrece una biblioteca compartida.

Para ejecutar un programa, el kernel lo transmite del dispositivo de almacenamiento a memoria RAM (después de que el intérprete de comandos lo ha ubicado empleando la variable PATH y ha decidido que no es un script ver Lectura Scripts básicos para bash).

una vez en RAM identifica el tipo de ejecutable y de ser un ELF emplea como intérprete /lib/ld-linux.so.

El programa /lib/ld-linux.so es el encadenador dinámico, que encuentra las bibliotecas compartidas requeridas por el ejecutable, prepara el programa para ejecución y lo ejecuta [3] . Para localizar bibliotecas compartidas /lib/ld-linux.so busca en orden:

  1. Los directorios especificados en la variable de ambiente LD_LIBRARY_PATH que deben separarse unos de otros con el caracter ':'

  2. En el archivo /etc/ld.so.cache

  3. en los directorios /usr/lib y /lib.

Variable de ambiente que especifica directorios donde se buscan bibliotecas compartidas.

El archivo /etc/ld.so.cache es generado por el administrador con el programa ldconfig. Este programa genera /etc/ld.so.cache a partir de las bibliotecas disponibles en /lib y /usr/lib y en las rutas especificadas en /etc/ld.so.conf. Por esto si se instalan nuevas bibliotecas compartidas en rutas estándar es indispensable ejecutar ldconfig ---la gran mayoría de programas de instalación lo harán automáticamente--- y si se instalan en rutas no estándar asegurarse de que la ruta esté en /etc/ld.so.conf antes de ejecutar ldconfig.

Archivo en donde se especifca en que directorios deben buscarse bibliotecas compartidas.

Una vez se ejecute el programa, este podría leer algunos archivos de configuración (usualmente de /etc/) y variables de entorno. También podría cargar datos que requiera para operar (e.g mensajes para el locale apropiado, sonidos o imagenes usualmente del directorio /usr/share).

Compilación e instalación de programas a partir de fuentes

Aunque en los repositorios oficialesAlgunos programas de libre redistribución son liberados al público junto con el código fuente escrito en algún lenguaje de programación (tipicamente C o C++). Antes de usarlos debe compilarlos e instalarlos siguiendo las instrucciones que acompañan el código fuente; y claro antes debe descomprimirlo y/o desempaquetarlo.

El código fuente podría estar comprimido con diversos programas, dos muy comunes son: gzip - extensión .gz, bzip2 - extensión .bz2. Ambos permiten descomprimir con la opción -d seguida del nombre del fichero comprimido. Además de comprimidas, las fuentes podrían estar archivadas con el programa tar (extensión .tar), para desarchivar ficheros creados por este programa se emplea tar xvf archivo (ver Administración de archivos, directorios y enlaces).

Aplicación que permite comprimir y descomprimir archivos en formato gz.

Aplicación que permite comprimir y descomprimir archivos en formato bz2.

Comando que permite archivar y desarchivar un conjunto de archivos dentro de un archivo de extensión tar.

Aunque en general debe consultar las instrucciones para lograr la instalación y configuración, varios programas requieren la siguiente secuencia de comandos para compilar (secuencia establecida por autoconf):


./configure
make
make install

Comando comunmente utilizado para configurar una aplicación antes de compilarla.

Comando comunmente utilizado para compilar e instalar una aplicación a partir de su código fuente.

Esta secuencia instalará por defecto en el directorio /usr/local, si desea instalar en otra vía puede cambiar el primer comando por configure ­­prefix=nueva_via con el directorio destino en lugar de nueva_via. Si las fuentes incluyen mensajes en diversos idiomas (locales) se instalarán los especificados en la variable LINGUAS o todos si tal variable no está definida. La variable LINGUAS debe tener códigos ISO 639 (2 letras como LC_MESSAGE ver Lectura Configuración de una sesión) de los idiomas que se desean, unos separados de otro por espacios.

Cuando busque software, tenga en cuenta que funcione en el computador en el que operará (consulte los requerimientos de hardware y software), y revise la licencia del programa para asegurarse de la posibilidad de usarlo y redistribuirlo sin restricciones (ver Lectura Software de libre redistribución) ---si no lee con detalle la licencia, podría infringir la ley.

Una vez consiga software que solucione una necesidad de su institución, debe instalarlo y configurarlo. Es posible que encuentre las fuentes comprimidas o de un archivo precompilado deb [4] . Por ejemplo para la distribución Debian, hay un inmenso repositorio de archivos precompilados. Cuando busque un programa, ese repositorio es el primer sitio quee puede consultar: http://packages.debian.org/stable/. Para hacerlo, puede emplear el programa dselect, que le permitirá entrar al repositorio principal de Debian o a otros, le permitirá elegir el o los programas que desee, le indicará si el programa es libre o no y le ayudará a resolver conflictos con otros programas o le indicará otros programas que son prerequisitos; tras esto, dselect se encarga de descargarlos a su máquina, instalarlos y configurarlos, todo automáticamente!

Paquetes en 
	      
		http://packages.debian.org

Extensión de los archivos precompilados para Linux Debian.

Depósito de archivos precompilados deb.

Aplicación que permite elegir e instalar aplicaciones, descargándolas desde un sitio indicado.

Puede darse el caso que el programa que usted busque no esté en ese repositorio, pero que lo logre encontrar en otra parte ya precompilado como deb. En ese caso puede descargarlo y emplear el programa dpkg para instalarlo en su sistema.

Aplicación que permite instalar paquetes precompilados deb.

Paquetes en Debian

Para facilitar el uso de programas, evitando los posibles problemas que se presentan al compilar e instalar se emplean paquetes. Cada paquete es creado y mantenido por un voluntario (normalmente de Debian) e incluye programas precompilados, datos, archivos de configuración, scripts de instalación y desinstalación y datos de control (como nombre, firma digital, descripción, sección, paquetes de los que depende, paquetes con los que entra en conflicto, etc.). Dado que en un computador pueden instalarse muchos paquetes y su administración resulta delicada (porque algunos dependen o entran en conflicto con otros), en Debian se emplean herramientas que evitan conflictos y facilitan la instalación, desinstalación y actualización. La administración del sistema de paquetes (configuración de repositorios), así como las operaciones de paquetes pueden realizarse con el programa dselect que es guiado por menús y ofrece extensa ayuda. Como método de acceso es recomendable apt y especificar los repositorios editando el archivo /etc/apt/sources.list. Si planea emplear varios CDs con paquetes para Debian, al emplear apt-cdrom add el CD quedará registrado en /etc/apt/sources.list y podrá seleccionar e instalar los paquetes con dselect.

Método de acceso que dselect soporta y que permite especificar los repositorios en el archivo /etc/apt/sources.list.

Archivo que permite la especificación de depósitos de paquetes.

Comando que registra un cdrom para como depósito de paquetes.

En esta sección se presentan detalles del sistema de paquetes de Debian y las herramientas que hay disponibles (las herramientas que usa dselect para automatizar la catalogación, obtención, instalación y desinstalación de paquetes).

Un paquete para Debian (archivo con postfijo .deb) es un archivo de ficheros creado con el programa ar [5] , que sigue diversas convenciones (por ejemplo contiene los datos del programa y datos para controlar instalación y desintalación comprimidos con gzip empleando nombres estándar). La herramienta dpkg-deb permite operar estos paquetes como archivos (no es recomendable instalar paquetes usando dpkg-deb).

Aplicación que permite instalar paquetes deb.

Comando que permite descomprimir un paquete deb.

Para instalar propiamente un paquete se emplea dpkg -i archivo .... El programa dpkg además de verificar dependencias, eliminar versiones previas del mismo paquete, extraer archivos, ejecutar los scripts de instalación y configurar el paquete, actualiza los archivos con información sobre paquetes instalados y disponibles: /var/lib/dpkg/status y /var/lib/dpkg/available (estos archivos son también llamados caches por apt-cache).

Los caches además del nombre, descripción, versión, arquitectura y espacio en disco de cada paquete incluyen información para organizar y controlar los paquetes: estado, estado de selección, sección, prioridad, paquetes de los que depende, paquetes que reemplaza, con los que entra en conflicto y los que recomienda. Los posibles estados de un paquete son: instalado, instalado a medias, no-instalado, desempaquetado (archivos ubicados pero no configurado), configurado a medias, archivos de configuración [6] (sólo los archivos de configuración estan). Los estados de selección (usados por dselect) son: instalar, desinstalar, limpiar (desinstalar incluso archivos de configuración). Las secciones posibles son main, contrib, non-US y non-free diferenciadas por los términos de las licencias y la posibilidad de redistribuirlos. Los paquetes en main cumplen con los lineamientos de Debian para decidir si un programa es libre o no [7] ---DFSG Debian Free Software Guidelines---, los paquetes en contrib cumplen con esos lineamientos pero requieren paquetes en non-free o non-US, los paquetes en non-free permiten libre redistribución pero no otros requerimientos de DFSG, los paquetes en non-US contienen material criptográfico que no puede exportarse de EUA (estos paquetes pueden ser usados en todo el mundo pero no pueden obtenerse de servidores en EUA). Las secciones se dividen en subsecciones: admin, base, comm, devel, doc, editors, games, graphics, interpreters, libs, mail, misc, net, science, shells, sound, tex, text, utils, web, x11, comm, devel. Las prioridades posibles son: required (mínimo para que el administrador inicie el sistema), important (aplicaciones mínimas encontradas en cualquier sistema Unix), standard (mínimo para tener un sistema en modo texto), optional (aplicación que no requiere ser instalada) y extra.

Sección de la jerarquía de paquetes Debian que cumple con los lineamientos para ser considerado software libre.

Sección de la jerarquía de paquetes Debian que cumple con los lineamientos para ser considerado software libre, pero requieren paquetes de non-free o non-US.

Sección de la jerarquía de paquetes Debian que contiene material criptográfico.

Sección de la jerarquía de paquetes Debian que permite libre redistribución pero no otras libertades.

dpkg cuenta con varios comandos para operar paquetes y los caches, a continuación se presentan algunos:

dpkg ­­configure paquetes

Configura un paquete cuya configuración esta pendiente. Si en lugar de usar un nombre de paquete se emplea -a configura todos los paquetes cuya configuración esté pendiente. Para reconfigurar un paquete que ya está instalado y que empleaba debconf se usa dpkg-reconfigure paquete.

dpkg -r paquetes

Desinstala un paquete. Si se emplea -a en lugar del nombre de un paquete desinstala todos los que estén pendientes. La desinstalación de un paquete no elimina archivos de configuración, para eliminarlos puede emplearse ­­purge en lugar de -r.

dpkg ­­clear-avail

Elimina información sobre paquetes disponibles (/var/lib/dpkg).

dpkg -A -R directorio

Agrega al cache de paquetes disponibles, información de todos los paquetes en el directorio especificado y en sus subdirectorios. Pueden emplearse con un propósito análogo las opciones ­­update-avail y ­­merge-avail seguidas del nombre de un archivo con descripciones de paquetes (típicamente Packages.gz). Este método NO es el recomendado para actualizar paquetes disponibles, es más flexible emplear apt como se explica más adelante.

dpkg -l 'cadena'

Presenta información de los paquetes disponibles que concuerden con la cadena. La cadena puede tener caracteres para expansión de nombres.

dpkg -s paquetes

Presenta el estado de los paquetes especificados.

dpkg -C

Busca paquetes cuya instalación no este completa.

dpkg -L paquetes

Muestra la ubicación de los ficheros de los paquetes dados.

dpkg -S fichero

Busca el paquete que haya instalado el fichero especificado.

dpkg -x paquete directorio

Descomprime un paquete en el directorio especificado sin instalarlo.

El inconveniente de usar dpkg -i archivo ... para instalar un paquete es que no resuelve problemas de dependencias (por ejemplo si el paquete que se instala requiere otro que aún no se ha instalado). Para resolver dependencias y obtener e instalar paquetes se requiere uno o más repositorios de paquetes y se usa apt-get install paquete ... [8].

Programa que permite instalar paquetes Debian, instalando automáticamente paquetes adicionales en los que dependa la instalación.

Los repositorios de paquetes contienen un fragmento de los paquetes disponibles para Debian, pueden ser medios de almacenamiento (CD-ROMs, directorios locales o compartidos, disquettes) o sitios en una red a la que su computador está conectado (pueden usarse los protocolos FTP y HTTP). Los posibles repositorios de paquetes se especifican en el archivo /etc/apt/sources.list y normalmente el cache de paquetes disponibles en su sistema (/var/lib/dpkg/available) es extraido de los archivos Packages.gz de cada repositorio de paquetes.

Archivo en el que se configuran los repositorios de paquetes que apt emplea.

Para actualizar el cache con la información más reciente en los repositorios puede emplear apt-get update, para agregar un CD-ROM como repositorio y actualizar el cache de paquetes disponibles emplee apt-cdrom con la opción add. Para agregar repositorios FTP o HTTP edite el archivo /etc/apt/souces.list y agregue líneas de la forma:


deb ftp://ftp.debian.org/debian stable main contrib non-free
remplazando el URL por el del depósito. A la derecha del URL se especifican las secciones que desea emplear de ese repositorio. La cadena "deb" a la izquierda del URL indica que se trata de un repositorio de paquetes precompilados, puede agregarse un repositorio de fuentes de programas con "deb-src".

Los comandos para apt-get son:

update

Actualiza caches de paquetes con información de los repositorios especificados en /etc/apt/sources.list. De cada repositorio extrae los paquetes disponibles del archivo Packages.gz. Debe hacerse antes de upgrade o dist-upgrade.

upgrade

Instala las versiones más recientes de todos los paquetes, mientras para una instalación no requiera reinstalar otro paquete. Emplea los repositorios especificados en /etc/apt/sources.list.

dselect-upgrade

Completa los cambios que un usuario haya especificado (pero no completado) con dselect.

dist-upgrade

Realiza la misma función de upgrade tratando de resolver conflictos entre nuevas versiones y existentes.

install paquete ...

Obtiene el/los paquete(s) especificado(s) de alguna de los repositorios y lo(s) instala, así como los paquetes que sean requeridos. El nombre del paquete no es una ruta, es la identificación del paquete en el cache o una expresión regular de identificaciones de paquetes. Puede marcarse un paquete para su futura desintalación agregandole al nombre el caracter '-' (con '+' se marca para futura instalación).

remove paquete ...

Desinstala el(los) paquete(s) especificado(s). Sigue convenciones análogas a install.

source

Obtiene las fuentes de un paquete de un repositorio de fuentes (los especificados en /etc/apt/sources/lists en líneas deb-src). Dejas las fuentes en el directorio de trabajo.

build-dep paquete ...

Instala paquetes que satisfacen dependencias de uno o más paquetes.

clean

Limpia el directorio donde se dejan paquetes extraidos de repositorios /var/cache/apt/archives.

autoclean

Realiza la misma función de clean pero evita eliminar paquetes útiles.

check

Examina el cache de paquetes buscando posibles problemas en las dependencias.

Entre las opciones que apt-get recibe están:

-f

Intenta solucionar problemas de dependencias.

-d

Descarga todos los paquetes pero no los instala. Una vez descargados para instalarlos se usa el mismo comando de apt-get que los descargo pero sin -d.

-m

Ignora paquetes faltantes.

-no-download

Evita que se descarguen paquetes de la red (útil junto con -m).

-o

Opción para establecer una opción que tome precedencia sobre las opciones del archivo de configuración. El archivo de configuración es indicado por la variable APT_CONFIG o en su defecto es /etc/apt/apt.conf.

El programa apt-cache le permite operar los caches de paquetes instalados y disponibles simultaneamente, algunas de las operaciones que permite son:

show paquete

Muestra la información de control del paquete especificado.

showpkg paquete

Muestra información de dependencias de un paquete. Presenta tanto los paquetes de los cuales depende como los paquetes que dependen de ese (dependencias reversas).

search expreg

Busca paquetes disponibles e instalados cuyo nombre concuerde con una expresión regular.

Program que le permite operar el cache de paquetes instalados.

Depósitos de software de libre redistribución

Cuando busque software, tenga en cuenta que funcione en el computador en el que operará (consulte los requerimientos de hardware y software), y revise la licencia del programa para asegurarse de la posibilidad de usarlo y redistribuirlo sin restricciones (ver Lectura Software de libre redistribución) ---si no lee con detalle la licencia, podría infringir la ley.

En Internet hay varios sitios que indexan fuentes de software de libre redistribución que funciona en Linux algunos son:

URL de un sitio en Internet donde se indexan aplicaciones de libre redistribución para Linux.

Para la distribución Debian hay varios repositorios de fuentes y precompilados, puede consultar el principal (el repositorio oficial de Debian) en: http://packages.debian.org/stable/.

Sitio oficial en internet donde se indexan paquetes Debian.

Para configurar los repositorios que usa apt, puede emplear el programa apt-setup, o agregar líneas a su archivo /etc/apt/sources.list como:

Depósito de paquetes oficiales de Debian que contiene software no exportable desde US por restricciones de criptografía.

URL del proyecto Structio, que desarrolla contenidos de dominio público para colegios colombianos (por ejemplo estas guías).

deb ftp://ftp.debian.org/debian potato main contrib non-free

Repositorio principal de Debian. Puede haber un espejo que funcione mejor con la conexión a Internet que tiene, consulte la lista de espejos en http://www.debian.org/misc/README.mirrors

deb ftp://ftp.debian.org/debian-non-US potato non-US/main

Repositorio non-US de Alemania. Contiene software que no puede exportarse de EUA por restricciones en criptografía.

deb http://red-carpet.ximian.com/debian potato main

Repositorio de Ximian Gnome.

deb http://kde.tdyc.com/debian potato main

Repositorio de KDE para Debian 2.2.

deb http://dtype.org/debian/potato ./

Repositorio con versiones recientes de algunos paquetes (como el navegador Mozilla).

deb http://people.debian.org/~synrg/task-junior /

Repositorio de Debian-Jr, con paquetes enfocados a educación en casa (en especial juegos).

Adicionalmente puede encontrar un listado de otras fuentes no oficiales de paquetes debian en http://www.internatif.org/bortzmeyer/debian/apt-sources/ o http://channel.debian.de/faq/DebianDE-15.html.

Su propio depósito de paquetes

En una red puede configurarse un computador para mantener los paquetes que se emplean en el resto y para así hacer actualizacioes por ftp o http. La forma más sencilla es copiar los paquetes en un directorio que pueda accederse por http y emplear tal ruta desde los computadores clientes en /etc/apt/sources.list. Por ejemplo si copia paquetes en un directorio que pueda consultarse con el URL http://servidor.micolegio.edu.co/paquetes agregue a /etc/apt/sources.list la línea:


deb http://servidor.micolegio.edu.co/paquetes /

También puede copiar los CDs de instalación de Debian en un directorio de ftp (digamos /debian) y agregar en /etc/apt/sources.list:


deb ftp://servidor.micolegio.edu.co/debian/cd1 stable/non-US main contrib 
deb ftp://servidor.micolegio.edu.co/debian/cd1 stable main contrib non-free
deb ftp://servidor.micolegio.edu.co/debian/cd2 stable/non-US main contrib 
deb ftp://servidor.micolegio.edu.co/debian/cd2 stable main contrib non-free
deb ftp://servidor.micolegio.edu.co/debian/cd3 stable/non-US main contrib 
deb ftp://servidor.micolegio.edu.co/debian/cd3 stable main contrib non-free

A continuación se explica como puede crear su propio repositorio de paquetes sólo con los paquetes que usted escoja [9].

Un repositorio http (o ftp) puede constar de uno o más directorios, en cada directorio debe haber paquetes .deb y un índice Packages o mejor Packages.gz. El índice contiene la descripción de cada paquete separada por varias líneas en blanco, por ejemplo una entrada de un índice es:


Package: asigna
Version: 1.0-1
Priority: optional
Section: education
Maintainer: Vladimir Tamara <vladimir@tamarapatino.com>
Architecture: i386
Filename: ./asigna_1.0-1_i386.deb
Size: 18016
MD5sum: fef055d6ed02c211e3234aae34efda61
Description: This program helps to arrange a schedule for a school
This program receives information  and restrictions on the schedule of
a school  and tries  to create one.   The information it  receives is:
amount and  labels for teachers,  amount and labels for  rooms, amount
and  labels for  hours. The  restrictions that  can accept are unmovible
teachers (at certain hour in certain room).
installed-size: 104

Archivo que contiene la descripción de un paquete.

Este índice preferiblemente debe generarse automáticamente con el programa dpkg-scanpackage, creando antes un archivo override. El archivo override contiene un mínimo de información de los paquetes, cada línea tiene nombre, prioridad y sección de un paquete separados por espacio. Por ejemplo una línea puede ser:

Comando que permite generar automáticamente un índice de paquete.


asigna optional education

Estando en el directorio del repositorio, si el archivo override está allí mismo se genera el índice de paquetes con:


dpkg-scanpackages . override > Packages
rm Packages.gz
gzip Packages

Creación de paquetes

Para crear sus paquetes Debian, debe contar con las fuentes del programa que desea empaquetar e instalar, con las herramientas requeridas para compilarlo e instalar el paquete task-debian-devel. El nombre del directorio con fuentes debe ser de la forma paquete-version con el nombre del paquete en minúsculas y la versión con digitos, letras, punto y guión. Pase al directorio con las fuentes y ejecute dh_make, por ejemplo:


cd AA_Linux_colegio-1.1
dh_make -e paz@micolegio.edu.co -f ../AA_Linux_colegio-1.1.tar.gz

Comando que sirve para la creación de paquetes.

subdirectorio debian en tales fuentes

Cada vez que necesite regenerar el paquete ejecute desde el directorio con fuentes:


dpkg-buildpackage -rfakeroot

Lecturas recomendadas: Administración de programas

Ejercicios: Administración de programas

1. Si un usuario instala un programa en el directorio /home/pedro/bin y una biblioteca compartida nueva que ese programa requiere en el directorio /home/pedro/lib, ¿qué debe agregar él a su archivo ~/.bashrc para poder ejecutarlo desde un intérprete de comandos sin especificar la ruta completa?
2. Con respecto al administrador no quiere usar LD_LIBRARY_PATH
3. Hay diversos sitios en Internet donde puede buscarse software para Linux: http://www.freshmeat.net, http://www.linux.org/apps/index.html. Busque otro y compárelos.
4. Puede consultar software enfocado al sector educativo que funciona sobre la plataforma de referencia en el primer apéndice de estas guías (ver Plataforma de referencia) y en Internet en índices especializados: http://ingenieria.sanmartin.edu.co/cgi-bin/slec/slec.cgi/slec.software_librered?style=slec&site=slec&, http://www.ofset.org/freeduc, http://richtech.ca/seul/, http://edvisor.org . Busque las fuentes de un programa de libre redistribución que necesite, instálelo y describa el proceso que siguió.
5. Examine la lista de bibliotecas compartidas que requiere la calculadora gcalc.
6. Algunos programas instalan o usan bibliotecas compartidas. Agregue la vía /opt/lib a la lista de directorios donde el sistema buscará bibliotecas compartidas.
7. Consiga un programa pequeño (que quepa en un disquete) en formato deb, instálelo, úselo y desinstálelo.
8. Cree un archivo .tar.gz de un directorio pequeño (por ejemplo cree uno de prueba con al menos dos archivos).

1. Si un usuario instala un programa en el directorio /home/pedro/bin y una biblioteca compartida nueva que ese programa requiere en el directorio /home/pedro/lib, ¿qué debe agregar él a su archivo ~/.bashrc para poder ejecutarlo desde un intérprete de comandos sin especificar la ruta completa?


PATH=$PATH:/home/pedro/bin;
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pedro/lib

2. Con respecto al administrador no quiere usar LD_LIBRARY_PATH

Con respecto al punto anterior, si el administrador tras acuerdo con el usuario quiere permitir a otros usuarios usar el programa desde un intérprete de comandos (para cargarlo sin especificar la ruta completa), pero quiere además: que el programa se mantenga en el directorio del usuario, que no se deben modificar los archivos de inicialización de los usuarios y que no se use LD_LIBRARY_PATH

 
chmod a+rx
/home/pedro/bin
chmod a+rx /home/pedro/lib
echo "/home/pedro/lib" >> /etc/ld.so.conf 
ldconfig;
además agregar /home/pedro/bin a la variable PATH en /etc/profile

3. Hay diversos sitios en Internet donde puede buscarse software para Linux: http://www.freshmeat.net, http://www.linux.org/apps/index.html. Busque otro y compárelos.

Otro puede ser http://www.linux-directory.com/ Freshmeat es el más tradicional, allí a diario se anuncian nuevas versiones de programas (quien lo desee puede anunciar sus programas).

4. Puede consultar software enfocado al sector educativo que funciona sobre la plataforma de referencia en el primer apéndice de estas guías (ver Plataforma de referencia) y en Internet en índices especializados: http://ingenieria.sanmartin.edu.co/cgi-bin/slec/slec.cgi/slec.software_librered?style=slec&site=slec&, http://www.ofset.org/freeduc, http://richtech.ca/seul/, http://edvisor.org . Busque las fuentes de un programa de libre redistribución que necesite, instálelo y describa el proceso que siguió.

Una vez obtenidas las fuentes se consulta la documentación y se siguen.

5. Examine la lista de bibliotecas compartidas que requiere la calculadora gcalc.

ldd /usr/bin/gcalc

6. Algunos programas instalan o usan bibliotecas compartidas. Agregue la vía /opt/lib a la lista de directorios donde el sistema buscará bibliotecas compartidas.

 
echo /opt/lib >> /etc/ld.conf
ldconfig

7. Consiga un programa pequeño (que quepa en un disquete) en formato deb, instálelo, úselo y desinstálelo.

 
wget URL/paquete.deb  
dpkg -i paquete.deb
puede revisarse el nombre de lo que se instala (para usarlo) con: dpkg -L paquete y para desinstalar:
 
dpkg -r paquete

8. Cree un archivo .tar.gz de un directorio pequeño (por ejemplo cree uno de prueba con al menos dos archivos).

tar cvfz ej.tar.gz ej/

Notas

[1]

También soporta el formato binario aout en todas las arquitecturas, en Sparc soporta el formato iBCS2, con el módulo binfmt_misc puede agregarse soporte para otros formatos dinánicamente.

[2]

Biblioteca compartida: en inglés shared library.

[3]

En Linux recientes, por defecto todos los programas requieren bibliotecas compartidas ---al menos requieren libc. Aunque esto puede cambiarse durante la compilación del programa con la opción -static del compilador gcc.

[4]

deb es la extensión de los archivo precompilados para la distribución Debian, en otras distribuciones el formato y extensión de los archivos precompilados es diferente.

[5]

ar se usa para crear archivos con la sintaxis ar -r archivo fichero1 fichero2 ..., y para desempaquetarlos con ar -x archivo.

[6]

El estado archivos de configuración es típico tras instalar y desintalar un programa, dpkg no borra archivos de configuración para que en siguientes instalaciones se tomen los valores por defecto de la instalación anterior.

[7]

La licencia de cada paquete está en el archivo copyright del directorio /usr/doc/paquete.

[8]

El programa apt-get resuelve dependencias y descarga paquetes de repositirios, para la instalación de un paquete ya descargado usa el programa dpkg.

[9]

Un ejemplo es el repositorio de paquetes de Structio, donde en particular están estas guías. Si cuenta con acceso a Internet puede accederlo con apt agregando a /etc/apt/sources.list la línea deb http://structio.sourceforge.net/debian/binary-i386 /