Corregir usr/local/share/man/man5 is not writable.

Desde hace unos días me toco actualizar a un nuevo equipo de computo (Yeah!) en esta ocasión tocando un nuevo Macbook Pro middle 2015 como la que muestro a continuación:

Tras instalar la mayoría de los paquetes que utilizo en mi día a día ya que toco hacer una configuración desde cero me encontré con que no podia instalar a primera mano Elixir usando brew.

Si encuentras al igual que yo este error, esta es la forma de poderlo arreglar utilizando nuestra terminal de comandos.

$ sudo chown -R user:admin /usr/local/share/man/man5

donde user es el nombre de tu usuario. Si no recuerdas cual es tu usuario puedes ahi mismo en la terminal utilizar el comando whoami.

Happy Hacking!

Usando Mercurial: Obtener una revisión en especifico

En un proyecto actual utilizamos como sistema de control de versiones a Mercurial, en lugar de Git como a ultimas fechas se acostumbra en las casas de desarrollo.

Mercurial es un sistema de control de versiones multiplataforma, para desarrolladores de software. Está implementado principalmente haciendo uso del lenguaje de programación Python, pero incluye una implementación binaria de diff escrita en C.

Tomando el caso de este articulo, necesitaba descargar una versión en especifico que se había desarrollado ¡Hace 2 años!.

Por lo que para obtener dicha versión, primero fui al repositorio donde actualmente se encuentra hospedada el proyecto y obtuve su número de revisión.

Teniendo a la mano dicho número, vamos hacia nuestra terminal más cercana (I Like iTerm2 😉 ) y tecleamos:

$ hg clone http://33.23.44.55:7070/scm/hg/app-mobile -r 454fe5cea0b7

Donde definimos la URL donde se encuentra nuestro proyecto y colocamos como parámetro en ” -r ” el número de la versión deseada.

Dudas, comentarios y sobre todo sugerencias son bien recibidas 😀

Solución ¿Qué versión de CentOS esta instalado en mi Servidor?

Ultimamente he retomado mis actividades de sysadmin linuxero tras pasar varios años haciendo solo apps móviles y solo tocando servidores con Debian y Ubuntu.

Pero como dice el dicho, lo que bien se aprende jamás se olvida. Así que de acuerdo al requerimiento (y también considerando que es lo que “hay”) toco trabajar ahora usando un entorno de servidor con CentOS como sistema operativo GNU Linux ;-).

Así que resolviendo esta pregunta de conocer cual versión tenemos instalado, la forma más sencilla es ir a la terminal más cercana y teclear:

# cat /etc/redhat-release

En mi caso y como lo pongo en la siguiente pantalla tengo instalado CentOS 6.8.

Solucionar no se encontró la extensión mcrypt. Revisa la configuración PHP

Tras hacer una migración de un servidor a otro comúnmente quedan cosas pendientes que vas resolviendo cuando en tu aplicación ves que algo no esta funcionando del todo correctamente.

Este fue el caso especifico con una aplicación escrita en PHP, donde se utiliza mcrypt. Sin más ni más aquí les comparto la forma en que solucionamos dicho error y podamos seguirnos a otra cosa ;-).

1.- Ir a la terminal más cercana y teclear:

# apt-get install php5-mcrypt

Considerando que estamos bajo un Debian Ubuntu o derivados.

2.- Creamos un enlace simbólico a la carpeta de módulos disponibles de PHP.

# ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available

3.- Activamos el modulo

$ php5enmod mcrypt

4.- Reiniciamos nuestro Servidor Apache

# service apache2 restart

Happy Hacking!

Enviar archivos usando SCP y SSH con puerto diferente

Me encuentro trabajando en un aplicativo de aquellos que llaman los que saben “bomberazo”. Afortunadamente gran parte del requerimiento ya se encuentra resuelto y solo faltan algunas clases en PHP sobre todo para envío masivo de mails ( NOT SPAM 😉 ).

Lo peculiar de dicho “encargo” del fin de semana es que el servidor donde vivirá la aplicación por buenas políticas de Seguridad (Good boys) el puerto de SSH escucha en otro puerto y no en el clásico 22.

Por lo que al momento de subir mis archivos mediante la herramienta SCP al servidor destino, no lo permitía. Tan solo basto con agregar el siguiente cambio al momento de subir la carpeta.


