domingo, 28 de septiembre de 2014

Crear paquetes .deb de manera facil ejemplo dolphin

Algunas veces cuando estamos en debian estable (wheezy), echamos de menos algunas funcionalidades de algunas versiones de programas mas recientes de las que tenemos instaladas, es por eso que optamos por compilar nuestros propios programas adaptándolas a nuestro sistema, ya sabemos que existen los backports pero en lo personal en algunos programas como dolphin-emu trato de tener las versiones mas actuales ya que se solucionan continuamente bugs.

Pero bueno pasemos a lo que interesa con un ejemplo practico compilando dolphin.

Lo primero es instalar las dependencias de compilación del programa así que ejecutamos en la terminal:

sudo apt-get install cmake git g++ wx2.8-headers libwxbase2.8-dev libwxgtk2.8-dev libgtk2.0-dev libsdl1.2-dev libxrandr-dev libxext-dev libao-dev libasound2-dev libpulse-dev libbluetooth-dev libreadline-gplv2-dev libavcodec-dev libavformat-dev libswscale-dev libsdl2-dev libusb-1.0-0-dev

Una vez realizado esto obtenemos las fuentes del programa ejecutamos:






Ingresamos al directorio:


cd ./dolphin-emu

Se crea el directorio build y se ingresa al mismo:

mkdir Build && cd Build
  
Se configura la compilación mediante el comando cmake:


cmake ..

Una vez que se ha realizado este paso ejecutamos el comando make, pero con la variante de que según el numero de núcleos de nuestro procesador indicaremos el numero de trabajos que se ejecutaran simultáneamente en este caso tengo un procesador de 4 núcleos por lo que ejecutare el comando indicando la realización de 4 trabajos simultáneamente.
  
make -j 4
El proceso que ejecuta make tardara algún tiempo dependiendo del procesador que tengamos así mismo de la cantidad de memoria disponible en el sistema. Una vez terminado el proceso lo mas lógico seria ejecutar el comando make install lo que haría el que el programa se instalara directamente en el sistema y su posterior desinstalación sea un poco mas complicado, pero nuestro objetivo en este caso es crear un .deb por lo tanto en este punto instalaremos el programa checkinstall.
Ejecutamos en la terminal: 
sudo apt-get install checkinstall
Una vez finalizada la instalación y el proceso de make finalizado procedemos a construir nuestro .deb. 
 

Las primeras opciones de checkinstall nos dice que si queremos crear la documentación del paquete por default por lo que decimos que si, posteriormente nos dice que si queremos dejar una linea vacía en la descripción del paquete, damos esta opción por default nuevamente, es decir solo damos enter
Llegamos a una sección donde podemos cambiar los parámetros de información del paquete, esto es útil ya que podemos dar identificación personalizada al mismo, o en su caso dejarlo  tal como nos lo configura automáticamente checkinstall, unicamente cambiamos el campo poniendo el numero del mismo y escribiendo los nuevos datos en el espacio vació, yo en lo personal si lo edito para saber cuando compile el programa, pero si unicamente damos enter no nos afecta en nada.


Ejemplo yo cambio:
  • campo 1 en el cual describo que es un "emulador de gamecube"
  • campo 2 en el cual pongo que es el paquete "dolphin-emu"
  • campo 6 en el cual pongo que pertenece al "grupo de games"

Una vez realizado esto damos enter y comienza el proceso de creación e instalación automática del paquete dolhin-emu.deb.

Al casi finalizar el proceso de checkinstall nos dice que algunos paquetes (usados en el proceso de compilación y ya no útiles)  se han creado y que si queremos incluirlos a esto la opción predeterminada es que no así que ponemos una n así mismo nos dice que si debemos excluirlos del paquete a lo que ponemos que si es decir una s.


finalmente checkinstall nos indica el que todos los procesos de la creación del paquete han sido realizados exitosamente tal y como se ve en estas imágenes.




 


Y con esto queda finalizada nuestra creación de paquete e instalación solo queda probar si realmente se ejecuta el programa, podemos poner en la consola dolphin-emu y el programa se ejecutara o simplemente buscar el icono del programa y dar click sobre el.

Aquí unas capturas del paquete generado y de la ejecución del mismo.


Como podemos ver la compilación se realizo el 28 de septiembre a las 12 del día y es la versión 4.0-3914 que obviamente no esta disponible para wheezy pero que sin embargo nosotros la hemos compilado para nuestro debian.

finalmente podemos ver el paquete instalado en synaptic el cual podemos desinstalar cuando queramos o si queremos construir una versión mas actual desde las fuentes.


Como nota final checkinstall ha sido utilizado con dolphin-emu pero se puede construir cualquier paquete desde las fuentes.



martes, 23 de septiembre de 2014

