Instalowanie pakietów Homebrew bez łączenia

16

Chciałbym zainstalować kilka wersji Ruby (lub naprawdę dowolny pakiet Homebrew) bez łączenia żadnej z nich. Zasadniczo chciałbym traktować każdą formułę jako samą beczkę.

Nie mogę znaleźć sposobu, aby to zrobić, chociaż wydaje się to trywialne. Myślałem, że będzie coś takiego brew install --no-link <formula>.

Czy istnieje sposób na robienie tego, co chcę, lub jakiś powód, dla którego jest to zły pomysł?

Naprawdę chciałbym użyć Homebrew do zainstalowania wersji Ruby i rbenv do zarządzania nimi.

również
źródło
Tak, byłoby to bardzo przydatne, nigdzie też nie mogłem znaleźć odpowiedzi.
Aron Ahmadia,
Myślę, że brak tej funkcji jest symptomem ogólnego słabego wsparcia Homebrew dla wersji. Zawsze dostajesz najnowszą wersję, a jedynym sposobem na uzyskanie starszej wersji jest nadzieja, że ​​ktoś skopiował ją do wersji beczki lub polujesz na historię git. Jest zbyt wiele rzeczy, które powinny być prostymi argumentami wiersza poleceń, ale można to zrobić tylko za pomocą brew edit.
Mark Reed,

Odpowiedzi:

10

Wszystko, co musisz zrobić, to edytować domyślną formułę i dostosować ją do swoich celów, czyli tylko beczki. W rzeczywistości bardzo łatwo jest stworzyć własną wersję formuł, a po edycji formuły Homebrew zachowuje spersonalizowaną wersję do przyszłych zastosowań.

Tak więc po prostu edytuj plik formuły (dla konkretnej wersji kranu, którą zamierzasz zainstalować) i dodaj keg_only "My reason for making this keg-only"w klasie formuły, na przykład w nowym wierszu bezpośrednio po descpoleceniu.

Jeśli wcześniej nie edytowałeś formuły, przeczytaj kilka wierszy z FAQ Homebrew, aby dowiedzieć się, jak to zrobić:

Czy mogę samodzielnie edytować formuły?

Tak! To jest łatwe! Właśnie brew edit $FORMULA. Nie musisz przesyłać modyfikacji z powrotem do Homebrew / homebrew , po prostu edytuj formułę, tak jak potrzebujesz jej osobiście brew install. Jako bonus brew updatescali twoje zmiany z upstream, dzięki czemu możesz nadal aktualizować formułę z osobistymi modyfikacjami!

retrografia
źródło
0

Możesz uruchomić, brew install <formula>a następnie brew unlink <formula>, który usuwa wszystkie linki.

jaimeMF
źródło
Zgadza się, ale to wciąż łączy Ruby, co zakończy się niepowodzeniem, jeśli istnieje już połączona wersja. Chcę zainstalować bez kiedykolwiek powiązanie.
również
0

Nie jestem pewien co do Ruby, ale aby to zrobić dla wielu programów, możesz po prostu pobrać źródło i dostosować plik make lub użyć flag dla skryptu konfiguracyjnego autoconf, aby określić żądany katalog instalacyjny, a następnie możesz uruchomić go stamtąd.

(From configure --help output)
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]
ilustracja numeryczna
źródło