$ scp -P 3183 -r carpeta/ alberto@200.12.33.44:/home/alberto

Donde el comodín -P (en mayusculas) indicara que nuestro servidor escucha en el puerto 3183 como los buenos chicos Sysadmin dejaron dicho servidor.

Happy Hacking!

Solución error Memory Exhausted by Input Buffer of Size Bytes

Hace unos momentos tenía que crear una estancia VPS en Digital Ocean por un proyecto de un cliente que requiere un controlador de proyectos llamado openProject.

A todo esto pues necesitaba para el proyecto que dicho VPS tuviera configurada una memoria swap. Googleando encontré que lo resuelvo con el siguiente comando, que crearía una memoria SWAP de 2 GB de espacio en disco duro.


$ sudo dd if=/dev/zero of=/swapfile bs=1G count=2

Sin embargo, por alguna razón me arrojaba el error que da titulo y vida a esta noticia. Para solucionarlo, lo cambiamos de esta manera:


$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2000

Espero les sea de gran utilidad. Comentarios y sugerencias aquí mismo.

Resolver Calling Formula.sha1 is disabled! al instalar Panamax

Estoy trabajando tras las fiestas decembrinas en implementar Open Project, un proyecto escrito bajo Ruby On Rails (RoR).

Como estoy recién conociendo dicho proyecto, pensé en hacer toda la instalación de manera manual. Pero en OSX la mayoría de paquetes dependen de Brew, por lo que al seguir la guía de instalación me encontré con el siguiente error:

Error: Calling Formula.sha1 is disabled! Use Formula.sha256 instead.

Buscando en foros, encontré que la solución a dicha problematica es instalar Panamax desde este script y no de la manera tradicional:

require "formula"

class Panamax < Formula homepage "http://www.panamax.io" url "http://download.panamax.io/installer/panamax-0.6.5.tar.gz" sha256 "b59f21e5a821a3886eab0e62f85fc89d8fedea6099b79d3447906dfc36d163d7" def install system "./configure", "--prefix=#{prefix}", "--var=#{var}/panamax" system "make", "install" resource("additional_files").stage { bin.install "panamaxcli-darwin" } mv bin/"panamaxcli-darwin",bin/"pmxcli" end def caveats "If upgrading the Panamax Installer, be sure to run 'panamax reinstall' to ensure compatibility with other Panamax components." end resource "additional_files" do url "http://download.panamax.io/panamaxcli/panamaxcli-darwin" sha256 "58bd24d40260e269105f21f58369a002b6ebb2d6877f7ac3ffa29e280ecc6007" end test do assert File.exist?("#{prefix}/.panamax") assert File.exist?("#{var}/panamax") assert_match "#{version}", shell_output("#{prefix}/.panamax/panamax -v").strip end end

Guardamos el código como panamax.rb y lo ejecutamos con brew install.

Como siempre, queda este articulo disponible para sugerencias, comentarios 😀

Tip: Programar apagado de tu Linux / OSX / Macbook / iMac

Por las fechas actuales donde tendremos periodo de descanso / vacaciones es muy seguro que dejes descargando temporadas de series o películas que veras en estos días. Por lo que además de gastar bastante en el Recibo de luz (Gracias CFE) podrás poner en riesgo tu equipo si lo dejas encendido toda la noche.

En la familia de sistemas operativos tipo Unix programar el apagado del equipo es tan fácil como:

$ sudo shutdown -h +120

Esto creará una instrucción para apagar en 120 minutos o 2 horas tu equipo de computo.

Como siempre, este articulo queda abierto para comentarios y sugerencias 😀

Añadir Usuario con una carpeta home previamente creada

Por motivos de trabajo y muy parecido al articulo anterior, era importante darle acceso a un usuario dentro de una carpeta que previamente existía; a su vez pudiese trabajar usando SublimeText.

Iremos a la terminal cercana y teclearemos el siguiente comando:

$ adduser nuevoUsuario – – /home/apps/web23/

Donde crearemos un usuario llamado “nuevoUsuario” y la carpeta donde vivirá dicho usuario esta en el path “/home/apps/web”. Por efectos de uso de WordPress en el sitio, los 2 guiones que aparecen por separado van junto ;-).

Cualquier duda, comentario o sugerencia es más que bienvenida.