distro

Bootear USB con imagen .iso GNU/Linux

Licencia Creative CommonsDiego Javier Mena Amado

PRIMER CAFÉ

Como miembro del GLUD, he visto recientemente a muchos visitantes pasando por el laboratorio de tecnologías libres de la Universidad Distrital, teniendo la intensión de probar diferentes distribuciones de GNU/Linux, pero tienen limitaciones – este post nace por la necesidad de muchas personas que comentan sus problemas cargando la iso a sus memorias usb usando Unetbootin o MultiSystem LiveUSB Multiboot.

Resolveremos esto usando cualquier terminal, me parece perfecto que prueben diferentes distro y que se enamoren de alguna – La que sea es mejor que Win2- pero pilos no se vuelvan distrohopper – Un distrohopper es alguien que sigue cambiando de una distribución de Linux a otra, no con la intención de probar sólo una distribución de Linux, pero si con la ilusión de encontrar la distribución Linux perfecta que se adapte a todas sus necesidades, para instalarlo en su raíz principal como sistema operativo.

Les recomiendo usar Korora – Se ha instalado en la maquina mas vieja del laboratorio y corre perfecto, enciende en 12seg y apaga en 4seg, pueden descargarle directamente desde aquí.

Seleccione el entorno de escritorio que mas llame su atención:

  • XFCE
  • GNOME
  • Cinnamon
  • KDE
  • MATE

Mientras descarga, podrías jugar Frets On Fire (GuitarHero hecho con Python)

Salve la información y formatea la USB que va a usar para probar la distribución (Usando la aplicación Discos es Anti-Cortazar), ahora solucionemos el problema: abre una terminal 😉

Con el siguiente comando se muestra la ubicación de la USB a la que quiere cargarle el .iso

 $ lsblk

A continuación desmonto la unidad y le cargo el fichero de la siguiente manera:

$ umount /dev/sdb1
$ sudo dd if=/home/asus/korora-live-xfce-25-x86_64.iso bs=4M of=/dev/sdb

La sintaxis basica del anterior comando dd seria: $ sudo dd if=origen bs=tasa of=destino

Se recomienda usar una tasa de 4 megabyte’s, esto indica tanto la lectura como la escritura se harán en bloques de 4 megabyte’s (menos tasa, seria mas lento pero mas seguro, y con mas tasa nos arriesgamos a perder datos por el camino).

Tarda un poco cargar la iso, no desesperen, dejen que la ejecución del comando se realice y listo, a probar su distro. Si desean instalarle previo a explorar sus bondades, recomiendo hacer la instalación usando particionado manual, pero como lo hago? Suponga que tiene 100GiB disponibles para la instalación, le recomendaría darle 70 GiB al home, 4 GiB a la partición swap y el resto a la raíz.

Si le pareció útil este post, compártalo a sus amigos, comenten que acá no mordemos xD

gnulinux

El poder de la Historia GNU-LINUX

Licencia Creative Commons
Diego Javier Mena Amado – Fragmentos del artículo “DESPIERTA DE LA MATRIX Y LIBERA TU CÓDIGO FUENTE – LIBERA TÚ MENTE” de la revista del Grupo GNU Linux de la Universidad Distrital FJC se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.

PRIMER CAFÉ

Te doy la bienvenida querido lector, hacker, ingeniero, desarrollador de software, desarrollador de hardware, investigadores innatos, estos cinco minutos leyendo sentaran las bases para toda una vida de reflexión.

Permitiéndome traer a colación la frase de George Santayana, damos inicio a un recorrido breve sobre la historia del software libre: “Aquellos que no recuerdan el pasado están condenados a repetirlo”.

El código es la tecnología que hace que los ordenadores funcionen, esté escrito en el software o grabado en el hardware, es el conjunto de instrucciones, primero escritas como palabras, que dirigen la funcionalidad de las máquinas. Estas máquinas nos dirigen. El código dirige estas máquinas.

Tras la desaparición de la comunidad Hacker del AI Lab, seguida de la desaparición del ordenador PDP-10 por modernos ordenadores de la época (1892-1894) como el VAX ó el 68020 que contaban con su propio sistema operativo privativo, titulares del software propietario establecían la siguiente norma sin escrúpulos: “Si compartes con tu vecino, te conviertes en un pirata. Si quieres hacer algún cambio, tendrás que rogárnoslo” esto hacía pensar a un gran visionario en preguntas como: ¿Qué control deberíamos tener sobre el código? ¿Qué comprensión? ¿Qué libertad debería haber para neutralizar el control que permite? ¿Qué poder?

Una suposición es que las empresas de software tienen el derecho natural e incuestionable a poseer software, y por ende a usurpar todo el poder sobre sus usuarios. (Si de verdad se trata de un derecho natural, nosotros no objetaríamos nada, independientemente del perjuicio que esto ocasionará al público). Pero lo interesante es que la constitución de los EEUU y el derecho tradicional rechazan este punto de vista.

Esta gran contienda histórica librada en su origen por Richard Stallman comenzó en los laboratorios del MIT (Massachusetts Institute of Technology), experimentado lo que se siente al firmar un acuerdo de confidencialidad cuando una persona se negó a entregarle a él y al laboratorio de inteligencia artificial, el código fuente del programa de control de una impresora con la ausencia de ciertas funciones convirtiendo el trabajo de Stallman en una experiencia muy frustrante.

El copyright no es una ley natural, sino un monopolio artificial impuesto por el Estado que limita el derecho natural de los usuarios a copiar.

