Instalar y desinstalar programas en Linux Debian usando la consola de comandos

APT (Advanced Packaging Tool) es el gestor de paquetes usado por Linux Debian y las distribuciones basadas en Debian.

Aunque lo podemos usar sin conexión a Internet, apt está orientado para ser usado con conexión.

Para usar apt, básicamente debemos:

  1. Decirle que actualice la lista de paquetes disponibles
  2. Decirle los paquetes que queremos Instalar/desinstalar

Entonces apt se encarga de:

  • Buscar los paquetes en Internet o localmente
  • Solucionar las dependencias (a veces para que un paquete funcione necesita que haya otros paquetes instalados previamente: se dice que ‘depende de’)
  • Descargar de Internet (cuando sea necesario) los paquetes y sus dependencias
  • Instalar y configurar en el orden correcto los paquetes y sus dependencias

Nota

Usaremos aptitude como interfaz para APT.

aptitude

Usaremos la palabra paquete en lugar de programa, pues apt trabaja con paquetes y no con programas. Un paquete puede incluir varios programas y un programa se puede empaquetar en varios paquetes.

Aptitude obtiene la lista de paquetes disponibles del repositorio de Linux, que es un conjunto de direcciones de Internet o locales donde están, tanto los listados de paquetes disponibles, como los propios paquetes.

El programa aptitude se usa en modo línea de comando desde un terminal, en el que debe tener la condición de superusuario (root).

Las principales formas de usar aptitude son:

Sintaxis general de aptitude

aptitude [opciones] acción [paquetes]

Actualizar lista de paquetes

aptitude update

Se debe actualizar la lista antes de realizar cualquier otra acción con apt

Buscar información de los paquetes

Podemos buscar información de los paquetes que vamos a instalar usando los comandos:

aptitude search palabra

Busca palabra tanto en los nombres como en las descripciones de los paquetes.

aptitude show paquete

Muestra información sobre el paquete . Nos informa también sobre las dependencias del paquete, es decir, de qué paquetes depende.

Instalar paquetes

aptitude install paquete

Observe que ponemos “paquete” y no ponemos “paquete.deb” ni “paquete_1.0-4_i366.deb”

Con la opción -d descarga el paquete pero no lo instala. Resulta de utilidad cuando queremos descargar paquetes para instalarlos en otro ordenador sin conexión a Internet

aptitude -d install paquete

La acción reinstall se usa cuando se daña algún paquete o cuando queremos instalar una versión más reciente del mismo:

aptitude reinstall paquete

Desinstalar paquetes

La acción remove elimina (desinstala) el paquetes:

aptitude remove paquete

La acción purge elimina (desinstala) el paquetes y sus archivos de configuración:

aptitude purge paquete

Actualizar todos los paquetes

Se pueden actualizar todos los paquetes mediante una sola orden:

aptitude upgrade

e incluso se puede actualizar toda la distribución a una nueva versión:

aptitude dist-upgrade

Precaución

No use upgrade, a no ser que se considere un usuario bastante experimentado (puede provocar inestabilidad del sistema)

Eliminar paquetes de la caché

Los paquetes una vez instalados ya no son necesarios. No obstante, se conservan en la caché: /var/cache/apt/archives. Si los borramos ahorramos espacio en disco, pero si necesitamos instalarlos de nuevo, apt tiene que volver a descargarlos. Para borrarlos, se suelen usar los comandos:

aptitude autoclean

Elimina los paqetes antiguos (aquellos de los que ya existe una nueva versión)

aptitude clean

Elimina todos los paqetes de la caché

Resumen de las opciones y las acciones de aptitude

Si no se especifica ninguna, aptitude entrará en modo interactivo

Opciones:

