56 votes

Puis-je installer Homebrew sans les privilèges sudo ?

Homebrew autorise gentiment l'installation de paquets sans privilèges sudo, mais il semble que j'aie besoin de privilèges d'administrateur pour installer Homebrew lui-même.

J'aimerais installer Homebrew dans un environnement Mac où je n'ai pas les privilèges sudo ou admin. Est-ce possible ?

53voto

judepereira Points 646

Au cas où quelqu'un le chercherait encore en 2020 et au-delà, oui, c'est possible sans les privilèges root :

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

Ce qui précède vous permet d'installer homebrew n'importe où. Assurez-vous que vous ajoutez homebrew/bin à votre $PATH.

Plus d'informations sur cette méthode d'installation alternative (et la source) : https://docs.brew.sh/Installation#untar-anywhere

25voto

Charles Cho Points 9

Oui.

J'ai modifié l'installation script pour ne pas utiliser sudo et d'utiliser un répertoire de votre choix. https://gist.github.com/skyl/36563a5be809e54dc139

Télécharger cela, mettre YOUR_HOME dans le script au chemin absolu. chmod +x le script. Créez le YOUR_HOME/usr/local répertoire. Ensuite, exécutez le script.

./install.rb

Sur .bash_profile J'ai réglé (je ne suis pas sûr que ce soit important, mais je suis plutôt sûr) :

export HOMEBREW_PREFIX=/The/path/to/YOUR_HOME/usr/local

Maintenant, je peux :

brew install wget

Assurez-vous que le bin répertoire, YOUR_HOME + /usr/local/bin est sur votre $PATH .

which wget

16voto

David Hoelzer Points 446

Non Sauf si vous faites une chirurgie importante.

La raison en est que Homebrew insiste fortement sur l'installation des paquets dans le répertoire /usr/local . En fait, même si vous l'avez forcé à s'installer ailleurs, vous risquez de briser des dépendances lorsque vous utilisez la fonction brew install pour installer des paquets. La plupart de ces paquets, si ce n'est tous, sont pré-compilés et liés en s'attendant à vivre dans /usr/local .

La raison de cette insistance est que /usr/local est précisément l'endroit où POSIX recommande que ce genre de choses soit installé. Afin de créer /usr/local Homebrew a besoin d'informations d'identification d'administrateur temporaire pour créer le répertoire et attribuer la propriété.

Ceci, à son tour, est ce qui vous permet d'installer n'importe quoi d'autre sans élever les informations d'identification.

2voto

Astik Anand Points 121

Pour installer homebrew sans sudo .

git clone https://github.com/Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile

Redémarrer le terminal et exécuter

brew --version

1voto

eel ghEEz Points 290

Oui.

Le système brew semble amorçable et peut être installé dans le répertoire personnel d'un individu. Selon un commentaire de @Adrian, cela prendra beaucoup plus de temps car chaque paquet sera construit à partir de son code source.

#!/bin/bash
set -ex

export HOMEBREW_PREFIX=~/homebrew
# export HOMEBREW_NO_ANALYTICS=1
mkdir -p "${HOMEBREW_PREFIX}"
curl -fsSLk https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C "${HOMEBREW_PREFIX}"

ls -laR "${HOMEBREW_PREFIX}"

export PATH="${HOMEBREW_PREFIX}/bin:${PATH}"
type -a brew

type -a openssl || :
openssl version -a || :

type -a curl || :
curl -V || :

# Fails to lock a .git/config file.
##brew analytics off

# No "brew update" until installing the proper openssl and a curl that uses it.
# brew update

# brew remove openssl || :
brew install openssl
brew link --force openssl

# brew remove curl || :
brew install --with-openssl curl
brew link --force curl || :
curl -V

ls -la "${HOMEBREW_PREFIX}/opt"
ls -la "${HOMEBREW_PREFIX}/bin"
ls -laLR "${HOMEBREW_PREFIX}/opt/curl/"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X