[HOW TO] Sistema APT - Agregar o eliminar aplicaciones

Responder
Alejandro Donato
Avanzado
Avanzado
Mensajes: 34
Registrado: Vie Nov 19, 2010 6:40 am
Ubicación: Río Cuarto - Córdoba

[HOW TO] Sistema APT - Agregar o eliminar aplicaciones

Mensaje por Alejandro Donato » Mar Mar 01, 2011 7:13 am

Nuestro servidor, una vez armado, es básico. O sea, solo tiene la capacidad de realizar tareas base, o sea, ponerse en línea y habilitar la consola remota de comandos. No tiene mucho uso de esta forma, ya que no esta corriendo ningún servicio mas que los básicos, que no son muy útiles, mas que para administrarlo.

Como vimos en este post, al momento de armar el server, uno de los paquetes de soft que instalamos fue "OpenSSH". El mismo sirve para poder conectarse al server de forma remota, desde otro equipo, y así, darle instrucciones al server para realizar tareas.

La idea, como ya se dijo, es que los server se administren remotos. Estos equipos suelen estar las 24 horas en servicio, y no tiene sentido que tengan en funcionamiento, mas que lo necesario. Monitor, teclado, mouse, son accesorios que no se utilizan en este tipo de servidores. Todo se hace remoto, desde algún terminal con acceso a la red donde el server reside, y si el mismo tiene acceso web, practicamente se puede manejar desde cualquier lado.

Para agregar o quitar aplicaciones del servidor, primero que nada debemos acceder a la consola del mismo. Un acceso remoto a la consola, es práctimante idéntico a conectarle un teclado y un monitor y usar de forma local. O sea, en términos generales, este tipo de acceso (el local, o sea, con monitor y teclado directo al servidor), no suele ser necesario, salvo una emergencia donde haya dejado de funcionar la red, cosa que casi nunca sucede, ya que es uno de los servicios mas básicos que integran el sistema.

Podemos acceder via SSH (en ingles Secure SHell, por eso el server corre el servicio OpenSSH). Para esto, existen clientes en cualquier plataforma. Por SSH no solo se puede acceder a la consola, sino que además se pueden copiar desde y hacia/mover/borrar archivos.

En nuestro escenario, asumamos que el cliente a utilizar es para Windows, uno de los mejorcitos por lo sencillo y completo es el PuTTY. Viene en varias partes, en la sección downloads encontraremos la posibilidad de descargar todas las partes, o una en particular. Son ejecutables, por lo que, no hace falta instalarlos, solo bajarlos y correrlos.

El que vamos a utilizar, es el ejecutable PuTTY, que es el cliente para conexión directa a consola. Hay algún que otro Manual en línea, para el que quiera profundizar en el asunto.

Veamos que se ve, cuando, una vez descargado, lo ejecutamos:

1 - Configurar la conexión

Abrimos el programa, y nos lleva a la siguiente pantalla

Imagen

PuTTY permite manejar casi todos los tipos de conexión de consolas remotas. No vamos a ahondar mucho en su funcionamiento (aunque es muy completo) el uso que le vamos a dar va a ser simplemente el de entrar a la consola del servidor.

Para ello, completamos el campo Host Name (or IP ADDRESS) con la IP del server. Si nos vamos a conectar desde nuestra red, seria una IP del tipo privada (en el ejemplo 10.0.0.1). Si el server esta directo a internet (o tiene un tunel configurado en el router) podemos usar, si le colocamos algún servicio de DNS dinámico (para que convierta nuestra IP pública en una dirección), la dirección pública de la conexión.

Imagen

Colocada la dirección, debemos además completar el puerto a usar. Por defecto el puerto para SSH es el 22, pero luego, en algún post referente a seguridad, veremos porque no es conveniente utilizar este puerto y como cambiarlo.

2 - Conectando a la consola remota

Luego de completar esos dos datos (dirección y puerto) presionamos OPEN (abajo a la derecha) y veremos la siguiente advertencia...

Imagen

Esta advertencia nos indica que nos vamos a conectar a un host que el programa no conoce, y, por seguridad, nos pide que confirmemos que es un host confiable. Esto se hace, porque, por ejemplo, si alguien redirigiera la IP o modificara algo en el server, el programa lo notaría (ya que la "llave SSH" cambia cuando alteran algo o es otro host) y nos informaría. Esto tambien lo veremos en el post sobre seguridad.

Contestando "SI", nos mostrará...

Imagen

