Homebrew’ü sudo ayrıcalıkları olmadan yükleyebilir miyim?


26

Homebrew, sudo ayrıcalıklarına sahip olmayan bir paket kurulumuna izin veriyor, ancak Homebrew'i kurmak için yönetici ayrıcalıklarına ihtiyacım var.

Homebrew'u, sudo veya yönetici ayrıcalıklarının olmadığı bir Mac ortamında kurmak istiyorum. Mümkün mü?

Yanıtlar:


12

Hayır .. Önemli bir ameliyat yapmazsan.

Bunun nedeni, Homebrew'un paketleri yüklemek konusunda şiddetle ısrarcı olmasıdır /usr/local. Aslında, başka bir yere kurmaya zorlasanız bile, brew installpaketleri kurmak için kullandığınızda bağımlılıkları kırmanız muhtemeldir . Çoğu değilse, bu paketlerin tümü önceden derlenmemiş ve birlikte yaşamayı bekliyorlar /usr/local.

Bu ısrarın nedeni /usr/local, tam olarak POSIX'in böyle bir şeyin kurulmasını tavsiye ettiği yerdir. Yaratmak için /usr/localHomebrew dizini ve atama sahipliğini yaratmak için geçici yönetici kimlik bilgilerini ihtiyacı var.

Bu da, kimlik bilgilerini yükseltmeden başka bir şey yüklemenize izin veren şeydir.


Teşekkürler, ama sorumu kaçırdığınızı düşünüyorum. Paketleri nasıl ve nereye yerleştirdiğini biliyorum ama Homebrew'ı yönetici veya sudo olmadan yüklemek istiyorum .
BenjaminGolder

Sorunu özlemedim. Cevap "Hayır" idi .. Sadece yanlışlıkla "Evet" dedim. İstediğiniz şeyi kolayca yapamazsınız ve Homebrew yükleyicisini bir şeyleri ana dizininizin bir dalına koymak üzere düzenleyerek zorladıysanız bile, kurulumdan sonra birçok demirin başarısız olması muhtemeldir.
David Hoelzer

tamam teşekkürler. Önceki "Evet" ile kafam karıştı.
BenjaminGolder

3
Bu sadece yanlıştır, ya da en azından "önemli ameliyat" tanımı benimkinden çok farklı. brew5 yıldan uzun bir süredir ana dizine ayarlanmış bir önekle çalıştırıyorum ve o zaman 1 veya 2 bozuk paketle karşılaştım.
James McMahon

Bununla birlikte, bununla başa çıkması zor bir durum da var: Hata: Xcode lisansını kabul etmediniz. Lütfen bunu çalıştırarak çözün: sudo xcodebuild -license accept
Albert

17

Evet.

Kurulum komut dosyasını kullanmamaya sudove seçtiğiniz bir dizini kullanmaya değiştirdim . https://gist.github.com/skyl/36563a5be809e54dc139

Onu indir YOUR_HOME, komut dosyasında mutlak yola ayarla . chmod +xsenaryo. YOUR_HOME/usr/localDizini oluştur . Ardından, komut dosyasını yürütün.

./install.rb

İçinde .bash_profilebelirledim (Olumlu değilim, bu önemli, oldukça emin):

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

Şimdi yapabilirim:

brew install wget

binDizinin YOUR_HOME+ ' /usr/local/binnın üzerinde olduğundan emin olun $PATH.

which wget

1
Kurulum komut dosyasında değişkene de #{YOUR_HOME}önek eklemek zorunda kaldım HOMEBREW_CACHE. Yani, sistem yönetici zaten homebrewleri yüklü olduğu ve çünkü ben eklemek zorunda export PATH=/path/to/home/usr/local/bin:$PATHiçin .bash_profilesıra. Ancak bunlarla birlikte harika çalışıyor gibi görünüyor.
golmschenk

3
Sadece süreçten bir kez daha geçtiniz usrve betiğin çalışmasından önce ana dizininizde bir dizin hazırlamanız gerektiğini de belirtmek istedim . Eklemek Ayrıca, #{YOUR_HOME}hiç HOMEBREW_CACHEdeğişken, bu işe bunun için çift tırnak tek tırnak değiştirmek gerekmez görünüyor. Bu yüzden birkaç adım var, ancak Homebrew’in gücünü elde etmek için kesinlikle buna değer.
golmschenk

Ben golmschenk çift tırnak yakut dize biçimlendirme tekme için gerekli olduğuna inanıyorum.
Skylar Saveland

1
Güzel bir ayar. Ev yapımı projeye gerçekten bir başvuru isteği iletmelisin.
David Hoelzer

1
Bunu macOS Sierra'daki (10.12.3) yönetici olmayan bir hesaptan denedim ve işe yaramadı çünkü işe yaramadı chgrp admin /usr/localve yönetici olmayan bir hesap yönetici grubunun bir üyesi olmadı. o gruba hiçbir şey değişmedi. Bu normal bir yönetici olmayan hesap için çalışılabilirse harika olurdu (sadece garip bir nedenden dolayı sudo dışında kalmış yönetici hesapları için değil).
Spiff

0

Evet.

Demleme sistemi önyüklenebilir olarak görünüyor

#!/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/"

0

Sudo olmadan homebrew yüklemek için .

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

Terminali yeniden başlat ve çalıştır

brew --version

0

Brew git repolarına taşındı, bu yüzden yukarıdakilerin artık işe yaramıyor.

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

1
'Yukarıdaki' ile, Astik Anand'ın cevabını mı kastediyorsunuz ? Her zaman cevabınızın "üstünde" olmayacak. Eğer cevaplarındaki bir şey değişmişse, onu kendin düzenle.
nekomatic
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.