Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Temas Chaparra
Temas Chaparra
Contenidos
1 Introducción
2 Debian/Ubuntu
2.1 Consola
2.1.1 Actualizando la lista de software
2.1.2 Instalando Software
2.1.3 Actualizando Software
2.1.4 Borrando Software
3 Fedora/OpenSuse
3.1 Actualizando la lista de Software
3.2 Buscando Software
3.3 Instalando Sofware
3.3.1 Yum
3.3.2 RPM
3.4 Actualizando software
3.4.1 Yum
3.4.2 RPM
3.5 Borrando Software
3.5.1 Yum
3.5.2 RPM
4 Slackware
4.1 Usando herramientas oficiales
4.1.1 Instalando software
4.1.2 Actualizando software
4.1.3 Borrando Software
5 Gentoo
5.1 Actualizando lista de software
5.2 Buscando Software
5.3 Instalando Software
5.3.1 Versión Extendida
5.3.2 Paquetes Enmascarados
5.3.3 Bloqueo de paquetes
5.3.4 Dependencias circulares
5.4 Borrando software
5.5 Actualizando Software
6 Compilación
6.1 GNU Autotools
6.2 CMake
7 Referencias
Introducción
En linux tenemos diversas formas de instalación de software (paquetes), la más
usual y preferida por los usuarios de sistemas de escritorio es mediante un gestor
de paquetes, el cual es una pieza de software que se conecta a internet, a una
"librería" (repositorio) de software, para bajar, instalar software junto con sus
dependencias (es decir, todo aquello que un programa necesita para funcionar) y
actualizar los programas e incluso el sistema. de forma automática ...
básicamente al gestor de paquetes en una primera instancia se le indica en qué
repositorios buscar software (usualmente solo en la instalación de la distribución)
y se "actualiza", bajando ficheros con la lista de todos los programas en ese
repositorio, sus autores,descripción, dependencias, etc...
En este manual vamos a ver los métodos de instalación de las distribuciones más
populares al estilo "cheat sheet" ... y la forma manual de hacerlo
nótese que las formas de instalación se heredan como mencioné, así que el mismo
método aplica tanto en debian como en ubuntu por ejemplo
además, en algunos casos, los niveles requeridos y terminología usada son
distint@s (como por ejemplo, Ubuntu se mantiene lo más simple posible y en
gentoo se pide un mayor piso de conocimiento)
Debian/Ubuntu
En el caso de debian, tenemos el gestor de paquetes propio de la distribución
"Debian PacKage manaGer" y un formato de paquete propio : .deb (si descargamos
software de terceros, debe ser en este formato), y tenemos diferentes utilitarios
para hacer uso de el : apt-get, aptitude y dpkg
también tenemos una herramienta gráfica muy intuitiva y útil llamada synaptic, pero
no siempre puede estar disponible, así que también enseñaré la forma por consola
(El programa Synaptic)
Consola
Actualizando la lista de software
Tenemos dos formas de hacerlo, con aptitude y con apt-get, con ambas no debería
haber problemas, esto es algo que debermos realizar (dependiendo que rama
usemos) más o menos seguido para poder enterarnos vía esas listas de si hay
actualizaciones ...
aptitude update
con apt-get :
apt-get update
Buscando Software
Necesitás buscar un software en especial ? no recordás exactamente el nombre de
un paquete?
Instalando Software
Aquí disponemos de 3 formas de hacerlo, y siempre aconsejo dos : apt-get o
aptitude (preferentemente este)
pero, puede que quizá dicho software NO ESTÉ en los repositorios y que debamos
instalarlo de un archivo externo .deb usando dpkg
dpkg -i ./ruta-al-paquete-a-instalar.deb
aptitude full-upgrade
aptitude safe-upgrade
Borrando Software
¿No querés más un programa ? no hay problema, tenés dos formas de borrarlo :
remove y purge
remove simplemente borra el programa y purge incluye además los ficheros de
configuración ...
Fedora/OpenSuse
En el caso de Fedora (y también OpenSuse al usar el mismo gestor de paquetes) el
gestor es RPM/Yum (Yum = Yellow Dog Updater, Modified) y el formato es RPM
(Es un acrónimo recursivo : RPM Package Manager .. aunque antes significaba
Red hat Package Manager), las herramientas para usarlos son : yum y rpm
(normalmente usaremos el primero, ya que la segunda es de más bajo nivel)
yum check-update
Buscando Software
Si nos interesa buscar algún software en particular buscando por
nombre/descripción/sumario (ideal si no conocés el nombre del paquete, pero
sabés alguna palabra relacionada con el), simplemente tipeás :
Si nos interesa buscar en paquetes instalados, también podemos usar yum search,
o sino, más específicamente rpm :
rpm -qa
Instalando Sofware
Yum
Para instalar software, simplemente tipeamos
RPM
Para instalar un archivo rpm, disponés del comando "rpm" pasándole el parámetro
-i (install/instalar), algo así :
rpm -ivh /home/vertex/algunPaquete.rpm
en mi caso agregué el "vh" (verbose y hash mark) para mostrar algo más de
información mientras se instala el paquete ...
Actualizando software
En caso que quieras actualizar tu software tenés dos opciones, la más común es
usando yum, pero si tenés necesidades algo más avanzadas disponés de rpm
Yum
En el caso de yum es bastante sencillo, simplemente tipeamos
yum update
rpm -U /home/vertex/NuevaVersionDelPaquete.rpm
Borrando Software
En caso que no deseemos más un software, podemos hacerlo con rpm o yum ...
Yum
Tratándose de Yum, solo basta tipear :
yum update
RPM
En el caso de RPM, el comando es así:
nuevamente agregamos "v" para ver más detalles, pero en este caso sobre el
borrado del paquete...
Slackware
En el caso de Slackware, no hay un gestor de paquetes real, sí tenemos facilidades
a las que se llaman paquetes ... que básicamente son archivos .tgz o .tgx (a partir
de versión 13.0) que se descomprimen en /, ejecutan un script post-instalación y se
añade el paquete a la lista de paquetes en /var/log/packages
Instalando software
El método es bastante sencillo, teniendo el .tgz o .tgx :
installpkg ./paqueteAInstalar.tgx
o incluso alguna expresión con comodines, por ejemplo, instalemos todos los
paquetes del directorio actual :
installpkg ./*.tgx
Actualizando software
En este caso, el viejo paquete se borra y se instala el nuevo, veamos
upgradepkg ./package.tgx
upgradepkg ./*.tgx
upgradepkg viejopaquete%nuevopaquete
Borrando Software
removepkg nano
removepkg /var/log/packages/kde*
Gentoo
En el caso de Gentoo tenemos Portage como gestor de paquetes, está
implementado en Python y Bash, y está inspirado en el sistema de ports de BSD,
aunque tiene características avanzadas que el sistema de ports no tiene, como por
ejemplo resolución de dependencias, selección de características a gusto del
administrador (cosa que dispara o no dependencias), instalaciones falsas, paquetes
virtuales (es decir, determinados paquetes dependen de funcionalidades que no
están pegadas a un paquete en especial, sino a un paquete virtual, una
funcionalidad que puede otorgar uno o más paquete, ejemplo : syslog) y slots
("ranuras", sirve para usar diferentes ramas de un paquete)
emerge --sync
en caso que no quieras tanta información o que quieras ahorrar ancho de banda si
estás manejando una computadora que corre gento vía ssh, podés agregar --quiet
esto lo tenemos que hacer con suma responsabilidad, ya que a los que hagan sync
*muy* seguido, se los banea por un tiempo ...
Buscando Software
Buscando un Programa ? sencillo, tenemos dos formas : search y searchdesc
ambas soportan expresiones regulares, veamos la primera :
con esto buscaríamos en el nombre del paquete, vale destacar que --search puede
cambiarse por la forma corta que es -s
con esta orden buscamos todos los paquetes que incluyan gcc en el nombre o
descripción, --searchdesc puede ser reemplazado por -S
simple, no ?
Instalando Software
Esto es bastante simple y a la vez complejo, vamos por partes, para simplemente
instalar un paquete esto es lo que hay que hacer :
emerge nombrepaquete
Versión Extendida
Vamos a lo un poco más complejo y a "lo que corresponde"
para empezar, deberíamos partir desde /etc/make.conf así que, vamos a ello, este
es el mío al día de la fecha:
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
#agregar unicode
USE="mmx sse sse2 nvidia gphoto2 vdpau xvmc multilib hald bus acpi cdr dvd usb
shared_mem sockets ipv6 threads unicode posix cxx pch syslog zeroconf
lm_sensors alsa ncurses session cdda cddb openal zlib gzip ogg flac faac faad
vorbis speex theora mp3 mp4 mpeg lame xvid win32codecs x264 ffmpeg bluetooth
crypt ssl xml libwww curl rss msn cdb mtp sqlite3 innodb truetype fontconfig raw svg
svga png exif jpeg jpeg2k gif gd imagemagick openexr qt3 qt4 joystick scanner
xcomposite xine xv X opengl sdl libnotify kde plasma semantic-desktop mono gimp
-abiword -cups -cups-nepomuk -gcj -gnome"
# Additionals :
VIDEO_CARDS="nvidia"
CAMERAS="canon"
LINGUAS="es"
ACCEPT_LICENSE="PUEL"
# Mirrors
GENTOO_MIRRORS="ftp://mirrors.localhost.net.ar/pub/mirrors/gentoo "
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
para empezar, vamos por partes ...
CFLAGS serían los flags de compilación de software en C, CXXFLAGS los de C++
(estamos usando los mismos que los de C)
y en mi caso, el MAKEOPTS es las opciones que se pasan cuando se hace el
make, en mi caso puse una construcción o build paralelo, teniendo hasta 5 trabajos
(hay que aprovechar la cpu, no ? ;D )
ahora, también tenemos USE, que es de lo que vine hablando, aquí básicamente
tenemos la lista de cosas que queremos, y las que no (las que tienen un - como
prefijo)
esto sirve como extensión de USE que provee el perfil que usamos, a su vez, lo
que tenemos en /etc/portage/package.use sirve como extensión de esto, y
finalmente la variable de entorno USE que seteemos sirve como extensión (y tiene
mas prioridad) que lo anterior
este use en make.conf es uno general, y hay que tomar con pinzas lo que hagamos
acá, ya que podemos disparar dependencias circulares (cuando dos paquetes
dependen de si mismos)
en mi caso hay mucha redundancia, ya que no me fijé lo que ofrece el perfil que
uso (ni me importó, ya que si migro de perfil y cambia el USE, quiero conservar lo
mismo) ...
cada paquete que se compile, va a tener ese use, y si algo por ejemplo, tiene
soporte para X (como ffmpeg), se le compila, si tiene un wrapper para mono, se le
compila, si usa vorbis o zlib, se le indica que lo compile el soporte .... y así ...
el resto está bien cubierto por el handbook de gentoo (mirrors, licencias, cámaras,
lenguajes y tarjetas de videos ... eso y más!)
también podemos setear un USE por paquete que se complementa con lo del perfil
y make.conf como mencioné ...
esto lo hacemos en /etc/portage/package.use y tenemos que escribir el nombre
completo del paquete (categoría y nombre)
lo que tiene como prefijo el "-" (y está en azul), es lo que no se compila, el resto sí,
disparando las debidas dependencias (lo que está en rojo)...
otra forma es usando gentoolkit (emerge gentoolkit) para poder ver con más detalle
que es cada elemento en USE :
y listo, ahora, para instalar sería simplemente "emerge ffmpeg" (se aconseja hacer
el -pv antes para corroborar ...) y listo ...
en mi caso, como ya instalé ffmpeg, le aplico el nuevo USE, reinstalando ... sería :
"emerge --newuse ffmpeg" (o -N, esta acción implica update, actualizar)
Paquetes Enmascarados
Como veremos, no todos los paquetes están en la rama estable, aquellos paquetes
que están enmascarados por ~arch (en arch va la arquitectura), son los paquetes
inestables ...
como bien conté, pueden haber varias ramas de un mismo paquete, como por
ejemplo, en este momento kde-meta tiene la 4.3.5 y 4.4 ... o simmplemente no
están lo suficientemente testeados ... para poder habilitar estos paquetes, tenemos
dos formas, la general (la que aplica a los instalados y por instalar) y la "por
paquete", así como con USE ...
www-client/chromium ~amd64
también está el hard masking, que no voy a cubrir, ya que es un tema avanzado
(los paquetes que están con hard mask son por motivos especiales), para ello
consultar la documentación de portage ...
Bloqueo de paquetes
Cuando un paquete dispara un bloqueo es por que tener ambos paquetes puede
quebrar el sistema o superponer archivos ... usualmente es por que ambos
paquetes proveen idéntica funcionalidad ... por ejemplo : ssmtp y postfix
en ese caso, aparecería de esta forma :
Dependencias circulares
Si dos o más paquetes que queremos instalar dependen en sí mismos, se dispara
este error ... mostrándonos el árbol de dependencias ..
usualmente esto es producto de un mal uso de la variable USE en el make.conf ...
(por eso hay que preferir /etc/portage/package.use ) así como un bug en portage,
que se soluciona actualizando la lista de software ...
Borrando software
necesitás borrar algo ? esto es tan sencillo como
Nota : las dependencias pedidas por este software no se van a borrar, para eso se
aconseja hacer la secuencia del update/depclean/revdep-rebuild que vemos en la
sección de actualización
Actualizando Software
Después de tener una lista de software actualizada, podemos proceder
actualizando diferentes paquetes ya sea por nueva versión o por nuevo USE ...
la secuencia que suelo correr siempre es
ahora, si bien ese comando es lindo, es redundante, ya que newuse implica update,
y todo se pudo usar en versiones cortas, algo así :
hecho esto, tenemos que proceder a ver si hay inconsistencia en el linkeado (por
ejemplo, borramos sin querer una librería)
revdep-rebuild
Compilación
En esta sección explico un tema que suele ser la última instancia, caso que nuestro
gestor de paquete no nos provea el paquete que querramos y de la forma que
querramos (versión, soporte para tal o cual cosa compilada, etc ...)
GNU Autotools
Esta es el sistema de compilación más tradicional para sistemas unix-like, aunque
está empezando a ser reemplazado por otros sistemas como cmake, qmake, bjam,
scons, etc ...
el proceso se divide en 3 etapas : configuración, compilación e instalación ...
este proceso suele ser más complicado, ya que no es automático y en caso de
problemas necesitamos saber qué hacer ...
make
en caso que querramos indicarle a make que trate de hacer más tareas en paralelo,
podemos sugerirselo mediante el flag -j
make -j3
make install
CMake
CMake (que significa "Cross platform MAKE") a diferencia de otros sistemas, es
básicamente un generador de un sistema de build .. es decir, a diferencia de otros
sistemas genera desde Makefiles de Unix a .sln de Visual Studio desde un conjunto
de reglas escritas en CMakeLists.txt (que a diferencia de Make contiene aquí -o en
módulos- la configuración y instrucciones de compilación e instalación del software)
mkdir build
cd build
y ahora tenemos tres formas de generar el sistema de build con CMake ...
vamos por orden de dificultad... (más fácil a díficil)
la más simple es usando la interface gráfica basada en Qt, indicando que build es
donde compilar y que donde está CMakeLists.txt es donde está el source ...
dando a configure, elegimos el sistema de build (usualmente Unix Makefiles) y en
caso de que todo marche bien y no querramos cambiar nada, damos a configure de
nuevo y después a generate ...
la otra es usanco ccmake que es el comando cmake, pero con interface basada en
curses ...
acá es simple, estando en build, le pasamos como parámetro el donde se
encuentra CMakeLists.txt (en ".." básicamente) presionamos c, esperamos a que
configure, vemos los valores y en caso que no haya nada que tocar, c de nuevo y
para generar "g" ....
después tenemos cmake, que lo ejecutamos como ccmake la primera vez para
hacer el configure, y en caso de necesitar modificar algo, lo ejecutamos pasándole
"-D VARIABLE:TIPODEDATOS=VALOR" o sino, ejecutando cmake en modo
interactivo (indicando -i antes del directorio)
hecho esto, podemos proceder como con Autotools, haciendo el make y el make
install .. (y el opcional make clean)
Como ya debemos saber, Linux es uno de los sistemas operativos más utilizados en el
mundo y es competencia directa de Windows, pero debemos decir que la diferencia
más marcada entre ambos es que los paquetes de ofimatica de Linux son un poco
más complejos que los de Windows los cuales son mucho más sencillos de
utilizar.
Ahora bien, para que podamos conocer un poco más en profundidad acerca de la
ofimatica para Linux, podemos nombrar los programas básicos, los cuales son: Linux
Writer que seria el procesador de textos que sustituye a Word, y debemos decir que el
mismo es bastante poderoso considerando el hecho de que además de tener todas las
herramientas necesarias para realizar un texto, contamos con traductores, correctores
e incluso permite exportar el trabajo a pdf; Draw.
También tenemos una herramienta para dibujar como el Paint de Windows; Impress,
un creador de presentaciones en diapositivas similar al Power Point; Calc es la hoja de
cálculo que funcionaría como Excel con la cual podemos crear todo tipo de gráficos
además de que posee varias herramientas de análisis numéricos, y Math es un
creador de ecuaciones e impresiones matemáticas. Por lo general la mayoría de las
personas suelen optar por Windows debido a que los programas de ofimatica
correspondientes son muchos más sencillos que los paquetes de ofimatica para Linux,
no obstante debemos decir que éstos tienen muchas más ventajas ante Windows.
Los procesadores de texto son aquellos programas con los que podemos crear y
modificar archivos de texto de distintos formatos como lo son .txt, .doc, .docx, .odt,
.rtf, .pdf, y un largo etc…
En Windows tenemos la famosísima y super pirateada suite de ofimática Microsoft
Office, con la que podemos hacer mas que solo procesar textos. En nuestro mundo
Linux tenemos muchas opciones de software libre para poder usar. Algunos también
estan disponibles para Windows.
Está incluido en la suite OpenOffice / LibreOffice y es uno de los más usados. Soporta
el formato Open Document (.odt), y otros como el de Microsoft Word (doc, docx,
docm), ooxml, pdf, rtf, txt, psw, xml y otros formatos conocidos.
Tiene todas las funcionalidades que puedes esperar de un procesador de texto: texto
con formato, imagenes, autoformas, dibujo, corrección de texto, búsqueda de
palabras, alineación, ajustes, margenes, listas y numeraciones, formato avanzado,
asistente para imprimir documentos, tablas, hiperenlaces (vinculos), galería de
imagenes, notas, pie de pagina, reproductor de medios, mapa de caracteres y
símbolos, macros, marcos, plantillas, autoajuste y muchas cosas más. Viene por
defecto en algunas distribuciones al instalar el sistema.
2. Abiword
www.abisource.com
Incluye todas las herramientas necesarias para crear documentos: plantillas, estilos y
formato de texto y párrafo, cabeceras y pies de página, tablas, frames, autocorreción
de la ortografía, etc.
Personalmente se me hizo muy difícil de usar, sin embargo alguien que lo uso diario
batallará menos que yo
Mi favorito. Docs es la cloud suite de ofimática de Google, por estar en la nube tiene la
ventaja de que no ocupas instalar nada y puedes acceder a tus documentos desde
cualquier computadora con navegador web y acceso a internet. Lo que mas me gusta
de éste es que puedes compartir tus documentos con otras personas y la edición en
tiempo real es simplemente genial, puedes ver lo que otros modifican y ellos también
te verán a ti. Hay opcion de solamente permitir ver el documento sin modificarlo.
Además de documentos también se pueden crear presentaciones, hojas de cálculo,
etc. Vale la pena hecharle una mirada.
Como plus, puedes alojar hasta 2gB de archivos, no necesariamente documentos (Eh
guardado .EXEs y .JARs) y si ocupas mas espacio puedes adquirirlo a un muy bajo
costo anual.
Ademas de los anteriores, en el mundo Linux tenemos muchas otras opciones. Por
mencionar algunas JEdit, Geany, GEdit, Scribes, etc.