Esa ya es la consola remota. O sea, lo que vemos aquí sería lo mismo que vemos si ponemos un monitor y un teclado en el server. De ahí que, utilizando este sistema, no es necesario ponerle ningún accesorio al server.
Lo que nos pode el server es, el nombre de usuario que seteamos cuando instalamos. Por cuestiones de seguridad, y si bien en el ejemplo voy a logear como "root" (el super usuario, con permiso de alterar lo que sea), por defecto,y con el server apenas instalado, esta cuenta viene desactivada.
Ubuntu utiliza un sistema para las acciones del superoperador, llamado "sudo". Por lo tanto, nos permite logearnos con un usuario normal y luego, mediante "sudo" y en la consola, acceder a los permisos de superusuario.

Para logearse entonces, utilizamos el nombre de usuario y la contraseña que definimos cuando instalamos.

3 - Logeo efectivo, ya podemos manejar el server


Si el usuario y la contraseña son colocados correctamente, veremos:

Imagen

El server nos da la bienvenida, nos informa versión de sistema que corre, datos de carga, uso, direcciones IP, e incluso el último IP que se logeo a la consola.

** Imágenes hosteadas en imgur.com, capturadas por el autor.

Felicitaciones!!! ya estas administrando tu server vía consola.

Ahora, lo mas importante, que hacemos allí? de que sirve la consola?

La consola nos permite darle órdenes al server, tanto para ejecutar algo, configurarlo, agregarle programas, e incluso apagarlo.

En la distribución que estamos utilizando (Ubuntu), se pueden agregar cosas de dos formas (como en casi todas las demás distribuciones de Linux).
Una es, instalando una versión pre-compilada de la aplicación, por medio de algún gestor de paquetes pre-compilados, y la otra, es compilarlos uno mismo dentro del mismo server.

Desglosemos la última oración:

Que es compilar algo?

Los programas se escriben en algún lenguaje de programación (habrán oído hablar de alguno, como ser C, C++, Visual Basic, etc) que una persona pueda "entender". Utiliza instrucciones humanamente entendibles, como "print" (en inglés imprimir) lo que hace que en la pantalla u otro dispositivo de salida se escriba algo. Como esa, y depende el lenguaje, hay miles de instrucciones. Toda la secuencia se considera un programa. El programa, escrito en ese código fuente en el lenguaje original, necesita, para correr de forma efectiva en cualquier equipo, ser "compilado". Un compilador lo que hace es convertir ese código entendible por los humanos, por otro mucho mas efectivo para ser leido por una máquina. Con esto, se gana muchísima velocidad (ya que la máquina no tiene que interpretar las ordenes, solo seguirlas) y se hace mas seguro el programa (ya compilado, modificarlo es muy complicado).

Una versión pre-compilada, es un programa que ya ha sido compilado especialmente para una versión de sistema específica. Lo bueno de estas versiones, es que ya están corregidas y probadas en nuestra distribución, con lo que, instalarlas es seguro y van a funcionar sin duda.

1 - Instalando programas con APT

Esta es la manera mas simple, ya que, la gente que maneja la distribución, se encarga de compilar los programas para la versión de Linux que usemos, y ponerlas en una biblioteca para su descarga.
Esto hace muy fácil buscar e instalar algo.
APT es uno de los sistemas de administración de "paquetes" de software mas cómodos de utilizar. En linux, cada programa, tiene "dependencias". Las dependencias son, librerías de instrucciones, o incluso, otros programas, necesarios para correr algo. APT, cuando le pedimos que instale un programa, se encargará además de instalar sus dependencias, para asegurarse que el mismo funcione.

Los programas y las dependencias almacenadas en los "repositorios" se software (así se llama a los server donde se almacenan las versiones precompiladas de los programas para las distintas distribuciones), son instalados y actualizados (si sale una versión nueva y esta probada, es publicada en los repositorios y el sistema nos informará de ello) simplemente con una línea de comandos.

El sistema APT tiene varias partes, las que utilizaremos son:

apt-get update : Esta instrucción, escrita asi en la consola, actualiza la lista de paquetes de software disponibles. Dependiendo del país que se haya seleccionado en la instalación, utiliza los repositorios mas cercanos. Hay repositorios por todo el mundo. Este comando descarga la lista de soft y la actualiza. Solo eso, no realiza ninguna actualización en si.

Código: Seleccionar todo

