Homebrew, le gestionnaire de paquets oublié de Mac OS

Je suis tombé ce matin sur cet article via un tweet de @nixcraft (que je vous conseille chaudement de suivre).

Il met en lumière que la version de git présente sur El Capitan, dernière version en date du système d’exploitation des ordinateurs de la marque Apple, n’est pas à jour et permet d’exécuter du code arbitraire, ce qui n’est pas top du point de vue de la sécurité.

Il dénonce également le système de protection ajouté dans El Capitan (nommé SIP) qui empêche l’utilisateur, même avec les pouvoirs du super utilisateur (root), de modifier les fichiers systèmes, notamment le binaire git défaillant.

Cependant, ce qu’il oublie de dire, c’est qu’il y a un moyen d’avoir son binaire git à jour, même avec SIP, sans avoir à faire de manipulations compliquées et sans mettre le système en danger en désactivant SIP.

Ce moyen, c’est Homebrew, et il fait bien plus que ça.

1. Installer et utiliser Homebrew

Homebrew est un gestionnaire de paquets, comme aptitude sur Debian, et, comme son homologue, s’utilise et s’installe en ligne de commande.

Avant toute chose, il requiert la présence d’XCode pour fonctionner. Il est téléchargeable gratuitement depuis l’Apple Store.

Rien de compliqué dans l’installation, exécutez cette ligne de commande et laissez-vous guider :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Pour installer un paquet :
brew install
Pour supprimer un paquet :
brew remove
Pour mettre à jour les paquets installés :
brew upgrade
Pour connaitre les infos d’un paquet et ses dépendances :
brew info
Pour chercher un paquet dans la base de données :
brew search
Dans notre cas, un simple « brew install git » suffit à avoir git dans sa dernière version. CQFD.

2. Comment fonctionne-t-il ?

Malgré le fait qu’OSX ne soit pas un système d’exploitation Linux, le fait qu’il repose sur une base Unix lui permet de partager certains mécanismes communs avec Linux.

Le principe qui nous intéresse ici est le dossier /usr/local/. Ce dossier a pour but de surcharger les commandes, bibliothèques, sources, configurations, etc … présentes dans le dossier /usr/.

Dans notre exemple, si je place un exécutable git dans /usr/local/bin/, il sera lu à la place de son équivalent système dans /usr/bin/. Même chose pour les programmes que vous installerez via « brew install », ils seront tous placés ici.

Un problème avec Homebrew ? Le seul dossier que vous aurez à vous préoccuper sera celui-ci et aucun autre. 😉

3. Uniquement pour git ?

Bien sûr que non ! Un gros catalogue est disponible et une vaste majorité des logiciels que vous avez l’habitude de côtoyer sous Linux seront disponible dans Homebrew. Une vraie caverne l’Ali Baba 🙂

Par exemple, je m’en sers entre autres pour me faire un « MAMP » local (serveur web Apache + PHP + MySQL). Par besoin d’installer ce truc pas pratique pour un sou qu’est MAMP justement, surtout qu’OSX embarque déjà nativement un serveur Apache totalement fonctionnel.

Un petit « brew install php56 mariadb », ajouter la ligne de configuration dans le fichier /etc/apache2/httpd.conf comme demandé par Homebrew à la fin de l’installation, un petit « sudo apachectl restart » et c’est fini 😀

Homebrew peut même servir pour installer des applications graphiques comme VLC ou Chrome via une extension appelée Cask. J’avoue que je ne m’en sers pas personnellement, mais cela existe et cela fonctionne plutôt bien.

4. Rien de plus ?

Vous avez peut-être remarqué qu’à aucun moment je n’ai utilisé la commande « sudo » (hormis peut-être pour redémarrer Apache, mais cela n’a rien à voir avec Homebrew) ; c’est pour une bonne raison.

