Zainstaluj Ruby 2.2.3 przez apt

16

Jak zainstalować Ruby 2.2.3 przez apt na Ubuntu Wily? Próbowałem sudo apt-get install ruby2.2-devi sudo apt-get install ruby2.2(co za różnica, btw) i oba polecenia wydają się mieć całkiem sporo. Jednak później nie ma już wykonywalnego rubinu.

Michiel de Mare
źródło
czy instalujesz absolutnie chcesz zainstalować Ruby 2.2.3 przez apt? Pakiet * -dev zawiera nagłówki i pliki, które * mogą wymagać poprawnego działania. sprawdź oficjalny ruby-lang.org, czy zawiera informacje potrzebne do poprawnego zainstalowania Ruby 2.2.3
enzo
proszę odnieść się, jeśli jest to przydatne [ gorails.com/setup/ubuntu/15.10]
Ravan
1
@maetsoh Dlaczego miałbym instalować każdy pakiet z apt, oprócz ruby? Lubię menedżerów pakietów.
Michiel de Mare,
Czy Ruby jest częścią mechanizmu „alternatyw” w Ubuntu? Jeśli nie, warto używać czegoś takiego jak rbenv do zarządzania instalacjami Rubiego. Zwłaszcza jeśli musisz używać różnych wersji Ruby jednocześnie. Miękkie linkowanie może być trochę męczące podczas tworzenia Railsów itp.
Używam rbenv lokalnie do przełączania wersji, więc jest to kłopotliwe, ale na produkcji potrzebuję tylko 1 wersji ruby, a następnie wolę standardowy menedżer pakietów. Przeczytam o mechanizmie „alternatyw”. ( manpages.ubuntu.com/manpages/vivid/en/man8/… )
Michiel de Mare

Odpowiedzi:

7

apt-get install ruby2.2daje ci Ruby wykonywalny - to się nazywa ruby2.2. Klejnot i irb są takie same (tzn. gem2.2 install bundlerBędą działać, irb2.2podpowiemy irb.)

Jest to normalne w Ubuntu, a system alternatyw ogólnie oznacza, że ​​nie musisz się tym przejmować, ale z jakiegokolwiek powodu Ruby nie jest zarządzany przez alternatywy w Ubuntu. Ale możemy to zrobić:

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.2 400 \
 --slave /usr/bin/rake rake /usr/bin/rake2.2 \
 --slave /usr/bin/ri ri /usr/bin/ri2.2 \
 --slave /usr/bin/rdoc rdoc /usr/bin/rdoc2.2 \
 --slave /usr/bin/gem gem /usr/bin/gem2.2 \
 --slave /usr/bin/irb irb /usr/bin/irb2.2 \
 --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby2.2.1.gz \
 --slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake2.2.1.gz \
 --slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri2.2.1.gz \
 --slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc2.2.1.gz \
 --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem2.2.1.gz \
 --slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb2.2.1.gz

Uruchomienie tego spowoduje zarejestrowanie ruby ​​w systemie alternatyw i, ponieważ jest tylko jeden wybór, ustawione ruby 2.2jako domyślne. Spowoduje to utworzenie dowiązań symbolicznych i pozwoli użyć ruby/ gem/ itp. Bez dodawania 2.2 na końcu.

To jest nieco zaktualizowana wersja instrukcji pod adresem https://leonard.io/blog/2012/05/installing-ruby-1-9-3-on-ubuntu-12-04-precise-pengolin/

Edmund
źródło
aktualizacja-alternatywy: błąd: klejnot alternatywny nie może być niewolnikiem ruby: jest to doskonała alternatywa
Jewgienij Kulik
17

Ok, działało to dla mnie przynajmniej na żywo:

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev

Wily http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/wily/main/binary-amd64/, pojawia się błąd, ponieważ brakuje adresu URL , jest tylko http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/devel/main/binary-amd64/.

Michiel de Mare
źródło
to samo na debian jessie: /
holms