root@DSServer:~# apt-get update
Obj http://security.ubuntu.com lucid-security Release.gpg                          
Ign http://security.ubuntu.com/ubuntu/ lucid-security/main Translation-es          
Ign http://security.ubuntu.com/ubuntu/ lucid-security/restricted Translation-es    
Obj http://archive.canonical.com lucid Release.gpg                                 
Ign http://archive.canonical.com/ubuntu/ lucid/partner Translation-es              
Ign http://security.ubuntu.com/ubuntu/ lucid-security/universe Translation-es      
Ign http://security.ubuntu.com/ubuntu/ lucid-security/multiverse Translation-es  
Obj http://security.ubuntu.com lucid-security Release                            
Obj http://ar.archive.ubuntu.com lucid Release.gpg
........
Des:14 http://ar.archive.ubuntu.com lucid-backports/multiverse Sources [1.633B]    
Descargados 2.247kB en 10s (217kB/s)                                               
Leyendo lista de paquetes... Hecho
apt-get upgrade : Esta instrucción, nos informará cuantos paquetes de los que tenemos instalados han sido actualizados, nos informará cuantos datos tiene que descargar (dependiendo del paquete pueden ser solo uno Kb o varios MB) y si queremos actualizarlos. Realizando esto, se respeta la instalación anterior, o sea, no se pierden ni datos ni configuraciones, y, en caso que algo no sea "compatible" con la versión instalada, se nos preguntará si aceptamos actualizar a riesgo que haya que reconfigurar algo.
Por lo general, actualizar los programas, sirve para solucionar algún problema o agregar nuevas funcionalidades. Como todo sistema, tiene actualizaciones de seguridad (que si o si conviene instalar y no alteran nada) hasta mejoras de versión (que agregan mas funcionalidades a los programas, pero son opcionales). Y.. lo mejor de todo... gratis.

Código: Seleccionar todo

root@DSServer:~# apt-get upgrade
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se actualizarán los siguientes paquetes:
  linux-firmware
1 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 10,2MB de archivos.
Se utilizarán 0B de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? 
Respondemos con s (si) y...

Código: Seleccionar todo

¿Desea continuar [S/n]? s
Des:1 http://ar.archive.ubuntu.com/ubuntu/ lucid-updates/main linux-firmware 1.34.4 [10,2MB]
Descargados 10,2MB en 23s (435kB/s)                                                
(Leyendo la base de datos ...  00%
140686 ficheros y directorios instalados actualmente.)
Preparando para reemplazar linux-firmware 1.34.3 (usando .../linux-firmware_1.34.4_all.deb) ...
Desempaquetando el reemplazo de linux-firmware ...
Configurando linux-firmware (1.34.4) ...
apt-cache search soccer : Y esto? nos devolverá una lista de programas que haya en los repositorios que sean... de soccer (futbol)!!! no todo es trabajo en la vida!!!. Remplazando "soccer" por lo que estemos buscando (ejemplo para cosas relacionadas con WIFI, ponemos wifi) podemos ver, de forma rápida, todo lo que haya disponible y que tenga algo que ver con WIFI (en inglés redes inalámbricas).
Las descripciones de los programas, están traducidas en cierta cantidad. Algunos programas muestran el nombre del paquete (que utilizaremos para instalarlo) y la descripción en español, otros no... pero verán que salen muchos en la lista.

Código: Seleccionar todo

root@DSServer:~# apt-cache search soccer
etw - arcade-style soccer game
etw-data - graphics and audio data for etw
apt-get install etw : Asumamos que en la lista anterior encontramos "etw" como el paquete que necesitamos instalar. Con esa línea... lo instalamos!. Así nomas, el APT lo baja, baja ademas dependencias si las necesita,lo configura y listo. Nos deja el sistema listo para correrlo!

Código: Seleccionar todo

root@DSServer:~# apt-get install etw
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalaron de forma automática los siguientes paquetes y ya no son necesarios.
  libdb4.6 libnids1.21
Utilice «apt-get autoremove» para eliminarlos.
Se instalarán los siguientes paquetes extras:
  etw-data
Se instalarán los siguientes paquetes NUEVOS:
  etw etw-data
0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 8.232kB de archivos.
Se utilizarán 17,3MB de espacio de disco adicional después de esta operación.
Con esto, ya podemos comenzar a buscar e instalar los paquetes necesarios o deseados en nuestro server.

Hay otros gestores de paquetes, mas "gráficos" pero mas complicados también (como el aptitude). Va en gustos cual utilizar.
No olvidemos que solo tenemos consola (y no interfase gráfica) por lo que, cuanto mas simple mas claro.

En post subsiguientes, veremos paquetes de uso común, o sea, cosas útiles a tener en nuestro server y que a su vez, nos permitiran manejarlo comodamente.

Fernando Giachero
Fundador
Fundador
Mensajes: 10307
Registrado: Vie Oct 30, 2009 10:59 am
Ubicación: Córdoba (Argentina)
Contactar:

Re: [HOW TO] Sistema APT - Agregar o eliminar aplicaciones

Mensaje por Fernando Giachero » Dom Mar 06, 2011 8:12 am

Extraordinario desarrollo Alejandro!!

Muchísimas gracias por tan buena colaboración

Responder