Es así, como para enero de 1984, abandona su empleo en el MIT y da inicio a la construcción del software GNU con un objetivo claro: combatir contra el sistema que impedía compartir y modificar software, un sistema antisocial, poco ético, sencillamente equivocado en perspectiva a un mundo donde la libertad y el conocimiento sobrevivieran al compilador, un mundo con principios, un mundo con una sociedad libre.

La respuesta de Richard Stallman a las anteriores preguntas fue desarrollar un sistema operativo, software crucial para empezar a utilizar un ordenador sin verse obligado previamente a conspirar para privar de esto a sus amigos, optando por crear un sistema compatible con Unix (Sistema operativo portable, multitarea y multiusuario; desarrollado en 1969, por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy), su intención: dotarle así de portabilidad y facilitar el cambio a los usuarios de Unix al software libre. El nombre del proyecto GNU fue elegido según una tradición de los hackers, como un acrónimo recursivo de GNU’s Not Unix.

gnulinux-powered

En los años 70 cualquier sistema operativo decente incluía sus propios procesadores de comandos, ensambladores, compiladores, intérpretes, depuradores, editores de texto, gestores de correos y algunos videojuegos. Su primer labor fue crear desde cero un compilador de plataformas múltiples de desarrollo conocido como GCC (GNU Compiler Collection), debido a que el compilador Pastel inicialmente usado para la fecha requería muchos Megabytes de espacio y el sistema Unix 68000 de entonces sólo disponga 64 Kilobytes.

En septiembre de 1984 inició a trabajar en EMACS y para inicios de 1985 ya podía utilizarse, lo que permitió comenzar a usar el sistema Unix para labores de edición. (EMACS al igual que Vi ó Ed es un editor de texto personalizable, autodocumentado y de tiempo real)

En aquel momento había gente interesada en utilizar GNU Emacs lo que planteó el problema de la distribución, cuya solución viene dada por el copyleft, método empleado que utiliza la ley de copyright, pero dándole la vuelta para servir a un propósito opuesto al habitual: en lugar de privatizar el software, ayuda a preservarlo como software libre.

La idea fundamental del copyleft es que se autoriza la ejecución del programa, su copia, codificación y distribución de versiones modificadas, siempre que no se añada ninguna clase de restricción a posteriori. De este modo las libertades cruciales que definen al software libre quedan garantizadas para cualquiera que posea su copia; estas libertades se convierten en derechos inalienables. Una forma específica de copyleft para la mayor parte del software GNU es la licencia pública general GNU (GNU GPL).

Ya en 1985 se crea la FSF (Free Software Foundation) una organización sin ánimo de lucro dedicada al desarrollo del software libre. Para 1990, el sistema GNU, estaba casi terminado. Faltaba crear un solo componente central, el Kernel (Pieza de software capaz de gestionar recursos de alto nivel). El Kernel GNU Hurd no estaba listo para producción, afortunadamente otro kernel compatible con Unix llamado Linux y desarrollado por Linus Torvals estaba a disposición.

Para quienes no lo sepan: Un sistema operativo no significa sólo un Kernel, esta pieza de software apenas permite ejecutar otros programas, por ello, en adelante, incluirás las iniciales GNU cuando hables sobre el sistema operativo GNU/Linux.

A la fecha según Richard Stallman el interés en el software crece a un ritmo superior que la conciencia de la filosofía en que se fundamenta, y esto plantea ciertas dificultades, como lo son las patentes de software que restringen algoritmos y funciones al menos durante 20 años; las bibliotecas no libres que dan lugar a un sistema con más posibilidades y menos libertad; el hardware secreto dificultando escribir drivers libres y compatibles realizandose por ingeniería inversa y la documentación libre vista en la ausencia de buenos manuales para nuestros sistemas y sus derivaciones.

La tarea de enseñar a los nuevos usuarios el valor de la libertad se complicó en gran medida para 1998, con la aparición del Open Source ó software de código abierto. La comunidad partidaria de este término trataba de evitar la confusión entre libre y gratuito, un objetivo muy legítimo, pero parte de esta comunidad intentaban dejar de lado los principios que habían impulsado la creación del software libre y el proyecto GNU, procurando así atraer a ejecutivos y a los usuarios de empresas, quienes comparten mayoritariamente una ideología que antepone las ganancias económicas a la libertad, a la sociedad, a los principios, de modo que la retórica del “Código Abierto” se concentra en la posibilidad de crear un software de alta calidad y capacidad, pero rehuye las nociones de libertad, comunidad y principios. El proyecto GNU sigue empleando el término “Software Libre” para expresar la idea de que la libertad, y no solo la tecnología, es importante.

Pero querido lector no podemos pensar que el futuro de la libertad está asegurado. ¡No te deje engañar! Si quieres conservar tu libertad, tienes que estar preparado para defenderla…

Bibliografía

Libro “Software libre para una sociedad libre” por Richard M. Stallman

developer

Lecciones para desarrolladores excepcionales

Licencia Creative Commons

Diego Javier Mena Amado – Fragmentos del artículo “DESPIERTA DE LA MATRIX Y LIBERA TU CÓDIGO FUENTE – LIBERA TÚ MENTE” de la revista del Grupo GNU Linux de la Universidad Distrital FJC se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.

El desarrollador que usa solamente su cerebro sobre un proyecto cerrado está quedando detrás del que sabe como crear y desarrollar en un contexto abierto y evolutivo.

