Matt Biscay: développeur WordPress et WooCommerce pour SkyMinds
macos monterey wallpaper

Installer composer et PHP sous MacOS Monterey

Depuis la mise à jour MacOS Monterey (v12+) et pour toutes les versions à venir, Apple ne fournit plus de binaire PHP installé par défaut.

Si vous utilisez composer par exemple pour l’un de vos scripts ou plugin, voici le message d’erreur que vous pouvez obtenir:

composer update --no-plugins --no-scripts
env: php: No such file or directory

J’ai tenté pas mal de solutions, comme installer PHP avec brew mais cela n’a pas résolu le problème.

Error: Permission denied @ apply2files

C’est l’une des erreurs obtenues lors de l’installation de paquets avec brew, directement après la mise à jour vers Monterey:

Error: Permission denied @ apply2files - /usr/local/lib/node_modules/npm/node_modules/.bin/node-gyp

Si cela vous arrive, c’est un problème de permissions sur le répertoire /user/local, la solution est simple, il faut redonner les bonnes permissions à votre utilisateur avec cette commande:

sudo chown -R $(whoami):admin /usr/local/* \
&& sudo chmod -R g+rwx /usr/local/*

Voilà déjà un problème réglé.

Installer composer sous MacOS Monterey

La véritable solution, toute simple finalement, est de réinstaller composer, qui se charge alors d’installer la version idoine de PHP.

On installe composer avec brew:

brew install composer

Résultat:


==> Downloading https://ghcr.io/v2/homebrew/core/php/manifests/8.1.0
Already downloaded: /Users/matt/Library/Caches/Homebrew/downloads/6dba7b955c116a258cc340994e9e9ed7dfdfe3ab7668f0f9adb5dfcdaaf303a2--php-8.1.0.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/php/blobs/sha256:dbbf3f0e595af9a72f6dcf7fef1890c6152bf9fb1be83f166b467393176c4aa5
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:dbbf3f0e595af9a72f6dcf7fef1890c6152bf9fb1be83f166b4
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/composer/manifests/2.1.14
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/composer/blobs/sha256:02f5fed3d67b82fb827078ffcd486a4a455d1f94e94d0701d779238d4e10903e
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:02f5fed3d67b82fb827078ffcd486a4a455d1f94e94d0701d77
######################################################################## 100.0%
==> Installing dependencies for composer: php
==> Installing composer dependency: php
==> Pouring php--8.1.0.monterey.bottle.tar.gz
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_ini /usr/local/etc/php/8.1/php.ini system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_dir /usr/local/share/pear system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set doc_dir /usr/local/share/pear/doc system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set ext_dir /usr/local/lib/php/pecl/20210902 system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set bin_dir /usr/local/opt/php/bin system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set data_dir /usr/local/share/pear/data system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set cfg_dir /usr/local/share/pear/cfg system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set www_dir /usr/local/share/pear/htdocs system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set man_dir /usr/local/share/man system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set test_dir /usr/local/share/pear/test system
==> /usr/local/Cellar/php/8.1.0/bin/pear config-set php_bin /usr/local/opt/php/bin/php system
==> /usr/local/Cellar/php/8.1.0/bin/pear update-channels
🍺  /usr/local/Cellar/php/8.1.0: 512 files, 79.9MB
==> Installing composer
==> Pouring composer--2.1.14.monterey.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/composer
Target /usr/local/bin/composer
already exists. You may want to remove it:
  rm '/usr/local/bin/composer'

To force the link and overwrite all conflicting files:
  brew link --overwrite composer

To list all files that would be deleted:
  brew link --overwrite --dry-run composer

Possible conflicting files are:
/usr/local/bin/composer
==> Summary
🍺  /usr/local/Cellar/composer/2.1.14: 3 files, 2.2MB
==> Running `brew cleanup composer`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

Comme vous pouvez le constater dans les résultats précédents, le lien symbolique n’a pas été créé correctement donc nous allons le corriger à la main.

On teste notre commande avec --dr-run d’abord:

brew link --overwrite --dry-run composer
Would remove:
/usr/local/bin/composer

Tout semble bon, on crée le lien symbolique:

brew link --overwrite composer
Linking /usr/local/Cellar/composer/2.1.14... 1 symlinks created.

On reteste maintenant notre mise à jour de plugin via composer:

composer update --no-plugins --no-scripts

Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Writing lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files

Impeccable, composer et php sont de nouveau opérationnels sous Monterey.

Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo

Ubuntu: installer le bureau Gnome Classic à la place d’Unity

ubuntu-update

J’ai récemment hérité d’un MacBook Pro, sur lequel j’ai installé Ubuntu.

Depuis quelques années maintenant, la société Canonical qui publie Ubuntu a fait le choix d’imposer un nouveau bureau, appelé Unity, qui s’adresse aux petits écrans des laptops et autres netbooks.

Personnellement, je ne suis pas fan du bureau Unity et préfère retrouver un bureau Gnome (à prononcer Génome) plus classique, avec des menus qui me permettent d’accéder aux applications.

Plusieurs solutions s’offrent à nous : on peut retrouver Gnome Classic (basé sur Gnome 2), ou alors installer des bureaux plus récents comme MATE ou Cinnamon, tout deux développés par l’équipe de Linux Mint.

Sur mon Ubuntu, j’ai opté pour Gnome Classic, certes vieillissant mais qui me convient bien. Voici donc comment l’installer.

Installer le bureau Gnome Classic

Pour installer Gnome Classic Desktop, il suffit de mettre à jour nos dépôts et d’installer le paquet gnome-session-flashback:

sudo apt update && sudo apt install gnome-session-flashback

Ensuite, il ne vous reste plus qu’à quitter votre session.

Au démarrage de la nouvelle session, cliquez sur le logo Ubuntu à droite de votre nom d’utilisateur et enfin sélectionnez Gnome Flashback (Metacity):

Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo

Entrez votre mot de passe de session: vous venez de retrouver Gnome Classic !

Ubuntu: installer un autre bureau qu'Unity et retrouver Gnome Classic photo 1
google-v-microsoft-v-apple

Google vs Microsoft vs Apple : state of mind

Parce qu’au fond, vous savez bien qu’entre Google, Microsoft et Apple, tout est histoires d’interopérabilité ou de systèmes propriétaires, d’API ouvertes ou non, et de logiques mercantiles plus ou moins avouées :

google v microsoft v apple

RIP Steve Jobs.

L'iPhone, le téléphone next-gen d'Apple photo

L’iPhone, le téléphone next-gen d’Apple

Si vous suivez l’actualité web, vous avez forcément entendu parler de la dernière innovation d’Apple – l’iPhone – téléphone sans touches à écran tactile qui possède les fonctionnalités de l’iPod, d’un visionneur de photos et d’un PDA dernière génération. La chaîne CBS en a fait un excellent reportage que vous propose ici :

L’iPhone ne doit sortir que dans 6 mois (au prix de 399$) mais il bénéficie d’un buzz phénoménal depuis sa présentation au salon Mac World.

L’iPod perd ses fichiers

iPodL’iPod 4G de 40 Go que je possède vient de perdre ses fichiers mystérieusement. En fait, c’est un peu plus complexe que cela. Les fichiers étaient présents sur le disque mais on ne pouvaient les lire ou même les afficher depuis l’iPod ou autre lecteur audio. C’était comme si on avait éffacé la table des matières (table of content ou TOC) du disque, à la manière d’un formatage rapide d’un CD ou d’un disque dur.

Ma mission : tenter de récupérer les quelques 30 Go de données.

Récupération des données

J’ai commencé par copier les fichiers que j’avais mis à la main sur l’iPod en passant par l’explorateur : comme je m’en sers comme d’une grosse clé USB, j’ai facilement récupéré une dizaine de gigas de programmes et l’image de mon disque principal avec laquelle je me balade toujours. Cela permet de la monter facilement sur n’importe quel PC et d’accèder à mes données. Très pratique. Pour la musique par contre, la tâche a été plus ardue : les logiciels ne voyaient qu’une table des matières vides et ne pouvaient rien récupérer. Par chance, j’avais une vieille copie d’iPod2PC, la version 1.00 Beta, qui est la seule ayant été capable de lire les données. Cela m’a permis de retrouver une dizaine de gigas de musique, classés par artiste et albums. Cette version d’évaluation m’en a sauvé le tiers à peu près.

Mise à jour et formatage

Une fois les données récupérées, j’ai mis à jour le firmware de l’iPod et j’ai dû installer iTunes, chose qui me deplaît au plus haut point, afin de déverrouiller l’iPod. En effet, l’iPod est par défaut inactif et doit être validé via iTunes exclusivement. Bonjour l’interopérabilité, bienvenue chez Apple. La prochaine fois, j’y réfléchirai à deux fois avant de choisir la pomme.

Conclusion

Pourquoi l’iPod a-t-il perdu ses données ? Mystère ! Tout fonctionnait il y a encore un mois, je penche pour une sorte de démagnétisation pendant l’un des transports. Cela devrait nous rappeler que ce n’est qu’un disque dur habillé de manière élégante, rien de plus et qu’il est donc soumis au mêmes contraintes. Faîtes des backups réguliers, je viens de tester CopyPod et cela fonctionne très bien.