Homebrew fonctionne via votre utilisateur, À AUCUN MOMENT VOUS NE DEVREZ ÊTRE EN ROOT, sous peine de malfonctions ou de problèmes de droits qui pourraient survenir. Si vous respectez cela, vous n’avez rien à craindre.

Happy brew ! \o/

Equestria Girls – Friendship Games : Pourquoi j’ai Raison et vous avez Tord

Je viens de finir de regarder EQG3 et je l’ai particulièrement bien apprécié. Cela n’est cependant pas unanime et autour de moi, le film se résume à « meh ».

Mais je peux comprendre la grogne et ce qui va suivre ne sont que de pures spéculations de faux fan, ou plutôt, de « fan casual ».

Pour pouvoir exposer mes élucubrations, je vais devoir décortiquer le film. Alors avant de continuer, fermez EQD et allez voir le film, puis revenez ici ensuite 😉

Continuer la lecture

Supprimer récursivement tous les BOM de vos fichiers UTF-8 en un script

Travaillant sur un vieux projet PHP, j’ai été confronté à de vieux fichiers cradingues encodés en UTF-8 AVEC BOM, posant des problèmes d’affichages et de redirections.

Le BOM, si vous ne savez pas ce que c’est, c’est un caractère se situant généralement en début de fichier servant à déterminer en quel type d’UTF est encodé un fichier (UTF-8, 16, 32, autres ?). Ce marqueur n’étant pas nécessaire en UTF-8, il nous pose plus de problèmes qu’autre chose et l’on a pour habitude de l’omettre.

Après quelques recherches, je suis tombé sur des bouts de scripts sur le forum d’Ubuntu, mais ils modifient tous les fichiers présents. J’ai des fichiers encodés en latin9 parmi ceux à corriger, mon but n’est pas de les changer :-/

Du coup, je me suis créé un script bash qui cherche et corrige seulement les fichiers présentant cette particularité, le voici :

Un petit chmod +x sur ce script, vous l’exécutez en passant en paramètre le dossier contenant les fichiers à fixer et c’est fini 😀

Continuer la lecture

Le dernier loup

Il y a des jours où l’on sort du boulot à une heure très tardive et l’on n’a pas envie de rentrer chez soi pour dormir juste après. Fuyant la routine quotidienne, pourquoi ne pas aller au cinéma ?

Il y a des films que l’on choisit uniquement au titre et à l’affiche, sans même avoir lu le synopsis et au diable si le film est mauvais.

Il y a des choix pris sur un coup de tête qui finissent par un coup de tonnerre.

Tel fut ma soirée et tel sera mon récit. Vous décrire sans spoiler ce que « Le dernier loup » ne sera pas tâche facile, mais nécessaire, tant celui-ci ne m’a pas laissé indifférent.

Continuer la lecture

Les films du mois de mai – Dingo et Max, Quand tombe la nuit, R.I.P.D. Brigade Fantôme

Le mois de mai se termine et j’ai décidé de faire un petit point sur les films que j’ai regardés récemment.

Tout d’abord, un film d’animation des studios Disney de 1995 (il est vieux, mais il est bien !), ensuite un film à suspens prenant et enfin un film d’action un peu WTF sur les bords x)

Je précise tout de suite, je ne suis pas critique cinématographique, j’en ai un peu rien à faire de qui a réalisé le film ou des acteurs présents, je juge la production sur ce que j’en ai pensé / ressenti.

Continuer la lecture

Faire cohabiter Apache et OpenVPN sur le 443

Hier, je me suis expérimenté à installer OpenVPN sur un serveur tout neuf … Ou plus ou moins une récup d’un vieux PC de @Codeur_Fou x)

Et je dois dire que c’était plutôt simple quand on a un bon tuto. Et c’est là que je vous renvoie à l’excellent billet de Nico Largo sur le sujet.

Il y a juste une toute petite chose qui manque sur son tutoriel. Il utilise le port 443, port qui je le rappel est utilisé communément par le HTTPS.

