LinuxParty
Como sabemos la mayoría de las distribuciones Linux usan paquete precompilados, por poner un ejemplo Debian, RedHat, etc.
Gentoo en este sentido funciona diferente con respecto a otras distribuciones, ya que trabaja directamente con las fuentes (el código fuente de los programas) en lugar de los binarios, esto no quiere decir que no pueda trabajar con paquetes precompilados.
INSTALACIÓN
Lo primero que vamos a hacer, es buscar el paquete a instalar, en este ejemplo vamos a buscar el paquete "terminator", equivaldría a un "yum search terminator" en RedHat, etc o "apt-cache search terminator" en Debian
emerge -s nombre_paquete --> ej : emerge -s terminator
* media-sound/terminatorx
Latest version available: 3.82
Latest version installed: [ Not Installed ]
Size of files: 532 kB
Homepage: http://www.terminatorx.org/
Description: realtime audio synthesizer that allows you to "scratch" on digitally sampled audio data
License: GPL-2
* x11-terms/terminator
Latest version available: 0.96-r1
Latest version installed: 0.96-r1
Size of files: 258 kB
Homepage: http://www.tenshu.net/p/terminator.html
Description: Multiple GNOME terminals in one window
License: GPL-2
Nótese la información que nos da sobre el paquete, versiones disponible , instalada, el site de nuesta app,el tamaño, una breve descripción del mismo y la licencia de la misma.
Ahora si nosotros no recordamos el nombre de una aplicación,podemos hacer una búsqueda por descripción :
emerge -S palabra --> ej : emerge -S selinux
* sec-policy/selinux-xscreensaver [ Masked ]
Latest version available: 2.20120215
Latest version installed: [ Not Installed ]
Size of files: 600 kB
Homepage: http://www.gentoo.org/proj/en/hardened/selinux/
Description: SELinux policy for xscreensaver
License: GPL-2
* sec-policy/selinux-xserver [ Masked ]
Latest version available: 2.20120215
Latest version installed: [ Not Installed ]
Size of files: 600 kB
Homepage: http://www.gentoo.org/proj/en/hardened/selinux/
Description: SELinux policy for xserver
License: GPL-2
* sec-policy/selinux-zabbix [ Masked ]
Latest version available: 2.20120215
Latest version installed: [ Not Installed ]
Size of files: 600 kB
Homepage: http://www.gentoo.org/proj/en/hardened/selinux/
Description: SELinux policy for zabbix
License: GPL-2
Una vez sabemos el nombre del paquete sólo procedemos a instalarlo.
emerge nombre_paquete -->ej : emerge terminator
Algo un poquito mas personalizado :
emerge -vp --> Hace una simulación de como sería la instalación.
emerge -va --> Antes de realizar la instalación nos pide una confirmación Yes/No
emerge -vb --> Además de hacer el proceso de instalación, genera un binario del paquete a instalar.
FLAGS :
v --> verbose
p --> pretend
a --> ask
b --> buildpkg
Y así podemos combinarlo con muchas mas flags. Véase (man emerge)
VARIABLES DE ENTORNOS "USE"
Las variables de entornos USE sirven para definir un conjunto de paquetes (problemas, software, librerías) que serán utilizados en un progreso de compilación del sofware, generalmente se definen en los ficheros "make.conf" de cualquier paquete a compilar.
Ej de /etc/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=amdfam10 -O2 -pipe -fomit-frame-pointer -mno-3dnow -mcx16 -mpopcnt -mssse3 -msse4a -mmmx"
#CFLAGS="-march=i686 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
# 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="i686-pc-linux-gnu"
#AUDIO
USE="$USE acc alsa ao dts -esd exif flac gstreamer lame matroska mikmod modplug mp3 musepack -nas ogg openal -oss -raw theora vorbis wavpack mad amr"
#DESKTOP
USE="$USE gdu extras -avahi cairo calendar eds evo glitz gimp -gnome -gnome-keyring gphoto2 gtk kde libgda libnotify qt qt3support rdesktop rss semantic-desktop startup-notification unicode vnc zeroconf -telepathy policykit"
#DEV
USE="$USE git lm_sensors"
#DVD
USE="$USE a52 css dvd dvdread"
#HARDWARE
USE="$USE 3dnow acpi -apm ieee1394 lm_sensors mmx smp sse nvidia 3dnowext scanner"
#IM
USE="$USE msn yahoo"
#IMAGE
USE="$USE jpeg gd gif imagemagick imlib hpeg jpeg2k png svg tiff xpm"
#MISC
USE="$USE -acl cddb -doc encode -jadetex -laptop -latex mime musicbrainz pdf readline subversion taglib win32codecs xml -joystick offensive cjk -abiword fuse -accesibility svga vim-syntax"
#NETWORKING
USE="$USE imap -ldap -networkmanager ssl -tcpd wifi"
#OPTICAL
USE="$USE cdparanoia cdr dvdr cdda"
#SYSTEM
USE="$USE -python bash-completion bzip2 crypt cups dbus ftp gnutls gpm -hal loop-aes multilib pam posix samba sqlite sqlite3 symlink syslog sysvipc szip threads xattr zlib fam"
#VIDEO
USE="$USE ffmpeg mpeg mplayer opengl quicktime sdl svga vcd vdpau video x264 xine xv xvid -v4l2 dga"
#X
USE="$USE X dri fontconfig truetype xcb xcomposite xosd xprint xscreesaver"
Por otra parte podemos definir use dinámicas, por ejemplo si una aplicación usa wicd para GTK, la quisiéramos instalar sin las GTK
USE="-gtk" emerge -v wicd
Ahora supongamos que no queremos que wicd sea construido con soporte gtk, podríamos editar /etc/make.conf y anteponer "-" a nuestro use gtk, pero eso afectará a todo, tanto a nuestros paquetes nuevos como anteriores sin soporte para gtk lo cual representa un problema.
Para estos casos debe definir uses por paquete creando en un fichero llamado package.use entonces creamos el siguiente archivo y dentro de la misma ponemos lo siguiente:
${EDITOR} /etc/portage/package.use -> Abrimos el archivo.
net-misc/wicd -gtk --> Todas nuestras versiones no tendran soporte gtk
=net-misc/wicd-1.7.0 -gtk --> La version 1.7.0 no tendran soporte gtk
>=net-misc/wicd-1.7.0 -gtk --> La version 1.7.0 o mayores no tendran soporte gtk
Ej de un package.use
net-misc/dhcp -server
=dev-libs/libxml2-2.7.8-r5 python
=media-libs/libpng-1.5.10 apng
=sys-auth/pambase-20101024-r2 consolekit
=x11-libs/vte-0.28.2-r202 python
=dev-libs/keybinder-0.2.2 python
=net-im/pidgin-2.10.1 -gtk -gstreamer -eds
media-sound/moc acc
media-libs/libsdl fbcon joystick directfb
=dev-vcs/subversion-1.6.17-r7 -dso perl
games-emulation/advancemenu fbcon
games-emulation/gxmame joystick
Note que gracias a esto vamos a poder tener nuestro sistema lo mas personalizable posible y también vea la importancia de las mismas ya que una instalación para un desktop no es la misma que para un server por lo tanto las use : X qt4 kde gnome gtk serían innecesarias por lo cual nos ahorrarían muchas dependencias y aplicaciones innecesarias en nuestro OS, haría del mismo algo mucho mas liviano, etc.
DESINSTALACIÓN
Ahora cuando nosotros decidamos desinstalar un paquete lo vamos a hacer de la siguiente manera :
emerge -C terminator
Cuando haga esto va a notar que solo elimina el paquete y no toda las dependencias de la misma,si sabe con cuales dependencias se instala puede pasar a desinstalarlas pero esto no sería lo correcto ya que estas dependencias puede ser de otro paquete también , para ello lo que tenemos que hacer una vez desinstalado nuestra app es lo siguiente :
emerge -c
Buscará toda las dependencias que no sean necesarias para el sistema y pasará a desinstalarlas. Cuando haya terminado, necesitará reconstruir las aplicaciones que estuvieran enlazadas dinámicamente a las que acaban de ser eliminadas pero no son necesarias de la siguiente manera :
revdep-rebuild
ACTUALIZACIÓN
La actualización es esencial solo tiene que hacer :
emerge --update --ask world
Entonces lo que hará portage sera buscar las versiones mas actualizadas de sus paquetes instalados, pero no revisara sus dependencias para ello tendrá que hacer lo siguiente :
emerge --update --deep world
Y si ha estado modificando los parámetros use tendrá que usar lo siguiente.
emerge --update --deep --newuse world
Visite el manpage de emerge para tener mas información, yo en mi caso lo que hago es lo siguiente.
Primero hay que sincronizar el árbol de portage para tener nuestros paquetes al día.
emerge --sync
Esto va a sincronizar nuestro árbol de portage con el servidor rsync que elegimos a la hora de la instalación de nuestro sistema, esta variable se encuetra en nuestro archivo make.conf y su sintaxis es la siguiente :
SYNC="rsync://rsync6.us.gentoo.org/gentoo-portage"
Y después hago la actualización del sistema :
emerge -vatuND world
v --> verbose
a --> ask
t --> tree
u --> update
N --> new use
D --> depends
Una vez realizado esto ya tenemos nuestros sistema actualizado, quizás también sea apropiado ver que no halla dependencias innecesarias tras la actualización y reconstruir aquellas aplicaciones que se encuentren enlazadas dinámicamente a las dependencias eliminadas.
emerge -c
revdep-rebuild
Bien, hasta ahora vimos lo básico a la hora de instalar, desinstalar e incluso hacer una actualización completa del sistema.
Ahora para ir terminando les voy a dejar unas herramientas que nos van a ayudar mucho para trabajar con nuestros paquetes.
gentoolkit --> Conjunto de scripts para hacernos la vida mas facil
eix --> Para hacer busqueda y consultas.
genlop --> Para parsear la salida de emerge.log
Dentro de gentoolkit vamos a encontrar una herramienta que estuvimos usando previamente , recuerdan revdep-rebuild ?? y ademas de ello vamos a contar con equery , una herramienta que nos va a servir para hacer consultas a nuestros paquetes y asi poder tener un mejor control sobre ellos y manipular mucho mejor sus ajustes use entre otras cosas, ejemplo.
equery u wicd
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for net-misc/wicd-1.7.2.1:
U I
+ + X : Adds support for X11
+ + ambiance : Install icons from Ubuntu's ambiance theme
+ + gtk : Installs a gtk UI. This is enabled by default because it is intended behavior. Requires dev-python/pygtk
+ + libnotify : Enable desktop notification support
- - mac4lin : Change default icons to mac4lin icon set
+ + ncurses : Installs a ncurses UI
+ + nls : Adds Native Language Support (using gettext - GNU locale utilities)
- - pm-utils : Installs the pm-utils hooks for suspend/resume and requires sys-power/pm-utils
Con el modulo u vamos a poder ver los use con las cuales podemos configurar wicd y una breve descripcion de la misma para saber cual es su efecto.
equery f wicd
* Searching for wicd ...
* Contents of net-misc/wicd-1.7.2.1:
/etc
/etc/dbus-1
/etc/dbus-1/system.d
/etc/dbus-1/system.d/wicd.conf
/etc/init.d
/etc/init.d/wicd
/etc/logrotate.d
/etc/logrotate.d/wicd.logrotate
/etc/wicd
/etc/wicd/dhclient.conf.template.default
/etc/wicd/encryption
/etc/wicd/encryption/templates
Nos devulve la salida de todo lo instalado por wicd
equery y wicd
Keywords for net-misc/wicd:
| | u |
| a a p s | n |
| l m h i m m p s p | u s | r
| p d a p a 6 i p c 3 a x | s l | e
| h 6 r p 6 8 p p 6 9 s r 8 | e o | p
| a 4 m a 4 k s c 4 0 h c 6 | d t | o
---------------------------------+---------------------------+-----+-----------------------
1.7.0 | o + o o o o o + + o o o + | # 0 | gentoo
1.7.0-r1 | o ~ o o o o o ~ ~ o o o ~ | # | gentoo
1.7.1_beta2-r4 | o + o o o o o + + o o o + | o | gentoo
1.7.1_pre20111210-r | o ~ o o o o o ~ ~ o o o ~ | # | gentoo
1.7.1_pre20120127 | o + o o o o o + ~ o o o + | o | gentoo
1.7.1_pre20120127-r1 | o ~ o o o o o o o o o o ~ | # | gentoo
1.7.1 | o ~ o o o o o o o o o o ~ | # | gentoo
1.7.1-r1 | o ~ o o o o o o o o o o ~ | # | gentoo
1.7.1-r2 | o ~ o o o o o o o o o o ~ | # | gentoo
1.7.1-r3 | o ~ o o o o o o o o o o ~ | # | gentoo
1.7.2.1 | o + o o o o o o o o o o + | o | gentoo
1.7.2.3 | o ~ o o o o o o o o o o ~ | o | gentoo
Devuelve las keyword para determinado packete y asi sabremos que versión es estable, cual no y para que arquitectura.
equery h vim-syntax
* Searching for USE flag vim-syntax ...
[IP-] [ ] app-admin/conky-1.8.1-r6:0
[IP-] [ ] dev-util/cmake-2.8.6-r4:0
[IP-] [ ] dev-vcs/subversion-1.6.17-r7:0
[IP-] [ ] net-misc/dhcp-4.2.3_p1:0
[IP-] [ ] sys-devel/llvm-2.9-r2:0
[IP-] [ ] sys-libs/pam-1.1.5:0
[IP-] [ ] x11-libs/gtk+-2.24.10-r1:2
[IP-] [ ] x11-libs/gtk+-3.2.4-r1:3
[IP-] [ ] x11-wm/fluxbox-1.3.2:0
Aca le pasamos como parametro una use y nos va a decir todo los paquetes que estén con soporte para esa use.
equery s vim
* app-editors/vim-7.3.409
Total files : 9
Total size : 1.61 MiB
Tamaño de un paquete.
equery d vim
* These packages depend on vim:
app-admin/conky-1.8.1-r6 (vim-syntax ? app-editors/vim)
app-vim/dhcpd-syntax-20030825 (>=app-editors/vim-7.0)
app-vim/fluxbox-syntax-1.5 (>=app-editors/vim-7.0)
app-vim/genindent-1.1 (>=app-editors/vim-7.0)
app-vim/gentoo-syntax-20120109 (>=app-editors/vim-7.0)
app-vim/gtk-syntax-20110214-r1 (>=app-editors/vim-7.0)
app-vim/pam-syntax-20060424 (>=app-editors/vim-7.0)
app-vim/vim-spell-es-20060208 (>=app-editors/vim-7_alpha)
dev-util/cmake-2.8.6-r4 (vim-syntax ? app-editors/vim)
sys-devel/llvm-2.9-r2 (vim-syntax ? app-editors/vim)
virtual/editor-0 (app-editors/vim)
virtual/pager-0 (app-editors/vim[vim-pager])
Las dependencias de vim.
equery g vim
* dependency graph for app-editors/vim-7.3.515
`-- app-editors/vim-7.3.515 [~x86 keyword]
`-- dev-lang/python-2.7.2-r3 (=dev-lang/python-2*) x86
`-- app-admin/eselect-vi-1.1.7-r1 (>=app-admin/eselect-vi-1.1) x86
`-- sys-apps/sed-4.2.1 (>=sys-apps/sed-4) x86
`-- sys-devel/autoconf-2.68 (sys-devel/autoconf) x86
`-- sys-libs/ncurses-5.9 (>=sys-libs/ncurses-5.2-r2) x86
`-- virtual/libintl-0 (virtual/libintl) x86
`-- dev-util/cscope-15.7a-r1 (dev-util/cscope) x86
`-- sys-libs/gpm-1.20.6 (>=sys-libs/gpm-1.19.3) x86
`-- dev-lang/perl-5.12.4-r1 (dev-lang/perl) x86
`-- sys-apps/acl-2.2.51 (sys-apps/acl) x86
`-- dev-lang/ruby-1.8.7_p357 (=dev-lang/ruby-1.8*) x86
`-- x11-libs/libXt-1.1.1 (x11-libs/libXt) x86
`-- x11-libs/libX11-1.4.4 (x11-libs/libX11) x86
`-- x11-libs/libSM-1.2.0 (x11-libs/libSM) x86
`-- x11-proto/xproto-7.0.22 (x11-proto/xproto) x86
`-- dev-util/ctags-5.8 (dev-util/ctags) x86
`-- app-editors/vim-core-7.3.515 (~app-editors/vim-core-7.3.515) [~x86 keyword]
[ app-editors/vim-7.3.515 stats: packages (18), max depth (1) ]
De quien depende vim
equery b /etc/ssh/sshd_config
* Searching for /etc/ssh/sshd_config ...
net-misc/openssh-5.9_p1-r4 (/etc/ssh/sshd_config)
Le pasamos un archivo y nos dice a quien pertenece
equery l '*'
equery l 'app-vim/*'[/c]
* Searching for * in app-vim ...
[IP-] [ ] app-vim/dhcpd-syntax-20030825:0
[IP-] [ ] app-vim/fluxbox-syntax-1.5:0
[IP-] [ ] app-vim/genindent-1.1:0
[IP-] [ ] app-vim/gentoo-syntax-20120109:0
[IP-] [ ] app-vim/gtk-syntax-20110214-r1:0
[IP-] [ ] app-vim/pam-syntax-20060424:0
[IP-] [ ] app-vim/vim-spell-es-20060208:0
Para saber todo los paquetes instalados, se puede hacer filtro por categorias.
Ahora si quisiéramos saber por ejemplo que paquete fue instalado , cual eliminado y cuando haremos uso de la herramienta genlop de la siguiente manera.
genlop -l |grep ">" |tail -n5[/b
Fri May 11 02:57:52 2012 >>> dev-libs/nss-3.13.4
Fri May 11 03:03:20 2012 >>> app-emulation/qemu-kvm-1.0.1
Fri May 11 03:03:34 2012 >>> www-plugins/adobe-flash-11.2.202.235
Fri May 11 03:04:33 2012 >>> dev-libs/libisofs-1.2.2
Fri May 11 03:05:35 2012 >>> dev-libs/libburn-1.2.2
Los ultimos 5 instalados
genlop -lu |grep "<" |tail -n5
Fri May 11 02:57:50 2012 <<< dev-libs/nss-3.13.3
Fri May 11 03:03:19 2012 <<< app-emulation/qemu-kvm-0.15.1-r1
Fri May 11 03:03:32 2012 <<< www-plugins/adobe-flash-11.2.202.228
Fri May 11 03:04:32 2012 <<< dev-libs/libisofs-1.1.6
Fri May 11 03:05:34 2012 <<< dev-libs/libburn-1.1.8
Los últimos 5 desinstalados
Y algo que nos va a servir o a mi me sirve a veces , es cuando instalamos un paquete queremos saber cuanto va a tardar el proceso de compilacion ya que para todos no es el mismo.
Para ello cuando vallamos a insltalar un paquete podemos hacer uso del siguiente comando.
watch -d genlop -cn
Y nos mostrará el tiempo transcurrido y el que falta para que termine la compilación de la aplicación.
Por último les dejo otra alternativa mucho mas rápida para hacer búsquedas ya que emerge suele tardar demasiado y EIX hace uso de una base de datos almacenada para realizaar las búsquedas por lo cual los resultados son mucho pero mucho mas rápido, sino haga la siguiente prueba.
Instalae eix y luego genere la base de datos.
eix-update
y luego fijese que tarda mas :
eix selinux
emerge -s selinux
además de que con eix podemos buscar por categorías, por paquetes instalados, por descripcion,por licencia, por site, por categoría ,por use, etc.
-
Linux
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa