Niedawno zmieniłem komputer Mac na Ubuntu. Byłem rozczarowany, że Mac nie ma tego wygodnego sudo apt-get
w Ubuntu. Słyszałem, że powinienem używać Homebrew, ale nie jestem do końca pewien, co robi Homebrew lub Macports?
Niedawno zmieniłem komputer Mac na Ubuntu. Byłem rozczarowany, że Mac nie ma tego wygodnego sudo apt-get
w Ubuntu. Słyszałem, że powinienem używać Homebrew, ale nie jestem do końca pewien, co robi Homebrew lub Macports?
Odpowiedzi:
MacPorts to droga.
Jak wskazał @ user475443, MacPorts ma o wiele więcej pakietów. Dzięki naparowi wkrótce znajdziesz się w pułapce, ponieważ potrzebna formuła nie istnieje.
MacPorts to natywna aplikacja: C + TCL. W ogóle nie potrzebujesz Ruby. Aby zainstalować Ruby on Mac OS X może potrzebować MacPorts, więc po prostu iść z DarwinPorts i będziesz szczęśliwy.
MacPorts jest naprawdę stabilny, w ciągu 8 lat nigdy nie miałem z tym problemu i cały ekosystem Unixa się na nim opierał.
Jeśli jesteś programistą PHP, możesz zainstalować ostatnią wersję Apache (Mac OS X używa wersji 2.2), PHP i wszystkie potrzebne rozszerzenia, a następnie uaktualnić wszystko za pomocą jednego polecenia. Zapomnij zrobić to samo z Homebrew.
Grupy wsparcia MacPorts.
foo@macpro:~/ port select --summary
Name Selected Options
==== ======== =======
db none db46 none
gcc none gcc42 llvm-gcc42 mp-gcc48 none
llvm none mp-llvm-3.3 none
mysql mysql56 mysql56 none
php php55 php55 php56 none
postgresql postgresql94 postgresql93 postgresql94 none
python none python24 python25-apple python26-apple python27 python27-apple none
Jeśli masz zainstalowany zarówno PHP55, jak i PHP56 (z wieloma różnymi rozszerzeniami), możesz przełączać się między nimi za pomocą jednego polecenia. Wszystkie względne rozszerzenia są częścią grupy i zostaną aktywowane w wybranej grupie: php55 lub php56. Nie jestem pewien, czy Homebrew ma tę funkcję.
Rubiści lubią przepisywać wszystko w Rubim, ponieważ jedyną rzeczą, na którą są swobodnie, jest sam Ruby.
Zarówno Homebrew, jak i Macports rozwiązują ten sam problem - jest to instalacja typowych bibliotek i narzędzi, które nie są dołączone do systemu OSX.
Zazwyczaj są to biblioteki związane z programowaniem i najczęstszym zastosowaniem tych narzędzi jest dla programistów pracujących na systemie OSX.
Oba wymagają zainstalowanych narzędzi wiersza polecenia xcode (które można pobrać osobno z https://developer.apple.com/ ), a dla niektórych konkretnych pakietów będzie trzeba zainstalować cały IDE xcode.
xcode można zainstalować ze sklepu Mac App Store, jest do pobrania za darmo, ale zajmuje trochę czasu, ponieważ ma około 5 GB (jeśli dobrze pamiętam).
macports jest wersją osx narzędzia portowego od BSD (ponieważ osx pochodzi od BSD, był to naturalny wybór). Dla każdego, kto zna którąkolwiek z dystrybucji BSD, macports poczują się jak w domu.
Główna różnica między homebrew a macports; a powodem, dla którego wolę homebrew, jest to, że nie zastąpi on rzeczy, które powinny być instalowane „natywnie” w systemie OSX. Oznacza to, że jeśli dostępny jest pakiet natywny, homebrew powiadomi Cię zamiast go zastąpić i spowodować problemy w dalszej linii. Instaluje również biblioteki w przestrzeni użytkownika (dlatego nie trzeba używać „sudo” do instalowania rzeczy). Pomaga to również w pozbyciu się bibliotek, ponieważ wszystko znajduje się na dostępnej ścieżce.
homebrew cieszy się również bardziej aktywną społecznością użytkowników, a jego pakiety (zwane formułami) są dość często aktualizowane.
macports nie zastępuje natywnych pakietów OSX - dostarcza własną wersję - To jest główny powód, dla którego wolę macports niż home-brew, musisz być pewien, czego używasz i zmian Apple w innych momentach niż porty i był znany być latami za aktualizacjami w niektórych projektach
Czy możesz podać odniesienie pokazujące, że Macports zastępuje natywne pakiety OS X? O ile mogę stwierdzić, cała instalacja Macports odbywa się w
/opt/local
Być może powinienem wyjaśnić - nigdzie nie powiedziałem w mojej odpowiedzi, że Macports zastępuje natywne pakiety OSX. Obie instalują elementy osobno.
Homebrew ostrzeże Cię, kiedy powinieneś instalować rzeczy „natywnie” (używając preferowanego instalatora biblioteki / narzędzia) dla lepszej kompatybilności. To miałem na myśli. Będzie również korzystać z tylu lokalnych bibliotek, które są dostępne w OS X. Z wiki :
Naprawdę nie lubimy duplikatów w Homebrew / homebrew
Jednak lubimy duplikaty w kranie!
Rzeczy dostarczane z systemem OS X lub biblioteką dostarczaną przez RubyGems, CPAN lub PyPi nie powinny być kopiowane. Istnieją ku temu dobre powody:
- Duplikaty bibliotek regularnie przerywają kompilacje
- Pojawiają się subtelne błędy ze zduplikowanymi bibliotekami oraz, w mniejszym stopniu, zduplikowanymi narzędziami
- Chcemy, abyś starał się, aby twoja formuła działała z tym, co zawiera OS X
Opcjonalnie możesz zastąpić wersje dostarczonych macosxów narzędziami homebrew.
/opt/local
Obecnie Macports ma o wiele więcej pakietów (~ 18,6 K) niż formuły Homebrew (~ 3,1 K) ze względu na swoją dojrzałość. Homebrew powoli jednak nadrabia zaległości.
Pakiety Macport są zwykle obsługiwane przez jedną osobę.
Macports może przechowywać wiele wersji pakietów, a można je włączać i wyłączać, aby przetestować. Czasami ta lista może ulec uszkodzeniu i trzeba ją ręcznie edytować, aby przywrócić porządek, chociaż nie jest to zbyt trudne.
Obaj menedżerowie pakietów poprosą o regularną aktualizację. Może to zająć trochę czasu.
Uwaga: możesz mieć obu menedżerów pakietów w swoim systemie! To nie jest jedno lub drugie. Brew może narzekać, ale Macports nie.
Ponadto, jeśli masz do czynienia z pakietami python lub ruby, używaj środowiska wirtualnego, o ile to możliwe.
Domyślnie Homebrew instaluje pakiety na twoim / usr / local. Polecenia Macport wymagają sudo do zainstalowania i aktualizacji (podobnie do apt-get w Ubuntu).
Aby uzyskać więcej informacji:
Ta strona sugeruje użycie Hombrew: http://deephill.com/macports-vs-homebrew/
mając na uwadze, że w tej witrynie wymieniono zalety korzystania z Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907
Ostatnio zrezygnowałem z Ubuntu i lubię korzystać z homebrew (jest prosty i łatwy w użyciu!), Ale jeśli czujesz przywiązanie do korzystania z sudo, Macports może być lepszym sposobem!
/usr/local
do Homebrew. Apple pozostawił /usr/local
„pliki wykonywalne, biblioteki itp. Nie zawarte w podstawowym systemie operacyjnym”. Oznacza to, że możliwe jest, że narzędzia zainstalowane przed użyciem Homebrew mogły utworzyć /usr/local
takie, że nie można go modyfikować sudo
. Nie dyskutują o tym na wiki.
/usr/local
bez uprawnień roota. Domyślne uprawnienia dla /usr
nowej instalacji OS X to właściciel root, bez uprawnień do zapisu dla kogokolwiek innego. Aby nawet stworzyć /usr/local
, Homebrew potrzebuje dostępu do roota. (Nie próbuję niczego bronić)
homebrew
można zainstalować bez rzeczy sudo
, ponieważ kiedy postawił się, że stosowane sudo
, aby pozwolenie na przegranej katalogów tak będzie w stanie nic zrobić wnętrze /usr/local
bez wyzwalania hasło. Czy to znaczy, że część „zainstaluj bez hasła” jest nieprawidłowa? Nie wydaje mi się! To prawda, że nadal homebrew
będą mogli dostać rzeczy bez hasła.