Estas son algunas lecciones que vienen de la experiencia propia de Eric S.Raymond en el desarrollo y evolución de PopMail a FetchMail (Software libre para la administración de correos electrónicos):

  1. Todo buen trabajo de software comienza a partir de las necesidades personales del programador. (Todo buen trabajo empieza cuando uno mismo tiene que rascarse su propia comezón)
  2. Los buenos programadores saben que escribir, los mejores, que reescribir y reutilizar.
  3. En cuanto a fragmentos de código fuente: contemple desecharlo; de todos modos tendrá que hacerlo.
  4. Si tienes la actitud adecuada, encontrarás problemas interesantes.
  5. Cuando se pierde el interés en un programa, el último deber es heredarlo a un sucesor competente.
  6. Tratar a los usuarios como colaboradores es la forma más apropiada de mejorar el código, y más efectiva de depurarlo.
  7. Libere rápido y a menudo, escuche a sus clientes.
  8. Dada una base suficiente de desarrolladores asistentes y beta-testers, casi cualquier problema puede ser caracterizado rápidamente, y su solución ser obvia al menos para alguien.
  9. Las estructuras de datos inteligentes y el código burdo funcionan mucho mejor que en el caso inverso.
  10. Si usted trata a sus analistas (beta-testers) como si fueran su recurso más valioso, ellos le responderán convirtiéndose en su recurso más valioso.
  11. Lo más grande, después de tener buenas ideas, es recoger las buenas ideas de sus usuarios. Esto último es a veces lo mejor.
  12. Frecuentemente, las soluciones más innovadoras y espectaculares provienen de comprender que la concepción del problema era errónea.
  13. La perfección en el diseño se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay nada que quitar.
  14. Toda herramienta es útil empleándose de la forma prevista, pero una gran herramienta es la que se presenta a ser utilizada de la manera menos esperada.
  15. Cuando se escribe software para una puerta de enlace de cualquier tipo, hay que tomar la precaución de alterar el flujo de datos lo menos posible y nunca eliminar información a menos que los receptores obliguen a hacerlo.
  16. Un sistema de seguridad es tan seguro como secreto. Cuídese de los secretos a medias.
  17. Para resolver un problema interesante, comience por encontrar un problema que resulte interesante.
  18. Si el coordinador de desarrollo tiene un medio al menos tan bueno como lo es Internet, y sabe dirigir sin coerción, muchas cabezas serán inevitablemente mejor que una.

De la comunidad, para la comunidad y como lo dijo Richard Stallman en su visita por Colombia: “Con el software solo hay dos posibilidades o los usuarios tienen el control del programa o el programa tiene el control de los usuarios.”

¿Tú qué eliges?

Bibliografía

Libro “La Catedral y el Bazar” por Eric S.Raymond

arduino

Tutorial básico de Arduino con ATOM

 

Es posible que, si has trabajado con Arduino en algún momento, te hayas dado cuenta de que su entorno integrado de desarrollo IDE no es precisamente la mejor parte de Arduino. Desde hace varios meses, me encuentro usando una sencilla alternativa que le permite verficar su código fuente y programar el microcontrolador mediante una herramienta igualmente gratuita que desde mi punto de vista es mucho mejor.

Algunos desarrolladores de hardware consideran el IDE de Arduino  poco funcional y es por ello que comparto con ustedes este tutorial.

En este tutorial se expone el uso del editor de texto ‘hackeable’ del siglo XXI (ATOM) y temas relevantes para trabajar con alguno de los microcontroladores que ofrece la Tienda de Arduino

arduino

Lo primero que vamos a hacer es descargar ATOM directamente desde su sitio oficial.

Para usuarios Ubuntu, prodecemos a lanzar en terminal los siguientes comandos:

sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update
sudo apt-get install atom

Si te descargas Atom, te darás cuenta que por defecto no vamos a poder compilar ni subir código y, aunque técnicamente si podemos escribir código, no disponemos de ninguna ayuda que lo diferencie de abrir el editor de texto que viene con tu sistema operativo y empezar a “trabajar con hardware”.

Procedemos entonces a instalar un paquete llamado platform-io el cual le permitirá no solo programar microcontroladores de la familia de Arduino, sino también, placas de desarrollo de Adafruit, Arduboy, Armstrap, BBC, BQ, BitWizard, Digilent, DigiStump, Doit, ESPert,  Embedded Artist, Freescale, Intel, SeeedStudio, Silicon Labs, SparkFun, Raspberry’s, entre otros no muy conocidos.

Nos dirigimos al menu –> Edit/Preferences/Install y en el campo de busqueda colocamos en busqueda el paquete platform-io, como se muestra en la imagen.

ardu

Cierras y abres el editor para empezar a sentir la magia…

Desarrollo rápido
C / C ++ inteligente (finalización de código y código inteligente Linter) para el desarrollo rápido profesional. Multi-proyectos de flujo de trabajo con paneles múltiples. Temas de Apoyo con colores oscuros y claros.
Desarrollo Integrado
Sistema de construcción de plataforma cruzada sin dependencias externas al software del sistema operativo: mas de 300 tableros, más de 15 plataformas de desarrollo, mas de 10 marcos de trabajo. Arduino y ARM mbed compatibles.
Terminal incorporado
Terminal incorporado con la herramienta PlatformIO CLI y el apoyo de un poderoso monitor del puerto serial. Todos los instrumentos avanzados sin salir de su entorno de desarrollo preferido.

ardu1

Dejare que exploren por su cuenta la creación de un nuevo proyecto, solo para que por su cuenta valide lo que le estoy mencionando arriba y te asombres de la cantidad de placas de hardware que no conocías hehehehe

Ahora bien, ¿Que es lo mínimo que debo saber para trabajar con un microcontrolador?

MANEJO DE PINES

ardu2

