Archivo de la etiqueta: osx

Problema tablas lowercase con MAMP

Me ocurrió que al ir a crear algunas tablas en una base de datos MAMP, algunos nombres estaban en minúsculas, sin embargo las sentencias Create tenían alguna mayúscula; si solo se trabaja en OSX no habría mayor problema, pues para MAC mayúsculas y minúsuclas son lo mismo, y las sentencias no distinguen; el problema me ocurrió al exportar esta base de datos a un entorno linux.

Para evitar problemas y dejar los nombres de las tablas respetando el nombre original, se utiliza una variable lower_case_table_names:

0 -> Los nombres de tablas y bases de datos se almacenan en el disco utilizando el mayúsculas y minúsculas según se especifique en las sentencias CREATE TABLE o CREATE DATABASE. En principio no de debería establecer esta variable a 0 en un sistema que no es case-sensitive (como Windows o OS X). Si se fuerza esta variable a 0 en estos sistemas y se accede a tablas MyISAM utilizando diferentes combinaciones de letras (mayúsculas y minúsculas), puede provocar la corrupción de índices.

1 -> Los nombres de tablas se almacenan en minúsculas en el disco y las comparaciones no distinguen entre mayúsculas y minúsculas. MySQL convierte todos los nombres de tabla en minúsculas en el almacenamiento y consulta. Este comportamiento también se aplica a nombres de bases de datos y alias de tablas.

2 -> Los nombres de tablas y bases de datos se almacenan en el disco utilizando mayúsculas y minúsculas según se especifica en las sentencias CREATE TABLE o CREATE DATABASE, pero MySQL los convierte a minúsculas en las operaciones de búsqueda. Esto funciona sólo en sistemas de archivos que no distinguen entre mayúsculas y minúsculas!

Si deseamos cambiar el comportamiento, añadimos en el fichero my.cnf, en el bloque [mysqld], el parámetro con el valor deseado.

En MAMP para modificar esto debemos ir al menú, en Archivo > Editar Plantilla > MYSQL my.cnf

Luego reiniciamos mysql.

Permisos por defecto en OSX

Hace unos días me encontré con el siguiente problema: deseaba compartir una carpeta entre 2 usuarios de un mismo equipo; para ello creé la carpeta con uno de ellos y en las preferencias del sistema compartí esa carpeta con el otro usuario, dándole permisos de lectura escritura. Entré con el otro usuario y vi que, efectivamente, tenía acceso a dicha carpeta.

El problema se presentó después, pues cualquier fichero (o carpeta) que creaba con uno de los usuarios en esta carpeta, no otorgaba permisos de escritura a nadie más que a él mismo, por lo que el otro usuario solo podía leer el nuevo contenido; tendría que ir cambiando los permisos de cada archivo o carpeta cada vez que la creaba, lo cual es una solución que para nada me resultaba eficiente.

Contacté con el servicio técnico de Apple, y tuvieron que contactar con un supuesto experto, el cual al final tras ver lo que quería y ver que no se hacía de forma automática (también le sorprendió), me dijo que esto podría solucionarlo con algún software externos a Apple (no me dio nombres).

Como esta conclusión no me satisfizo, seguí buscando por internet y finalmente encontré la solución: la utilización de umask.

Por lo visto, cuando se crea un archivo por defecto tendría permisos 666 y para carpetas 777; sin embargo, por defecto viene configurado un umask de 022, por lo tanto los permisos de los archivos y carpetas serán:

666 – 022 = 644 (usuario con rw, grupo con r, todos con r).

777 – 022 = 755

Si alguna carpeta difiere, se le pueden cambiar los permisos, pero por defecto cuando un usuario crea una carpeta o fichero, tendrá esos permisos.

Yo deseaba que 2 usuarios tuvieran permiso de lectura y escritura a los ficheros de una carpeta, aunque me valía la solución de que fuera a todos los que se creen nuevos estén donde estén (no se si esta solución podría valer para una carpeta en concreto). Para ello hay que cambiar el umask de los usuarios, de forma que los permisos sean 664 (archivos) y 775 (carpetas). Por tanto el umask debe ser 002

666-002=664

777-002=775

El comando en Yosemite sería:

sudo launchctl config user umask 002

En Mavericks y anteriores habría que creado un fichero (sudo /etc/launchd-user.conf) que contenga en una línea umask 002.

En ambos casos para que tenga efecto hay que reiniciar el sistema.

Para conocer el umask, tecleamos desde un terminal: umask

Una vez entendido esto, hay que saber que el sistema también puede crear archivos o carpetas, y por defecto estos también tienen se crean con los permisos por defecto para usuarios; para cambiarlo hay que modificar con umask (por ejemplo si lo deseamos dejar como para los usuarios):

 sudo launchctl config system umask 002

En Mavericks y anteriores habría que creado un fichero (sudo /etc/launchd.con.conf) que contenga en una línea umask 002.

Para saber los permisos que se aplican cuando se crea por el sistema podemos utilizar

umask -S

Descargar lista de youtube desde línea de comandos

Válido para linux y OSX; con este comando lo descarga a la máxima calidad posible:

youtube-dl –max-quality FORMAT -citw url_de_la_lista_de_youtube

Para obtener ayuda:

youtube-dl –help

Para instalar en OSX:

sudo curl https://yt-dl.org/downloads/2015.01.25/youtube-dl -o /usr/local/bin/youtube-dl

sudo chmod a+x /usr/local/bin/youtube-dl

Para bajar los vídeos de un canal completo:

youtube-dl –max-quality FORMAT -citw ytuser:<USER>

Para copiar a partir de un determinado número de vídeo, añadimos la opción:

–playlist-start NUMERO

 

 

Problema al arrancar MAMP en OSX Yosemite

Al intentar arrancar el Apache de MAMP obtenía un error similar al siguiente:

Symbol not found: _iconv
Referenced from: /usr/lib/libmecabra.dylib
Expected in: /Applications/MAMP/*/libiconv.2.dylib
in /usr/lib/libmecabra.dylib

La solución fue renombrar el archivo /Applications/MAMP/Library/bin/envvars/Applications/MAMP/Library/bin/_envvars