OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Clase de empaquetado rpm. Parte 3 - Compilando e instalando desde las fuentes.
En esta clase no vamos a usar rpmbuild, simplemente trataremos de explicar como se compila e instala desde fuentes, que es lo que se hace al empaquetar.
Obs (por Ángel Jiménez):
Se trata de compilar un programa e instalarlo en el sistema, en un
directorio objetivo. Los pasos son:
1. Instalar dependencias descritas en el archivo INSTALL
2. Compilación (comando make)
3. Instalación (comando make install). La instalación se realiza en
el directorio por defecto. Normalmente es /usr/local, pero sin embargo
en Mandriva, los cánones marcan que hay que instalar en /usr
directamente. De ahí que se necesitan permisos de root. Cuando lo
empaquetemos, lo instalaremos en la 'jaula rpm', para lo
cual no son necesarios privilegios de root
Vamos a trabajar con un programa muy fácil de empaquetar, y muy pequeño. Gnetworktester
http://sourceforge.net/projects/gnetworktester/
Para empaquetar/instalar necesitamos las fuentes, se puede empaquetar/instalar a partir de binarios pero lo correcto es hacerlo desde
fuentes, para esto vamos al sitio del proyecto y buscamos algo como "Source Code", "SRC" o similar.
Para empezar bajamos el programa, lo haré en el directorio SOURCES
[wilson en localhost ~]$ cd ~/rpm/SOURCES/
[wilson en localhost SOURCES]$ wget -c http://ufpr.dl.sourceforge.net/project/gnetworktester/gnetworktester/0.11.1/gnetworktester_0.11.1-1.tar.gz
Luego hay que extraer el contenido, yo lo hago con ark :D(por consola "tar zxvf programa-X.XX.tar.gz" el cómo lo hacemos
no es importante).
[wilson en localhost SOURCES]$ ls gnetworktester_0.11.1-1.tar.gz [wilson en localhost SOURCES]$ tar zxvf gnetworktester_0.11.1-1.tar.gz [wilson en localhost SOURCES]$ ls
gnetworktester-0.11.1/ gnetworktester_0.11.1-1.tar.gz
Dentro de "gnetworktester-0.11.1/" esta el archivo INSTALL que nos dice que necesitamos:
[wilson en localhost SOURCES]$ cd gnetworktester-0.11.1/
Nombre de dependencia <> Nombre en Mandriva
Python >= 2.4. ... python
pygtk >= 2.8. ... pygtk2.0
python-libglade ... pygtk2.0-libglade y libglade2.0_0 (solo adivino ya que no existe "python-
libglade")
librsvg2 ... librsvg2
net-tools ... net-tools
iputils (iputils-ping) or fping ... iputils
traceroute ... traceroute
xdg-utils ... xdg-utils
El install no especifica ninguna dependencia para compilar, veremos que cosa pide en el momento del 'make'.
Opcionales:
nmap ... nmap
gnuplot ... gnuplot
python-pydot (pydot) ... python-dot
python-sexy ... python-sexy
iperf ... iperf
python-geoip ... python-geoip
Las dependencias solo las buscamos con "urpmq --fuzzy nombre", luego al compilar veremos si se queja por algo no instalado, pero por ahora instalaremos esas:
[root en localhost ~]# urpmi xdg-utils traceroute iputils net-tools librsvg2 pygtk2.0-libglade libglade2.0_0 pygtk2.0 python
Para las dependencias opcionales:
[root en localhost ~]# urpmi nmap gnuplot python-dot python-sexy iperf python-geoip
Ya instaladas las dependencias vemos que nos indica el INSTALL:
Installing gnetworktester
-------------------------
Installation Procedure:$ make
$ make installYou can to specify where to install do:
$ make PREFIX=custom_path install
Usaremos "make" y "make install".
Volviendo a la terminal/pestaña donde estamos como user non-root hacemos un:
[wilson en localhost gnetworktester-0.11.1]$ make
cd src &&\
python -c "import compileall, re; compileall.compile_dir('./', rx=re.compile('/[.]svn'), force=True)"
Listing ./ ...
Compiling ./askwindow.py ...
Compiling ./autoconfig.py ...
Compiling ./autoconfiggui.py ...
Compiling ./collect_funcs.py ...
Compiling ./config.py ...
Compiling ./debug.py ...
Compiling ./globs.py ...
Compiling ./gnetworktester.py ...
Compiling ./googlemap.py ...
Compiling ./gui_funcs.py ...
Compiling ./history_graph.py ...
Compiling ./hostentry.py ...
Compiling ./mailer.py ...
Compiling ./netmap.py ...
Compiling ./nmap.py ...
Compiling ./open_with.py ...
Compiling ./ping.py ...
Compiling ./pref.py ...
Compiling ./prefwindow.py ...
Compiling ./reg.py ...
Compiling ./report.py ...
Compiling ./restore.py ...
Compiling ./speedgui.py ...
Compiling ./speedtestnet.py ...
Compiling ./speedtestnetgui.py ...
Compiling ./tester.py ...
Compiling ./testing.py ...
Compiling ./traceroute.py ...
Compiling ./trayicon.py ...
Listing ./web ...
Listing ./web/cgi-bin ...
Listing ./web/htdocs ...
Compiling ./work_table.py ...
msgfmt --strict --check po/ru.po -o gnetworktester.ru.mo
Antes podríamos ver el help de make, pero no es necesario, para quien tenga curiosidad simplemente debe hacer:
[wilson en localhost gnetworktester-0.11.1]$ make --help
Como vemos terminó el compilado sin ningún error :D, ya podemos pasar al próximo paso:
$ make install
El make install necesita privilegios de administrador(voy a hacerlo con "su" y no con "su -" porqué este último me cambia el path, me mueve a /root):
[wilson en localhost gnetworktester-0.11.1]$ su
Contraseña:
[root en localhost gnetworktester-0.11.1]# make install
cd src &&\
python -c "import compileall, re; compileall.compile_dir('./', rx=re.compile('/[.]svn'), force=True)"
Listing ./ ...
Compiling ./askwindow.py ...
Compiling ./autoconfig.py ...
Compiling ./autoconfiggui.py ...
Compiling ./collect_funcs.py ...
Compiling ./config.py ...
Compiling ./debug.py ...
Compiling ./globs.py ...
Compiling ./gnetworktester.py ...
Compiling ./googlemap.py ...
Compiling ./gui_funcs.py ...
Compiling ./history_graph.py ...
Compiling ./hostentry.py ...
Compiling ./mailer.py ...
Compiling ./netmap.py ...
Compiling ./nmap.py ...
Compiling ./open_with.py ...
Compiling ./ping.py ...
Compiling ./pref.py ...
Compiling ./prefwindow.py ...
Compiling ./reg.py ...
Compiling ./report.py ...
Compiling ./restore.py ...
Compiling ./speedgui.py ...
Compiling ./speedtestnet.py ...
Compiling ./speedtestnetgui.py ...
Compiling ./tester.py ...
Compiling ./testing.py ...
Compiling ./traceroute.py ...
Compiling ./trayicon.py ...
Listing ./web ...
Listing ./web/cgi-bin ...
Listing ./web/htdocs ...
Compiling ./work_table.py ...
msgfmt --strict --check po/ru.po -o gnetworktester.ru.mo
install -d -m 0755 /usr/bin
install -d -m 0755 /usr/share/gnetworktester/data/glade
install -d -m 0755 /usr/share/gnetworktester/data/pixmaps
install -d -m 0755 /usr/share/gnetworktester/data/pixmaps/flags
install -d -m 0755 /usr/share/gnetworktester/src
install -d -m 0755 /usr/share/applications
install -d -m 0755 /usr/share/locale/ru/LC_MESSAGES
install -d -m 0755 /usr/share/pixmaps
install -d -m 0755 /etc
install -m 0755 gnetworktester /usr/bin/
install -m 0644 src/*.py /usr/share/gnetworktester/src/
install -m 0644 data/glade/*.glade /usr/share/gnetworktester/data/glade/
install -m 0644 data/pixmaps/*.svg /usr/share/gnetworktester/data/pixmaps/
install -m 0644 data/pixmaps/*.png /usr/share/gnetworktester/data/pixmaps/
install -m 0644 data/pixmaps/flags/*.png /usr/share/gnetworktester/data/pixmaps/flags/
install -m 0644 data/pixmaps/flags/FLAGS_LICENCE /usr/share/gnetworktester/data/pixmaps/flags/
install -m 0644 gnetworktester.cfg /etc/gnetworktester.cfg
install -m 0644 gnetworktester.ru.mo /usr/share/locale/ru/LC_MESSAGES/gnetworktester.mo
install -m 0644 gnetworktester.svg /usr/share/gnetworktester/data/pixmaps/
install -m 0644 gnetworktester_icon.svg /usr/share/pixmaps/gnetworktester.svg
install -m 0644 gnetworktester.xpm /usr/share/pixmaps
install -m 0644 gnetworktester.desktop /usr/share/applications
[root en localhost gnetworktester-0.11.1]#
Listo, compilado e instalado. Este programa es muy sencillo, el objetivo es mostrar como se sigue las propias
indicaciones del INSTALL, lo mismo haremos al empaquetar.
Salu2, will.
Obs (por Ángel Jiménez):
NOTA: Para compilar la mayoría de los programas, hay un paso intermedio
entre el 1 y el 2, mediante el comando ./configure, que prepara el
sistema para la compilación y chequea que se cumplan todas las
condiciones para la misma (dependencias, etc), es decir que se pueda
luego ejecutar el make sin error. En este paso se puede, por ejemplo
cambiar el directorio 'target' para la instalación, utilizando la opción
adecauda para el comando configure. No obstante para este programa ya
viene la makefile creada de antes y no hay que ejecutar este paso. A
cambio, el directorio objetivo se especifica con una opción adosada al
comando make. De ahí la importancia de seguir las instrucciones dadas
para cada programa en el archivo INSTALL.
Respuestas a preguntas frecuentes.
Hay que hacer exit?, para poder instalar las dependencias con #urpmi
- Mejor trabajar con dos consolas, o dos pestañas, una como user y otra como root, asi cuando en una nos pida tal o cual paquete lo instalaremos usando la otra consola/pestaña como root. En realidad, cada uno trabaja como le quede más cómodo.
- Blog de will
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 108543 Para un libro
Esta clase esta muy clara y concisa, que es lo fundamental.
Hacía falta que alguien hiciera este aporte.
Esto engrandece la comunidad.
Muchas gracias Will
Si el ser humano es capaz de evolucionar, esa evolución no la provocan los que asienten, sino los que niegan y preguntan
y nunca se sienten conformes, ni con lo que se les induce a creer, ni con lo que su misma razón -secularmente programada- les dicta
Usuario
# 109413 ¿Al instalar las
¿Al instalar las dependencias, es necesario hacerlo como root?
- Para instalar siempre se necesita privilegios de administrador/root
Tilt at windmills, come on!!
http://www.youtube.com/watch?v=MAow3ufdK2Y