Entradas y salidas digitales: Están situadas en la parte derecha de la placa, van del 0 hasta el 13, este ultimo pin lleva una resistencia interna incluida. La señal digital puede estar o encendida o apagada (LOW o HIGH). Por ejemplo, se utilizan para hacer parpadear un LED ó como entrada para interpretar un pulsador. Los pines cero y uno se emplean para cargar el programa en la placa. Los pines 2 y 3 sirven para realizar manejo de interrupciones.

Salidas analógicas PWM: Son los pines 11, 10, 9, 6, 5 y 3, si se fijan tienen una raya curva al lado, se denominan salidas PWM (Pulse Width Modulation) que realmente son salidas digitales que imiten salidas analógicas, modificando la separación entre los diferentes pulsos de la señal. La señal PWM puede dar diversos valores de 0-255, se utilizan, por ejemplo para variar la intensidad de un LED o hacer funcionar un servo. Hay que decir que estos pines funcionan como salidas o entradas digitales ó tambien como salidas analógicas.

Entradas analógicas: Son los pines A0, A1, A2, A3, A4 y A5 (analog in). Se utilizan para tomar lectura de una señal por lo general para sensores analógicos, por ejemplo un sensor de temperatura, un LDR ó hasta un potenciómetro que permitan un valor variable de 0-VCC.

Pines de alimentación  
GND: Son los pines a tierra de la placa, el negativo.
5v: Por este pin suministra 5v
3,3v: Por este pin suministra 3,3v
Vin: Voltaje de entrada, por este pin también se puede alimentar la placa, útil para emplear baterias como alimentación de la placa.
RESET: Por este pin se puede reiniciar la placa.
IOREF: Sirve para que la placa reconozca el tipo de alimentación que requieren los shields
También podemos encontrar el pin AREF, arriba de todo a la izquierda de los pines digitales, este pin sirve para suministrar un voltaje diferente a 5v por los pines digitales.

También podemos reconocer el conector USB, necesario para cargar el programa, escribir o leer datos por monitor serial y también para alimentar la placa de desarrollo.

Ahora bien, manos a la obra… Hagamos algo divertido; un detector de luz para un posible parabrisas ó alguna otra aplicación donde crea sea útil sensar la luz de un entorno. El esquema es diagramado gracias al software Fritzing – Free Software – Sitio Oficial

Materiales: 2 Resistencias de 1KΩ, 2 LDR ó fotoresistencias, un led y una resistencia para limitarle corriente de 220Ω

ardu3

Crea un nuevo proyecto con ATOM a traves de platform-io (Parabrisas), asigna la placa de desarrollo con la que trabajarás (En nuestro caso, Arduino uno) y carga el siguiente código fuente, dentro del fichero src como se muestra en la figura

ardu4

Código fuente para jugarlo:

/*
 ***********************************************************************
 *              LIBRERIAS y CONSTANTES
 ***********************************************************************
 */
int pinLed = 5;
// Pin analogico de entrada para el LDR
int pinLDR1 = A3;
int pinLDR2 = A1;

// Variable donde se almacena el valor del LDR inicializada en cero
int voltajeLDR = 0;
int voltajeLDR2 = 0;

/*
 ***********************************************************************
 *              SETUP CONFIGURACIÓN INICIAL
 ***********************************************************************
 */
void setup() {
  Serial.begin(9600); //  Configuramos el puerto serial a 9600 baudios
  // Configuramos como salida el pin donde se conecta el led
  pinMode(pinLed, OUTPUT);
}

/*
 ***********************************************************************
 *              LOOP BUCLE PRINCIPAL
 ***********************************************************************
 */

void loop() {
  // Apagar todos los leds siempre que se inicia el ciclo
  digitalWrite(pinLed, LOW);

  // Guardamos el valor leido del ADC en una variable
  // El valor leido por el ADC (voltaje) aumenta de manera directamente 
  // proporcional
  // con respecto a la luz percibida por el LDR
  voltajeLDR= analogRead(pinLDR1);
  Serial.println("voltajeLDR1: ");
  Serial.println(voltajeLDR);

  voltajeLDR2= analogRead(pinLDR2);
  Serial.println("voltajeLDR2: ");
  Serial.println(voltajeLDR2);

  // Encender led por encima de un valor del ADC
  if(voltajeLDR < 600){
    digitalWrite(pinLed, LOW);
  }
  if(voltajeLDR > 768){
    digitalWrite(pinLed, HIGH);
  }
  // Esperar 200 milisegundos antes de actualizar
  delay(200);
}

Deberías observar como se enciende o apaga el led al bloquear la luz que llega a una de las foto-resistencias; puedes abrir el monitor serial para comprobar los cambios de tensión que ven tus sensores de luz desde el menú de la parte inferior izq – Aparece como un enchufe para que te conectes a otro mundo hehehe

No limites tus retos, reta tus límites 😉

 

Instalación de Joomla 3

Licencia Creative Commons
Tutorial para la instalación del CMS Joomla por Diego Javier Mena Amado se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.

PRIMER CAFÉ

Descargamos el CMS directamente desde aqui y descargamos el paquete completo de Joomla 3.6.2
Ubicamos el directorio en terminal, nos validamos como superUser, movemos el paquete a nuestro servidor local y lo descomprimimos (si no crean un fichero donde lo descomprimen el paquete tendran un problema engorroso)

mv Joomla_3.6.2-Stable-Full_Package.zip /var/www/html/tutoJoomla
unzip Joomla_3.6.2-Stable-Full_Package.zip

Procedemos a la instalación LAMP

LAMP es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

* Linux, el sistema operativo; En algunos casos también se refiere a LDAP.
* Apache, el servidor web;
* MySQL/MariaDB, el gestor de bases de datos;
* Perl, PHP, o Python, los lenguajes de programación.

Sistema Operativo GNU-Linux