-h              Este texto de ayuda
-s              Simula las acciones, pero en realidad no las realiza.
-d              Sólo descarga paquetes, no instala o desinstala nada.
-p              Siempre pide confirmación de las acciones
-y              Supone que la respuesta a preguntas simples del tipo sí­/no es «sí»
-F formato      Especifica el formato para mostrar los resultados de las búsquedas, lea el manual
-O orden        Especifica como se deben ordenar los resultados de la búsqueda, lea el manual
-w ancho        Especifica el ancho del visor para dar formato a los resultado de la búsqueda
-f              Trata de arreglar paquetes rotos de forma agresiva.
-V              Muestra la versión de los paquetes a instalar.
-D              Muestra las dependencias de los paquetes cambiados automáticamente.
-Z              Muestra el cambio del tamaño instalado de cada paquete.
-v              Muestra información extra (puede darse más de una vez)
-t [distrib]    Establece la distribución desde la que se instalan los paquetes
-q              No muestra los indicadores de progreso incrementales en el modo de línea de Órdenes.
-o opconf=val  	Establecer directamente la opción de configuración llamada «opconf»
--with(out)-recommends,	Especifica si se tratan o no las recomendaciones como dependencias fuertes
-S fnombre:     Lee la información de estado extendida de aptitude de fnombre.
-u              Descarga una nueva lista de paquetes al arrancar.
-i 		Realiza una instalación al arrancar.

Acciones:

install      - instala/actualiza paquetes
remove       - elimina paquetes
purge        - elimina paquetes junto con sus ficheros de configuración
hold         - bloquea paquetes
unhold       - desbloquea un paquete
markauto     - marca paquetes como instalados manualmente
unmarkauto   - desmarca paquetes como instalados manualmente
forbid-version - prohíbe a aptitude actualizar a una versión específica de un paquete.
update       - descarga las listas de paquetes nuevos/actualizables
upgrade      - realiza una actualización segura
dist-upgrade - realiza una actualización, posiblemente instalando y eliminando paquetes
forget-new   - olvida qué paquetes son "nuevos"
search       - busca un paquete por nombre y/o expresión
show         - muestra información detallada de un paquete
clean        - elimina los ficheros de paquetes descargados
autoclean    - elimina los ficheros de paquetes descargados obsoletos
changelog    - muestra el registro de cambios del paquete
download     - descarga los ficheros .deb para un paquete
reinstall    - descarga y (posiblemente) reinstala un paquete ya instalado

Enlaces:

APT: http://es.wikipedia.org/wiki/Advanced_Packaging_Tool
Aptitude: http://es.wikipedia.org/wiki/Aptitude

Configuración del módulo ProxyPass de Apache

En éste artículo mostraré cómo hacer que varios servidores web interno pueda ser accedido desde Internet, sin cambiar ninguna de las reglas del firewall ni comprometiendo la seguridad de su red. Veremos como usar el módulo ProxyPass de Apache para lograr esto.

Escenario

Tenemos un servidor instalado con Linux Debian, el cual tiene configurado dos interfaces de redes, una con IP Publica Internacional (200.xx.xxx.46) y la otra con IP Privada Local (192.168.100.1) conectada a la red LAN donde se encuentran otros dos servidores con prestación de servicios web. En uno tenemos el Servidor de Correo con posibilidad de Webmail (192.168.100.2) y en el otro tenemos la Intranet (192.168.100.3)

mainserver = 200.xx.xxx.46 – 192.168.100.1
webmail = 192.168.100.2
intranet = 192.168.100.3

En los DNS públicos están registrado los dominios con la misma IP de mainserver.

webmail.dominio.com     A     200.xx.xxx.46
intranet.dominio.com    A     200.xx.xxx.46

Las peticiones llegarán primero al servidor publico y luego este se encargará mediante el ProxyPass de Apache redireccionar a los servidores locales.

Solución

Activando los módulos proxy proxy_http proxy_connect en el Apache de mainserver, creando un par de registros A en el servidor DNS local o en el propio hosts del servidor y creando los VirtualHost con sus respectivas configuraciones, damos solución al escenario planteado.

Activando los módulos proxy proxy_http proxy_connect

a2enmod proxy proxy_http proxy_connect

Creando y configurando el VirtualHost para webmail en el Apache

nano /etc/apache2/sites-available/webmail.dominio.com

webmail.dominio.com

<VirtualHost *:80>
        ServerName webmail.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/webmail.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/webmail.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://webmail.dominio.com/
        ProxyPassReverse / http://webmail.dominio.com/
</VirtualHost>

Creando y configurando el VirtualHost para intranet en el Apache

nano /etc/apache2/sites-available/intranet.dominio.com

intranet.dominio.com

