iridio studio's blog

keep informed.

10-11-2018

Programar en C

Primeros pasos para programar en C en Linux

En ubuntu (y verisones basadas en Ubuntu como Elementary OS), el compilador de c y de c++ ya están instalados por defecto en muchas verisones. Para comprobarlo en a terminal se introduce el siguiente comando
dpkg --list | grep compiler

en general se podrá observar que tanto g++ como gcc están ya instalados. Ahora se comprueba que todo funciona correctamente ejecutando con el programa holamundo:
vim hola mundo.c

#include <stdio.h>
int main()
{
	printf ("Hola mundo.\n");
	return 0;
}

Se debe compilar con el comando
gcc holamundo.c

Se genera el archivo a.out que se debe ejecutar con
./a.out


04-11-2018

rsync

Dos buenas guías para empezar a usarlo

El programa rsync viene instalado por defecto con Elementary OS, para comprobar que efectivamente está instalado teclear
rsync --version

Este programa es utilizado para sincronizar directorios (remotos o locales) y se puede utilizar para crear una copia de nuestro árbol de archivos en un momento dado y también para tener un "dropbox" o "google drive" de algún directorio en concreto. Esto puede ser útil con un disco duro o unidad USB conectada por ejemplo a una Raspberry Pi

Para hacer una copia del árbol de archivos es muy útil leer la doc sobre rsync de archlinux. La versión TL;DR:

sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder

Por otra parte, para sincronizar un directorio con otro, es recomendable el artículo de David Both. Nuevamente el resumen TL;DR:

sudo rsync -aH -e ssh --delete --exclude Cache --link-dest=yesterdaystargetdir remote1:sourcedir todaystargetdir

01-10-2018

ajustes según extensión

Diferentes configuraciones en vim según el tipo de archivo

Se debe crear el archivo .vimrc en el directorio home

Para ello estando situados en el directorio home se debe teclear
vim .vimrc

el archivo debe incliuir
filetype plugin on


31-10-2018

Cortar y pegar en vim

Como cortar varias líneas de un archivo y pegarlas en otro con Vim

Hay varias formas, es recomendable este artículo de Stack Overflow

La manera que se explica aquí sólo es válida si vim tiene la posibidad de copiar al portapapeles. Se puede saber con:
:echo has('clipboard')
Si devuelve 1 es que sí, en caso que devuelva 0 es que no.

Se debe entrar en el visualmode con v y seleccionar el texto que se quiera copiar, luego se debe pulsar
"*y para copiar
"*p para pegar


28-10-2018

Scrip FTP

Para subir archivos automáticamente

Supongamos que se tiene en el disco duro un archivo html que se debe subir al ftp del servidor web. Para ello lo ideal sería teclear
./nombre-del-script.sh nombre-del-articulo.html

Editar un archivo con extensión sh
vi ftp-blog.sh

Se puede sustituir vi, por el editor que se prefiera: nano, emacs, etc. El archivo tendrá el siguiente contenido:

#!/bin/bash
HOST='dominio.com'
USER='tuUsuario'
PASSWD='tupassword'
FILE=$1

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd web
cd blog
binary
put $FILE
quit
END_SCRIPT
exit 0

Ahora se deben cambiar los permisos
sudo chmod u+x ftp-blog.sh

Y eso es todo.


13-02-2017

Servidor PHP en Raspberry Pi

Configurar servidor Apache con PHP

Nota: Si se quiere empezar desde 0 hay que realizar los pasos 1 a 7 del anterior artículo

A partir de aquí se seguirán los pasos de este tutorial aunque de momento no se creará el grupo que usa apache.