Puedes descargar tu distro de preferencia, en mi caso he usado Ubuntu Server y lo puedes conseguir directamente desde aquí.

Apache

Desde terminal ejecuta los siguientes comandos:

 sudo apt-get update
 sudo apt-get install apache2

Verifica en el browser si la instalación ha sido realizada con éxito, desde tu localhost

apache

Gestor para bases de datos (MySQL)

Desde terminal ejecuta los siguientes comandos:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
sudo mysql_install_db
sudo /usr/bin/mysql_secure_installation

Debería aparecerles el siguiente mensaje en consola:
-> All done! If you’ve completed all of the above steps, your MySQL installation should now be secure.

PHP-5

Desde terminal ejecuta los siguientes comandos:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Esto deberá instalar PHP sin ningún problema. En la mayoría de los casos, vamos a querer modificar la forma en que Apache sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado index.html
Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de preferencia, por lo que vamos a hacer que Apache busque un archivo index.php primero. Para ello, escribe este comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:

sudo nano /etc/apache2/mods-enabled/dir.conf
 Se verá de forma similar a esto:

 <IfModule mod_dir.c>
 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
 </IfModule>

Queremos mover el índice del archivo PHP destacandolo a la primera posición después de la especificación del DirectoryIndex, así:

 <IfModule mod_dir.c>
 DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
 </IfModule>

Para guardar cambios: Ctrl+O
Para salir del editor nano: Ctrl+X
Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros cambios sean reconocidos. Puedes hacerlo hacerlo ejecutando desde terminal esto:

sudo service apache2 restart

Instalaciones adicionales: Para ver las opciones disponibles para los módulos de PHP y bibliotecas, puedes ejecutar esto en tu sistema:

apt-cache search php5-

Los resultados son todos los componentes opcionales que se pueden instalar. Describiremos brevemente cada uno:

php5-common - Common files for packages built from the php5 source
 php5-curl - CURL module for php5
 php5-dev - Files for PHP5 module development
 php5-json - JSON module for php5
 php5-readline - Readline module for php5
 php5-cgi - Lenguaje de guiones embebidos en HTML para servidores (binario CGI)
 php5-cli - intérprete de órdenes para el lenguaje de guión php5
 php5-dbg - Símbolos de depuración para PHP5
 php5-gd - Módulo GD para php5
 php5-gmp - Módulo GMP para php5
 php5-ldap - Módulo LDAP para php5
 php5-mysql - Módulo MySQL para php5
 php5-odbc - Módulo ODBC para php5
 php5-pgsql - Módulo PostgreSQL para php5
 php5-pspell - Módulo pspell para php5
 php5-recode - Módulo recode para php5
 php5-snmp - Módulo SNMP para php5
 php5-sqlite - Módulo SQLite para php5
 php5-tidy - Módulo tidy para php5
 php5-xmlrpc - Módulo XML-RPC para php5
 php5-xsl - Módulo XSL para php5
 libphp5-embed - HTML-embedded scripting language (Embedded SAPI library)
 php5-adodb - Extension optimising the ADOdb database abstraction library
 php5-apcu - APC User Cache for PHP 5
 php5-enchant - Enchant module for php5
 php5-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
 php5-gdcm - Grassroots DICOM PHP5 bindings
 php5-gearman - PHP wrapper to libgearman
 php5-gnupg - wrapper around the gpgme library
 php5-interbase - interbase/firebird module for php5
 php5-intl - internationalisation module for php5
 php5-lasso - Library for Liberty Alliance and SAML protocols - PHP 5 bindings
 php5-librdf - PHP5 language bindings for the Redland RDF library
 php5-mapscript - php5-cgi module for MapServer
 php5-memcache - memcache extension module for PHP5
 php5-memcached - memcached extension module for PHP5, uses libmemcached
 php5-midgard2 - Midgard2 Content Repository - PHP5 language bindings and module
 php5-mongo - MongoDB database driver
 php5-msgpack - PHP extension for interfacing with MessagePack
 php5-mysqlnd - MySQL module for php5 (Native Driver)
 php5-mysqlnd-ms - MySQL replication and load balancing module for PHP
 php5-oauth - OAuth 1.0 consumer and provider extension
 php5-pinba - Pinba module for PHP 5
 php5-radius - PECL radius module for PHP 5
 php5-redis - PHP extension for interfacing with Redis
 php5-remctl - PECL module for Kerberos-authenticated command execution
 php5-rrd - PHP bindings to rrd tool system
 php5-sasl - Cyrus SASL Extension
 php5-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP 5
 php5-svn - PHP Bindings for the Subversion Revision control system
 php5-tokyo-tyrant - PHP interface to Tokyo Cabinet's network interface, Tokyo Tyrant
 php5-vtkgdcm - Grassroots DICOM VTK PHP bindings
 php5-xcache - Fast, stable PHP opcode cacher
 php5-xhprof - Hierarchical Profiler for PHP5
 php5-exactimage - fast image manipulation library (PHP bindings)
 php5-geoip - Módulo GeoIP para php5
 php5-imagick - Módulo ImageMagick para php5
 php5-imap - Módulo IMAP para php5
 php5-mcrypt - Módulo MCrypt para php5
 php5-ming - Módulo Ming para php5
 php5-ps - módulo ps para PHP 5
 php5-sybase - Módulo de servidor Sybase/MS SQL para php5
 php5-xdebug - Módulo Xdebug para PHP 5

Para obtener más información sobre lo que hace cada módulo, puedes buscar en Internet o ver en la descripción larga del paquete escribiendo:

//Por ejemplo: # apt-cache show nombre_del_paquete