Ejecutar Popcorn-Time en debian 7 cuando da error de `GLIBC_2.14'

Bueno es obvio que estas librerías no las tenemos pero hay una alternativa para que se ejecute el programa sin necesidad de instalar paquetes de Sid y romper nuestro Debian stable.

Para conseguir esto usaremos fakeroot.

Lo primero es descargar desde los repositorios de Ubuntu 12.04 los siguientes paquetes:

(Da click en los enlaces para bajar los paquetes)



Creamos en nuestra carpeta home una carpeta oculta a la que podremos el nombre de:

.fakeroot

de esta manera nuestra ruta quedaría así: 

/home/usuario/.fakeroot/

Desde la consola instalamos:

dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/.fakeroot/

dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/.fakeroot/

y finalmente ejecutamos el comando desde la terminal.

LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ /opt/popcorn-time/Popcorn-Time

Por ejemplo en mi caso:
LD_LIBRARY_PATH=/home/emmanuel/.fakeroot/lib/x86_64-linux-gnu/ /opt/popcorn-time/Popcorn-Time

De esta manera el programa se ejecutara.




Si nos marca error de libudev instalamos la librería y creamos un enlace simbólico:



# apt-get install libudev-dev libudev0 libudev1


# sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0

sábado, 20 de septiembre de 2014

Abrir enlaces web en Firefox desde Adobe Reader Linux

Algunas veces no podemos abrir enlaces web desde adobe reader aun y cuando tenemos bien configurado las preferencias del navegador en la configuración del programa, esto se debe a que en la opción de "trust manager" o administrador de confianza se tiene habilitada una opción que por default te obliga a decirle al programa que pagina si abrir y que pagina evitar.

Para solucionar este problema lo único que se hace es cambiar la preferencia a la opción "alow all web sites" o permitir todos los sitios web, una ves aceptado el cambio podremos ver que ahora si se nos permite abrir nuestros enlaces.

Muchas veces pensé que el problema tenia que ver con la ruta al ejecutable del navegador, pero en si todo era un problema de gestión de seguridad.



sábado, 10 de agosto de 2013

Debian aptitude y los huevos de pascua

Los Easter Eggs o huevos de pascua son sorpresas divertidas que los desarrolladores de sistemas dejan ocultas en sus programas, es algo así como la activación de items ocultos en los videojuegos.

En debian podemos accesar a uno con aptitude en terminal ingresando secuencialmente lo siguente.

#aptitude moo
#aptitude -v moo
#aptitude -vv moo
#aptitude -vvv moo
#aptitude -vvvv moo
#aptitude -vvvvv moo

El resultado es el siguiente:

viernes, 29 de marzo de 2013

Comando dd con verbose


El comando dd nos sirve para realizar formateos con zero fill, clonar discos, hacer respaldos en formato iso, etc. Pero un inconveniente es que carece de verbose (un indicador o barra de estado) que nos indique el progreso de la operación, de esta manera a veces no sabemos  si realmente el proceso esta avanzando o no.

para solucionar esto realizamos lo siguiente.

1.- Instalamos pv con apt-get install pv
2.-introducimos el siguiente comando en consola como root:

sudo dd if=/dev/zero  | pv -s "x"G | sudo dd bs=1M of=/dev/"y"

Donde:

x= Tamaño del disco o pendrive en GB
y= modo en que es reconocida la unidad (sda, sdb, sdc, etc etc)

Para saber como es reconocida la unidad por el sistema introduscan en terminal

fdisk -l

Ejemplo

Disco de 160GB y reconocido como sda:

sudo dd if=/dev/zero  | pv -s 160G | sudo dd bs=1M of=/dev/sda

domingo, 10 de marzo de 2013

Ubuntu terminal root sin solicitar contraseña

Algo no recomendado desde el punto de vista de la seguridad, pero muy útil si trabajas mucho con la consola y no quieres ingresar la contraseña cada vez que abres la aplicación.

echo 'tu-usuario ALL=NOPASSWD: /usr/bin/x-terminal-emulator' >> /etc/sudoers

domingo, 22 de enero de 2012

Código fuente en C para programa de cálculo de espiras de transformadores eléctricos

Soy aprendiz de programador he creado este programa para calcular espiras de transformadores eléctricos, ya ha sido probado en la practica y funciona muy bien por lo que se los comparto, en breve lo escribiré en JAVA con interfaz gráfica ya que de momento solo funciona con linea de comandos.

#include
#include
int main()
{
float a,b,vols;
int tipo;
const float gaus = 11000;
const float cont = 266.4;
const float volp = 110;
float resultado1;
float resultado2;

while(1){
printf("***************************************************\n");
printf("*** Calculadora de espiras para transformadores ***\n");
printf("***************************************************\n\n\n");
printf("1.- Realizar calculo de primario\n");
printf("2.- Realizar calculo de secundario\n\n");

printf("Se trabajara con la opcion numero:");
scanf("%i",&tipo);
switch (tipo){
case 1:
system("cls");
printf("Ingrese el valor de a:");
scanf ("%f", &a);
printf("Ingrese el valor de b:");
scanf ("%f", &b);
resultado1= ((gaus) / (b * a* cont))* volp;
printf("El resultado de espiras en el primario es: %.f",resultado1);
printf("\n\n\n\n");
system("pause");
system("cls");

break;
case 2:
system("cls");
printf("Ingrese el valor de a:");
scanf ("%f", &a);
printf("Ingrese el valor de b:");
scanf ("%f", &b);
printf("Ingrese el valor del voltaje de salida secundario:");
scanf ("%f", &vols);
resultado2= ((gaus) / (b * a* cont))* vols;
printf("El resultado de espiras en el secundario es: %.f",resultado2);
printf("\n\n\n\n");
system("pause");
system("cls");
}
}

Python_1_Configurar_virtualenvwrapper_para_entornos_virtuales.

¿Para qué sirve? R= Nos permite configurar un path donde se alojaran entornos virtuales los cuales se pueden entender como un directorio q...