1.- instar Apache y php (instalar php 5, porque es más facil, pero se puede instalar el 7 siguiendo los consejos de esta guia
sudo apt-get install apache2 php5 libapache2-mod-php5

2.- instar MySQL y PHPMyAdmin (nota, el tutorial advierte de antes activar la interfaz loopback)
sudo apt-get install mysql-server mysql-client php5-mysql phpmyadmin
Efectivamente aparece una pantalla para que se introduzca una contraseña y se debe elijir apache como server.

3.- modificar el archivo php.ini
sudo nano /etc/php5/apache2/php.ini
y añadir antes de la línea dinamics extensions
extension=mysql.so

4.- Ejecutar los siguientes comandos (en principio solo es por si acaso)
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
sudo /etc/init.d/apache2 reload

5.- Crear el siguiente archivo
sudo nano /var/www/html/testphp.php
con la siguiente funcion
<?php phpinfo(); ?>

6.- Introducir en el navegador IP_de_la_raspberry/testphp.php y comprobar que todo ha salido ok

7.- Si no, se deben realizar los pasos omitidos
sudo addgroup www-data
sudo usermod -a -G www-data www-data

8.- Modificar el archivo
sudo nano /etc/apache2/apache2.conf
añadiendo la instrucción
Include /etc/phpmyadmin/apache.conf
y reiniciar apache
/etc/init.d/apache2 restart

9.- Comprobar que phpmyadmin funciona ok yendo a IP_raspberry/phpmyadmin El usuario será root y la contraseña, la que se haya elegido.


13-02-2017

Tomcat en Raspberry Pi

Configuración desde cero

1.- Descargar la última versión de Noobs. Mejor como torrent (va más rápido). No se especifica el link en este artículo porque evidentemente irá cambiando. Simplemente buscar en Google Noobs y raspberry

2.- Grabarlo en una microSD

3.- Poner la microSD en la raspberry y encenderla. Si se introduce una contraseña WiFi se dispondrá de la opción de instalar otros SO. De todas formas, en este artículo se instalará Raspbian

4.- Una vez instalado, y cambiada la configuración del teclado, abrir consola y teclear
sudo apt-get update && sudo apt-get -y upgrade
Ojo! tarda mucho

5.- Cambiar el password por defecto del usuario pi. Por seguridad (ya que se abriran puertos, etc)
passwd

6.- Añadir un usuario llamado server. De esta manera todo lo relacionado con el servidor estará bajo los permisos de este usuario
sudo adduser server

7.- Cambiar de usuario, pasamos de pi a server.
su server
como el usuario server no tiene permisos de sudoer, si se tiene que hacer sudo en algun comando se debe volver al usuario pi

8.- Raspbian viene con java instalado, de todas formas, comprobar la versión (y que efectivamente está instalado) con
java -version

9.- Descargar Tomcat (de este mirror por ejemplo)
wget http://apache.uvigo.es/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz

10.- Descomprimir
tar xvf apache-tomcat-8.0.24.tar.gz

11.- Por defecto no hay usuarios en la "manager-gui" si se precisan, hay que añadirlo dentro del archivo tomcat-users.xml (este archivo esta dentro del directorio conf de tomcat, de la home)
nano ~/apache-tomcat-8.0.24/conf/tomcat-users.xml
con el siguiente codigo (por ejemplo)
<user username="system" password="raspberry" roles="manager-gui"/>

12.a.- Añadir un start-up script llamado tomcat al directorio /etc/init.d.
sudo nano /etc/init.d/tomcat

12.b.- Con el siguiente contenido

#!/bin/sh
# /etc/init.d/tomcat
# starts the Apache Tomcat service
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop tomcat application server
### END INIT INFO

export CATALINA_HOME="/home/server/apache-tomcat-8.5.11"
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su server $CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su server $CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
Ojo!! donde pone server es el usuario en la carpeta del cual esta el tomcat si es otro ha que cambiarlo. Ojo!! La variable CATALINA_HOME debe tener la ruta correcta, si la versión es otra que la 8.5.11 hay que tenerlo en cuenta

12.c.- Añadir permisos al script
sudo chmod a+x tomcat

13.- Añadir los links apropiados a /etc/rc?.d
sudo update-rc.d tomcat defaults

14.- Probar que todo funciona
sudo /etc/init.d/tomcat start
y luego en un navegador
http://IP_raspberry:8080

15.- Probar que para
sudo /etc/init.d/tomcat stop

16.- reiniciar y comprobar que ha iniciado solo
sudo reboot


09-10-2015

First Post

A good-will statement

  • One post per week (at least)
  • About 500 words long
  • IT or electronics related
But, it is not a good idea think with the words "never", "always", "everything" or "nothing" in mind. So, we will see.

Avisos:

  • **No hay avisos**