Si, después de investigar, decides que quieres instalar un paquete, puedes hacerlo utilizando el comando apt-get install como lo hemos hecho previamente con otro software. Para consumir los recursos json de un próximo tutorial necesito:

apt-cache show php5-json

Para comprobar y ver la configuración de nuestro servidor podemos crear un archivo info.php

sudo vim /var/www/html/info.php

Y añadimos en el archivo el siguiente codigo PHP:

<?php
 phpinfo();
 ?>

Para insertar en el editor VIM, debes oprimir la tecla i, copiar el fragmento de codigo anterior, pegas en terminal (Ctrl+Shift+V), guarda y sale del editor digitando –> :wq

php

PHPMYADMIN

Ahora que ya tenemos instalado el servidor, nos hacen falta las herramientas para desarrollar. Lo primero a instalar es una herramienta para gestionar nuestra base de datos, lo más común es phpMyAdmin

sudo apt-get install phpmyadmin

Creamos un enlace simbólico y reiniciamos apache

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
 sudo /etc/init.d/apache2 reload

phpmyadmin

SEGUNDO CAFÉ

Listo ahora crearemos nuestra base de datos, nombrando el usuario root(-u) y el pass de nuestra BD(-p), así:

/var/www/html# mysql -uroot -p
password:
 mysql> create database MisPrimerosPasos;
 mysql> exit

Procedemos en terminal a editar el archivo de configuración de apache :

nano /etc/apache2/apache2.conf
 <Directory /var/www/>
 Options Indexes FollowSymLinks
 AllowOverride All
 #AccessFileName .htaccess
 Require all granted
 </Directory>

Realizado el cambio, procedemos a reiniciarlo:

sudo service apache2 restart

Desde terminal, ubicamos el directorio de instalación para asignarle el usuario adecuado www-data

cd /var/www/html/
ls -la
chown www-data:www-data tutoJoomla/ -R

Procedemos al buscador (I ❤ mozilla)

http://localhost/tutoJoomla/

joomla

Seleccione el idioma de preferencia. Seguimos los pasos de instalación, llenando los campos (Recuerde usar un nombre de usuario y una contraseña que pueda recordar)

joomla1

Añada la información con la cual creo la base de datos. y listo!!!

Postea tus problemas y entre todos vemos como lo solucionamos

espeak -v es-la "Recuerda visitar nuestros recursos en internet para aprender mucho mas..."

 

Symfony_Install

Tutorial para instalación y configuración de Symfony

Licencia Creative Commons
Tutorial para instalación y configuración de Symfony por el Grupo GNU Linux de la Universidad Distrital FJC se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.

PRIMER CAFÉ

Utilizaremos una herramienta en línea de comandos para la transferencia de archivos llamada curl, si no la has instalado en tu vida, abre la consola de comandos y ejecutemos lo siguiente:

$ sudo apt-get install curl
$ sudo apt-get install php5-curl 

Tras cualquier cambio en PHP o MySQL es necesario reiniciar el servidor ejecutando:

$ sudo service apache2 restart 

De esta manera, estaríamos listos para transferir los archivos del instalador de symfony a nuestra maquina ejecutando los siguientes comandos en terminal:

$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony

Asignamos permisos de escritura al siguiente fichero:

$ sudo chmod a+x /usr/local/bin/symfony

Creamos nuestro proyecto:

$ sudo symfony new miProyectoDemo

Con el comando anterior, el instalador entenderá que desarrollaremos con la ultima versión disponible de Symfony. Ya si lo que se desea es una versión en especifico, debes añadir la versión como parámetro al comando, estos son algunos ejemplos:

# Usa una versión estable
$ symfony new my_project_name 2.8
$ symfony new my_project_name 3.0

# Usa una versión especifica
$ symfony new my_project_name 2.7.3
$ symfony new my_project_name 2.8.1

# Usa una versión Beta
$ symfony new my_project 3.0.0-BETA1

installSymfony

Al finalizar instalación, nos aparece un mensaje donde se sugiere enviar el paquete del nuevo proyecto, al fichero que por defecto está conectado a nuestro localhost, en mi caso ejecute la instalación directamente en /var/www/html/ pero en dado caso que no, podrias probar moviendo tu proyecto con:

$ sudo mv miProyectoDemo /var/www/html -Rf

Procedemos a crear la base de datos para nuestro proyecto con la siguiente linea de codigo:

$ sudo php app/console doctrine:database:create

Podrías verificar que la base de datos symfony fue creada, ingresando a mysql desde terminal:

$ mysql -uroot -p
         mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| symfony            |
+--------------------+

mysql> exit
Bye

Procedemos a configurar nuestra aplicación editando el archivo parameters.yml ubicado en el fichero app/config/ para lo cual podrias usar el editor de texto que deseen, en mi caso, usaré VIM, para añadir el puerto por defecto de las BD en mysql, el nombre de la BD, su usuario y la clave.

$ vim app/config/parameters.yml

# This file is auto-generated during the composer install
parameters:
 database_host: 127.0.0.1
 database_port: 3306
 database_name: symfony
 database_user: root
 database_password: 11223344
 mailer_transport: smtp
 mailer_host: 127.0.0.1
 mailer_user: null
 mailer_password: null
 secret: 95d8d17bccea019bc3e6a33b2405c543bf7a2198

Ahora, desde el fichero raiz de nuestro proyecto ejecutaremos el siguiente comando para la levantar la consola de Symfony en nuestro localhost:

$ cd miProyectoDemo/

Para versiones de symfony 3
$ php bin/console server:run

Para versiones de symfony 2
$ php app/console server:run

Nos dirigimos a nuestro navegador y escribimos en el browser localhost:8000 arrojando la vista por default del framework

