Il y a des années, vous pouviez vous en passer en brewtant que root simplement en le faisant chown brewà root, mais ils ont supprimé cette fonctionnalité. Donc, dans Homebrew 1.1.6, j'avais l'habitude de modifier /usr/local/Homebrew/Library/Homebrew/brew.shpour supprimer le contrôle racine (celui qui disait que c'était "extrêmement dangereux") afin que je puisse exécuter en brewtant que root.
La nouvelle version de Homebrew fonctionne toujours avec cela, mais continue de restaurer le brew.shfichier à chaque fois après avoir exécuté brew, même si je chmod 500le fais . Je pourrais écrire un script pour le changer puis l'exécuter brewautomatiquement, mais je ne sais pas si cela fonctionnera toujours et je ne veux pas prendre de risques. Quelqu'un a-t-il trouvé une méthode différente pour exécuter Homebrew en tant que root?
sudoexécute en tant que root, et cela me donne la même erreur "extrêmement dangereuse". Je veux exécuter en tant que root car sinon il a des problèmes pour installer certains packages, surtout si quelque chose n'a pas été installé via Homebrew (par exemple via pip). J'ai emprunté cette voie plusieurs fois. De plus, il ne fonctionne pas correctement pour plusieurs utilisateurs sans solutions de rechange étranges, sauf si j'installe tout en tant que root.
rootest risqué. Même en construisant un package sans gestionnaire de packages, vous construisez le package en tant qu'utilisateur sans privilèges (vous-même), puis installez le package comme rootavec sudo. Les gestionnaires de packages tels que Fink et MacPorts construisent tous les deux avec leurs propres utilisateurs sans privilèges, puis installent en tant que root. Homebrew ne dispose pas d'un tel mécanisme.
brew.shfichier est rétabli après l'avoir modifié puis exécuté une brewcommande. Je peux donc courir sudo brew whateveret brew whateveren tandem très bien. Ma brew --versionsortie est donc: pour Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28) info, j'ai modifié mon brew.shfichier pour commenter toutes les lignes de la check-run-command-as-rootfonction et j'ai placé une seule returninstruction en haut de la fonction.
brewtant que root? En outre, n'est-cesudopas suffisant pour vos besoins?