<VirtualHost *:80>
        ServerName intranet.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/intranet.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/intranet.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://intranet.dominio.com/
        ProxyPassReverse / http://intranet.dominio.com/
</VirtualHost>

Habilitamos los dos VirtualHost que acabamos de crear

a2ensite webmail.dominio.com
a2ensite intranet.dominio.com

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Configurando DNS local ó Hosts de Linux

Evidentemente si en la zona dominio.com del DNS local ó en el Hosts de Linux no tenemos las entradas A de webmail e intranet donde apunten a sus respectivas IP Privada de la red local, de poco servirán los cambios realizados en el Apache.

nano /etc/hosts

Podemos agregar con mucho cuidado.

192.168.100.2     webmail.dominio.com
192.168.100.3     intranet.dominio.com

Post relacionado

Configuración de VirtualHost en Linux Debian con Apache2

Enlaces

Apache: http://httpd.apache.org/

Instalación de Apache2 con PHP5 y MySQL en Debian Lenny

LAMP es una abreviatura de Linux, Apache, MySQL y PHP. Este tutorial muestra cómo instalar un servidor web con Apache2 en un servidor Linux con Debian Lenny, con soporte para  PHP5 (mod_php) y MySQL.

Nota preliminar

En este tutorial se utiliza http://server.dominio.com cómo nombre del host con la dirección IP 192.168.100.1. Estos ajustes podrían ser diferentes para usted, así que debes sustituirlos en caso necesario.

Instalación de Apache2

Apache2 está disponible como un paquete de Debian, por lo que se puede instalar directamente desde cualquier repositorio oficial o DVD de Debian Lenny de la siguiente manera:

aptitude install apache2

Ahora dirige tu navegador a http://server.dominio.com y usted debería ver una página en blanco con el texto It works!.

it works

Por defecto el directorio raíz del Apache en Debian Lenny es /var/www y el archivo de configuración /etc/apache2/apache2.conf. Configuraciones adicionales se almacenan en los subdirectorios de /etc/apache2 como /etc/apache2/mods-enabled (para los módulos) y /etc/apache2/sites-enabled (para los hosts virtuales).

Instalación de PHP5

Podemos instalar PHP5 y el módulo de Apache PHP5 como sigue:

aptitude install php5 libapache2-mod-php5

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Obtener información sobre la instalación de PHP5

En el directorio raíz del Apache /var/www creamos un archivo .php (info.php).

nano /var/www/info.php

Insertamos la siguiente función nativa de PHP phpinfo().

<?php phpinfo(); ?>

Llamamos este archivo a través de un navegador http://server.dominio.com/info.php y mostrará un montón de detalles útiles sobre nuestra instalación de PHP incluida la versión instalada.

info.php

Instalación de MySQL 5 Instalamos MySQL 5 de la siguiente manera:

aptitude install mysql-server mysql-client

Se le pedirá que proporcione una contraseña para el usuario root de MySQL – Esta contraseña es válida para el usuario root@localhost, así como root@server.dominio.com:

New password for the MySQL "root" user: -- contraseñaparausuarioroot
Repeat password for the MySQL "root" user: -- contraseñaparausuarioroot

Soporte MySQL en PHP5

Para obtener soporte MySQL en PHP5, debemos instalar el paquete php5-mysql. Será necesario instalar otros módulos de PHP5 para un correcto funcionamiento de sus aplicaciones. Puede buscar módulos de PHP5 que estén disponibles el repositorio o DVD de Debian Lenny de esta manera:

aptitude search php5

Escoja los que necesite y los instala de la siguiente manera:

aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Recargue su navegado en la página http://server.dominio.com/info.php ahora debe encontrar gran cantidad de módulos nuevos, incluido el módulo de MySQL:

info.mysql

phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puede administrar sus bases de datos MySQL. Puede instalar esta aplicación de la siguiente manera:

aptitude install phpmyadmin

Verá la siguiente pregunta:

Web server to reconfigure automatically: -- apache2

Posteriormente, puede acceder a phpMyAdmin en http://server.dominio.com/phpmyadmin/:

phpmyadmin

Enlaces

Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
Debian: http://www.debian.org/
phpMyAdmin: http://www.phpmyadmin.net/