symfony28

Symfony aprovecha el servidor web interno proporcionado por PHP para ejecutar aplicaciones. Por lo tanto, ejecutar una aplicación de Symfony es cuestión de navegar por el directorio del proyecto.

Para comprobar esto, crearemos nuestro primer Bundle con la siguiente linea de comando

 $ php app/console generate:bundle 

Cuando las cosas se pongan interesantes, tendremos que crear varios Bundle’s asignandoles un nombre de la siguiente manera por ejemplo

$ php app/console generate:bundle --bundle-name=EVA_Bunlde

En Consola nos aparecerán algunas preguntas como ¿Está pensando en compartir este paquete a través de múltiples aplicaciones?, asigna un nombre al bundle, elija el fichero donde se creará el Bundle y que formato desea emplear para la configuración.

En otro post, dejaremos todo bien detallado, solo sigue los hilos del grupo de trabajo GNU Linux de la Universidad Distrital, exitos en la busqueda de nuevos conocimientos…

eva

 

Drupal_Logo

Tutorial para instalación de Drupal 8 (Paso a Paso)

Licencia Creative Commons
Tutorial Drupal 8 por Diego Javier Mena Amado se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional.

PRIMER CAFÉ

Descargamos el CMS directamente desde aqui y descargamos Drupal Core 8.0.6
Ubicamos el directorio, lo ingresamos a nuestro servidor y lo descomprimimos:

cp drupal-8.0.5.tar.gz /var/www/
gzip -d drupal-8.0.5.tar.gz
 tar -xvf drupal-8.0.5.tar

Podrías tener en cuenta para descomprimir Ficheros tar.gz así:

* Comprimir: tar -czfv archivo.tar.gz ficheros
* Descomprimir: tar -xzvf archivo.tar.gz
* Ver contenido: tar -tzf archivo.tar.gz

Ahora debemos crear el directorio FILES exactamente como en la version 7 y la copia del archivo settings así:

mkdir sites/default/files
cp sites/default/default.settings.php sites/default/settings.php

Añadimos permisos de escritura en modo super usuario así:

chmod a+w -R sites/default/files/
 chmod a+w sites/default/settings.php

Procedemos a la instalación LAMP

LAMP es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

* Linux, el sistema operativo; En algunos casos también se refiere a LDAP.
* Apache, el servidor web;
* MySQL/MariaDB, el gestor de bases de datos;
* Perl, PHP, o Python, los lenguajes de programación.

Sistema Operativo GNU-Linux

Puedes descargar tu distro de preferencia, en mi caso he usado Ubuntu Server y lo puedes conseguir directamente desde su pagina desde aquí.

Apache

Desde terminal ejecuta los siguientes comandos:

 sudo apt-get update
 sudo apt-get install apache2

Verifica en el browser si la instalación ha sido realizada con éxito, desde tu localhost

apache

Gestor para bases de datos (MySQL)

Desde terminal ejecuta los siguientes comandos:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
sudo mysql_install_db
sudo /usr/bin/mysql_secure_installation

Debería aparecerles el siguiente mensaje en consola:
-> All done! If you’ve completed all of the above steps, your MySQL installation should now be secure.

PHP-5

Desde terminal ejecuta los siguientes comandos:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Esto deberá instalar PHP sin ningún problema. En la mayoría de los casos, vamos a querer modificar la forma en que Apache sirve archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio del servidor, Apache buscará primero un archivo llamado index.html
Nosotros queremos decirle a nuestro servidor web que elija los archivos PHP de preferencia, por lo que vamos a hacer que Apache busque un archivo index.php primero. Para ello, escribe este comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:

sudo nano /etc/apache2/mods-enabled/dir.conf
 Se verá de forma similar a esto:

 <IfModule mod_dir.c>
 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
 </IfModule>

Queremos mover el índice del archivo PHP destacandolo a la primera posición después de la especificación del DirectoryIndex, así:

 <IfModule mod_dir.c>
 DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
 </IfModule>

Para guardar cambios: Ctrl+O
Para salir del editor nano: Ctrl+X
Después de esto, tenemos que reiniciar el servidor web Apache para que nuestros cambios sean reconocidos. Puedes hacerlo hacerlo ejecutando desde terminal esto:

sudo service apache2 restart

Instalaciones adicionales: Para ver las opciones disponibles para los módulos de PHP y bibliotecas, puedes ejecutar esto en tu sistema:

apt-cache search php5-

Los resultados son todos los componentes opcionales que se pueden instalar. Describiremos brevemente cada uno:

