Bisakah saya menginstal Homebrew tanpa hak sudo?

26

Homebrew dengan baik memungkinkan instalasi paket tanpa hak sudo, tetapi sepertinya saya memerlukan hak admin untuk menginstal Homebrew sendiri.

Saya ingin menginstal Homebrew di lingkungan Mac di mana saya tidak memiliki hak sudo atau admin. Apakah ini mungkin?

BenjaminGolder
sumber

Jawaban:

12

Tidak .. Kecuali jika Anda melakukan operasi yang signifikan.

Alasannya adalah bahwa Homebrew sangat bersikeras untuk menginstal paket /usr/local. Bahkan, bahkan jika Anda memaksanya untuk menginstal di tempat lain, Anda mungkin akan memutuskan dependensi ketika Anda menggunakan brew installuntuk menginstal paket. Sebagian besar, jika tidak, semua paket ini sudah dikompilasi sebelumnya dan ditautkan dengan harapan untuk tinggal /usr/local.

Alasan desakan ini /usr/localadalah di situlah POSIX merekomendasikan hal-hal seperti ini diinstal. Untuk membuat /usr/localHomebrew perlu kredensial admin sementara untuk membuat direktori dan menetapkan kepemilikan.

Ini, pada gilirannya, adalah apa yang memungkinkan Anda untuk menginstal apa pun tanpa meningkatkan kredensial.

David Hoelzer
sumber
Terima kasih, tapi saya pikir Anda melewatkan pertanyaan saya. Saya tahu bagaimana & di mana ia menginstal paket, tetapi saya ingin menginstal Homebrew tanpa admin atau sudo.
BenjaminGolder
Saya tidak ketinggalan pertanyaan Anda. Jawabannya adalah "Tidak" .. Saya hanya mengatakan "Ya" secara tidak sengaja. Anda tidak dapat dengan mudah melakukan apa yang Anda minta dan bahkan jika Anda memaksanya dengan mengedit installer Homebrew untuk meletakkan beberapa hal ke cabang dari direktori home Anda, kemungkinan besar banyak brews akan gagal setelah instalasi.
David Hoelzer
oke terima kasih. Saya bingung dengan "Ya" sebelumnya.
BenjaminGolder
3
Ini salah, atau setidaknya definisi Anda tentang "operasi signifikan" sangat berbeda dari saya. Saya sudah menjalankan brewdengan awalan yang ditetapkan ke direktori rumah saya selama 5 tahun plus dan saya telah menemukan 1 atau 2 paket rusak pada waktu itu.
James McMahon
Namun, ada juga ini, yang sulit untuk diselesaikan: Kesalahan: Anda belum menyetujui lisensi Xcode. Silakan atasi ini dengan menjalankan: sudo xcodebuild -license accept
Albert
17

Iya nih.

Saya memodifikasi skrip instal agar tidak menggunakan sudodan menggunakan direktori pilihan Anda. https://gist.github.com/skyl/36563a5be809e54dc139

Unduh itu, atur YOUR_HOMEdalam skrip ke jalur absolut. chmod +xnaskah. Buat YOUR_HOME/usr/localdirektori. Kemudian, jalankan skrip.

./install.rb

Di .bash_profile, saya atur (saya tidak yakin ini penting, cukup yakin):

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

Sekarang saya bisa:

brew install wget

Pastikan bindirektori, YOUR_HOME+ /usr/local/binada di Anda $PATH.

which wget
Skylar Saveland
sumber
1
Dalam skrip instal saya harus menambahkan #{YOUR_HOME}awalan ke HOMEBREW_CACHEvariabel juga. Itu, dan karena sistem admin sudah pernah homebrew terinstal, saya harus menambahkan export PATH=/path/to/home/usr/local/bin:$PATHuntuk .bash_profilejuga. Tetapi dengan semua itu, tampaknya bekerja dengan baik.
golmschenk
3
Baru saja melalui proses itu lagi, dan saya hanya ingin menyebutkan Anda juga harus membuat usrdirektori di direktori home Anda sebelum skrip dijalankan. Selain itu, ketika Anda menambahkan #{YOUR_HOME}ke HOMEBREW_CACHEvariabel, tampaknya Anda perlu mengubah tanda kutip tunggal menjadi tanda kutip ganda agar berfungsi. Jadi ada beberapa langkah, tapi itu pasti layak untuk mendapatkan kekuatan Homebrew.
golmschenk
Kutipan ganda @golmschenk diperlukan untuk memformat string ruby ​​untuk menendang, saya percaya.
Skylar Saveland
1
Itu penyesuaian yang bagus. Anda benar-benar harus mengirimkan permintaan penarikan ke proyek buatan sendiri.
David Hoelzer
1
Saya mencoba ini dari akun non-admin di macOS Sierra (10.12.3) dan tidak berhasil karena harus melakukan chgrp admin /usr/local, dan akun non-admin bukan anggota grup admin, jadi bisa ' t mengubah apa pun ke grup itu. Akan lebih bagus jika ini bisa berfungsi untuk akun non-admin normal (bukan hanya untuk akun admin yang karena alasan aneh telah dikunci dari sudo).
Spiff
0

Iya nih.

Sistem pembuatan tampaknya bootstrappable

#!/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/"
belut ghEEz
sumber
0

Untuk menginstal homebrew tanpa sudo .

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

Mulai ulang terminal dan jalankan

brew --version
Astik Anand
sumber
0

Brew memindahkan repo git mereka yang mengapa hal di atas tidak berfungsi lagi.

git clone [email protected]:Homebrew/brew.git
echo 'export PATH="/path/to/cloned_folder/homebrew/bin:$PATH"' >> ~/.bash_profile
pwaterz
sumber
1
Maksud 'di atas' maksud Anda jawaban Astik Anand ? Itu tidak akan selalu 'di atas' jawaban Anda. Jika sesuatu dalam jawaban mereka harus diubah, edit sendiri.
nekomatic