Comment donc faire cohabiter Apache et OpenVPN pour qu’ils délivrent les pages demandés en HTTPS et le VPN tranquilou ni vu ni connu j’t’embrouille wesh ?

EDIT : Comme me l’a signalé Kahas, je me base sur Debian, mais les modifications sont tout à fait applicables sur d’autres systèmes Linux, il vous suffira d’adapter les commandes. De plus, je modifie Apache, mais la configuration d’Nginx et autres serveurs web sera sensiblement la même.

Continuer la lecture

Utiliser le clavier Mac sur un Windows

Ami utilisateurs de Mac, vous adorez peut-être Mac pour son clavier un peu spécial. Les touches ne sont pas au même endroits et pourtant, beaucoup estime que ces changements sont plus logiques et plus pratiques que les emplacements communément acquis.

Et que cela est rageant voir perturbant quand vous installez Windob Windows via Bootcamp ou une machine virtuelle Windob Windows et que vous ne retrouvez pas votre clavier habituel !

Continuer la lecture

Utiliser socket.io (et les websockets) avec Apache

Je vois déjà certains venir et dire qu’Apache pas fait pour ça, que son rôle est d’afficher des pages statiques ou PHP brute et que tout le reste devrait être laissé à un vrai serveur proxy ou à un serveur web plus récent comme Nginx. Alors oui … Mais quand on n’a pas envie de s’embêter à mettre en place un système compliqué et juste monter un node à l’arrache pour faire une tâche précise, Apache est largement suffisant.

Malheureusement, le support du websocket dans le mod_proxy d’Apache n’est assuré qu’à partir de la version 2.4. Or, la version proposée actuellement dans les dépôts Debian (ou autre Linux stable) est généralement la 2.2. Faut t-il pour autant basculer sur une branche de mise à jour instable ?

Je vous propose aujourd’hui de compiler vous-même l’extension mod_proxy_wstunnel qui permettra de vous servir de websocket sans trop de problèmes.

Continuer la lecture

Installer Windows sur un vieux Macbook sans clé USB et sans DVD

Ce samedi a été une après midi bidouille.

Mon frère s’est commandé un Optibay, un étui en métal permettant d’y loger un second disque dur à mettre à la place du lecteur optique (lecteur DVD si vous préférez).

L’installation du matos s’est passé sans soucis, le MacBook Pro milieu 2009 retrouve une seconde jeunesse avec un SSD en disque principal (le disque dur de base du Mac se retrouvant en second pour stocker tout pleins de choses, notamment une partition dédié à Windows).

Sauf que arrivé à l’installation du dit Windows … Je me suis rendu compte que j’avais complètement oublié que le support de Bootcamp sur un Macbook relativement ancien ne pouvais se faire qu’en présence d’une galette officielle de Windows dans le mangeur de disque … Pas cool :'(

Et histoire d’enfoncer encore le clou un peu plus … Impossible de booter par clé USB comme vous le feriez sur un Macbook récent (vous verrez plus loin dans l’article), bref la misère :/

Quoi qu’il en soit, l’esprit du système D m’emplis et tel un Mac Gyver des temps moderne, je me suis mis au défi d’installer Windows 7 avec seulement un ISO (légal / non modifié) et sans utiliser de périphériques externes. C’est parti !

Continuer la lecture

Polymanga 2014 : Présentation du salon et premier jour

Départ Vevey, arrivé Montreux à 9h … C’est tôt, mais c’était plutôt combo.

La file à l’entrée s’est vite remplie et déborda sur la rue (qui avaient été en partie barré pour l’occasion). On a bien senti qu’on était au bon endroit, les câlins gratuits et les cosplays passant devant nous pour se mettre à la suite de la foule.

Bonjour les plombiers :D

Bonjour les plombiers 😀

Du coup, après une petite heure et demie d’attente, nous sommes entrés, toujours en compagnie de @_noskill , @_Azaret et @mkody97 .

Continuer la lecture