php5-common - Common files for packages built from the php5 source
 php5-curl - CURL module for php5
 php5-dev - Files for PHP5 module development
 php5-json - JSON module for php5
 php5-readline - Readline module for php5
 php5-cgi - Lenguaje de guiones embebidos en HTML para servidores (binario CGI)
 php5-cli - intérprete de órdenes para el lenguaje de guión php5
 php5-dbg - Símbolos de depuración para PHP5
 php5-gd - Módulo GD para php5
 php5-gmp - Módulo GMP para php5
 php5-ldap - Módulo LDAP para php5
 php5-mysql - Módulo MySQL para php5
 php5-odbc - Módulo ODBC para php5
 php5-pgsql - Módulo PostgreSQL para php5
 php5-pspell - Módulo pspell para php5
 php5-recode - Módulo recode para php5
 php5-snmp - Módulo SNMP para php5
 php5-sqlite - Módulo SQLite para php5
 php5-tidy - Módulo tidy para php5
 php5-xmlrpc - Módulo XML-RPC para php5
 php5-xsl - Módulo XSL para php5
 libphp5-embed - HTML-embedded scripting language (Embedded SAPI library)
 php5-adodb - Extension optimising the ADOdb database abstraction library
 php5-apcu - APC User Cache for PHP 5
 php5-enchant - Enchant module for php5
 php5-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
 php5-gdcm - Grassroots DICOM PHP5 bindings
 php5-gearman - PHP wrapper to libgearman
 php5-gnupg - wrapper around the gpgme library
 php5-interbase - interbase/firebird module for php5
 php5-intl - internationalisation module for php5
 php5-lasso - Library for Liberty Alliance and SAML protocols - PHP 5 bindings
 php5-librdf - PHP5 language bindings for the Redland RDF library
 php5-mapscript - php5-cgi module for MapServer
 php5-memcache - memcache extension module for PHP5
 php5-memcached - memcached extension module for PHP5, uses libmemcached
 php5-midgard2 - Midgard2 Content Repository - PHP5 language bindings and module
 php5-mongo - MongoDB database driver
 php5-msgpack - PHP extension for interfacing with MessagePack
 php5-mysqlnd - MySQL module for php5 (Native Driver)
 php5-mysqlnd-ms - MySQL replication and load balancing module for PHP
 php5-oauth - OAuth 1.0 consumer and provider extension
 php5-pinba - Pinba module for PHP 5
 php5-radius - PECL radius module for PHP 5
 php5-redis - PHP extension for interfacing with Redis
 php5-remctl - PECL module for Kerberos-authenticated command execution
 php5-rrd - PHP bindings to rrd tool system
 php5-sasl - Cyrus SASL Extension
 php5-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP 5
 php5-svn - PHP Bindings for the Subversion Revision control system
 php5-tokyo-tyrant - PHP interface to Tokyo Cabinet's network interface, Tokyo Tyrant
 php5-vtkgdcm - Grassroots DICOM VTK PHP bindings
 php5-xcache - Fast, stable PHP opcode cacher
 php5-xhprof - Hierarchical Profiler for PHP5
 php5-exactimage - fast image manipulation library (PHP bindings)
 php5-geoip - Módulo GeoIP para php5
 php5-imagick - Módulo ImageMagick para php5
 php5-imap - Módulo IMAP para php5
 php5-mcrypt - Módulo MCrypt para php5
 php5-ming - Módulo Ming para php5
 php5-ps - módulo ps para PHP 5
 php5-sybase - Módulo de servidor Sybase/MS SQL para php5
 php5-xdebug - Módulo Xdebug para PHP 5

Para obtener más información sobre lo que hace cada módulo, puedes buscar en Internet o ver en la descripción larga del paquete escribiendo:

//Por ejemplo: # apt-cache show nombre_del_paquete

Si, después de investigar, decides que quieres instalar un paquete, puedes hacerlo utilizando el comando apt-get install como lo hemos hecho previamente con otro software. Para consumir los recursos json de un proximo tutorial necesito:

apt-cache show php5-json

Para comprobar y ver la configuración de nuestro servidor podemos crear un archivo info.php

sudo vim /var/www/html/info.php

Y añadimos en el archivo el siguiente codigo PHP:

<?php
 phpinfo();
 ?>

Para insertar en el editor VIM, debes oprimir la tecla i, copiar el fragmento de codigo anterior, pegas en terminal (Ctrl+Shift+V), guarda y sale del editor digitando –> :wq

php

PHPMYADMIN

Ahora que ya tenemos instalado el servidor, nos hacen falta las herramientas para desarrollar. Lo primero a instalar es una herramienta para gestionar nuestra base de datos, lo más común es phpMyAdmin

sudo apt-get install phpmyadmin

Creamos un enlace simbólico y reiniciamos apache

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
 sudo /etc/init.d/apache2 reload

phpmyadmin

SEGUNDO CAFÉ

Listo ahora crearemos nuestra base de datos, nombrando el usuario root(-u) y el pass de nuestra BD(-p), así:

/var/www/html# mysql -uroot -p
password:
 mysql> create database drupal8;
 mysql> exit

Enviamos el paquete de archivos de drupal 8 a /var/www/html
Lo renombramos mv drupal-8.0.5/ drupal8
Y lo lanzamos desde nuestro buscador localhost/drupal8

drupal

Iniciamos instalación y aparece un mensaje de alerta para el manejo de URL’s limpias.

Procedemos en terminal a editar el archivo de configuración del apache:

nano /etc/apache2/apache2.conf
Debes reemplazar lo que encuentres en la etiqueta <Directory /var/www/> añadiendo algunas lineas de la siguiente manera:
 
 <Directory /var/www/>
 Options Indexes FollowSymLinks
 AllowOverride All
 #AccessFileName .htaccess
 Require all granted
 </Directory>

Realizado el cambio, procedemos a reiniciar el apache, así:

sudo service apache2 restart

Desde terminal, ubica el directorio files para asignarle el usuario que por defecto se crea para todo lo que tengas en la carpeta /var/www/html

cd /var/www/html/drupal8/sites/default/files
chown www-data:www-data files/ -R

Nos aseguramos de la configuración creando un enlace simbolico, así:

cp default.settings.php settings.php

Y le asignamos un usuario al fichero settings.php, así:

chown www-data:www-data settings.php

Por ultimo ejecutamos en terminal:

a2enmod rewrite

Esto, deberia solucionar todos las advertencias posibles para proceder con exito la instalación del CMS Drupal 8.

drupal8

Solo por verificar, notamos que se crea una carpeta en el directorio files llamada translations con su debido archivo. Instala los módulos del núcleo (42 módulos) e importa las traducciones de la carpeta translations.

Hasta un próximo tuto!!! Mis queridos amigos linuxeros