RVM: Różnice pomiędzy wersjami
(ruby, podanie bardziej aktualnej wersji w przykladize) |
|||
Linia 27: | Linia 27: | ||
{{output}}(...) | {{output}}(...) | ||
1 gem installed{{endoutput}} | 1 gem installed{{endoutput}} | ||
+ | |||
+ | ==== Instalacja interpretera Ruby 2.7.8 ==== | ||
+ | |||
+ | Jeżeli twoje oprogramowanie nadal używa Ruby 2.X to rozważ aktualizację swojej aplikacji. Ruby 2.7.8 jest ostatnią wersją z linii 2.7 i jego wsparcie przez autorów Ruby zostało zakończone 31 marca 2023 roku. Poniżej wskazujemy sposób uruchomienia Ruby 2.7.8 ale nie gwarantujemy, że będzie on w przyszłości aktualny jak nie gwarantujemy jego działania. | ||
+ | |||
+ | Należy utworzyć plik tekstowy util.patch z zawartością: | ||
+ | |||
+ | <syntaxhighlight lang="c"> | ||
+ | --- util.c.orig 2022-04-12 11:25:48 UTC | ||
+ | +++ util.c | ||
+ | @@ -210,6 +210,7 @@ typedef int (cmpfunc_t)(const void*, const void*, void | ||
+ | |||
+ | typedef int (cmpfunc_t)(const void*, const void*, void*); | ||
+ | |||
+ | +#if !defined HAVE_GNU_QSORT_R | ||
+ | #if defined HAVE_QSORT_S && defined RUBY_MSVCRT_VERSION | ||
+ | /* In contrast to its name, Visual Studio qsort_s is incompatible with | ||
+ | * C11 in the order of the comparison function's arguments, and same | ||
+ | @@ -255,7 +256,7 @@ ruby_qsort(void* base, const size_t nel, const size_t | ||
+ | qsort_s(base, nel, size, cmp, d); | ||
+ | } | ||
+ | # define HAVE_GNU_QSORT_R 1 | ||
+ | -#elif !defined HAVE_GNU_QSORT_R | ||
+ | +#else | ||
+ | /* mm.c */ | ||
+ | |||
+ | #define mmtype long | ||
+ | @@ -521,7 +522,8 @@ ruby_qsort(void* base, const size_t nel, const size_t | ||
+ | else goto nxt; /* need not to sort both sides */ | ||
+ | } | ||
+ | } | ||
+ | -#endif /* HAVE_GNU_QSORT_R */ | ||
+ | +#endif | ||
+ | +#endif /* !HAVE_GNU_QSORT_R */ | ||
+ | |||
+ | char * | ||
+ | ruby_strdup(const char *str) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | następnie wydać polecenie: | ||
+ | {{prompt}}rvm install 2.7.8 --autolibs=disabled --patch util.patch --with-openssl-dir=/usr/local/openssl-unsafe | ||
=== Zmienne === | === Zmienne === |
Wersja z 09:17, 23 lip 2024
RVM to platforma przeznaczona do zarządzania wieloma instalacjami interpretatora Ruby. Użycie RVM ma kilka korzyści, przede wszystkim możliwość ustalenia własnych gemów i ich aktualizacji do wybranych przez siebie wersji.
Spis treści
Instalacja RVM
Raz zainstalowany RVM można później używać dla wszystkich własnych domen.
Przed instalacją należy aktywować opcję binexec i przelogować się.
$ curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - $ curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - $ curl -sSL https://get.rvm.io | bash -s stable (...) # Thank you for using RVM! # We sincerely hope that RVM helps to make your life easier and more enjoyable!!! # # ~Wayne, Michal & team. In case of problems: http://rvm.io/help and https://twitter.com/rvm_io $ source .rvm/scripts/rvm
Instalacja interpretera Ruby
Po wykonaniu polecenia rvm list known
pojawi się między innymi lista dostępnych wersji interpretera Ruby, która znajduje się w sekcji MRI Rubies. Do instalacji należy użyć polecania
$ rvm install 3.2.4 --autolibs=disabled (...) Install of ruby-3.2.4 - #complete Ruby was built without documentation, to build it run: rvm docs generate-ri $ gem install bundler (...) 1 gem installed
Instalacja interpretera Ruby 2.7.8
Jeżeli twoje oprogramowanie nadal używa Ruby 2.X to rozważ aktualizację swojej aplikacji. Ruby 2.7.8 jest ostatnią wersją z linii 2.7 i jego wsparcie przez autorów Ruby zostało zakończone 31 marca 2023 roku. Poniżej wskazujemy sposób uruchomienia Ruby 2.7.8 ale nie gwarantujemy, że będzie on w przyszłości aktualny jak nie gwarantujemy jego działania.
Należy utworzyć plik tekstowy util.patch z zawartością:
--- util.c.orig 2022-04-12 11:25:48 UTC +++ util.c @@ -210,6 +210,7 @@ typedef int (cmpfunc_t)(const void*, const void*, void typedef int (cmpfunc_t)(const void*, const void*, void*); +#if !defined HAVE_GNU_QSORT_R #if defined HAVE_QSORT_S && defined RUBY_MSVCRT_VERSION /* In contrast to its name, Visual Studio qsort_s is incompatible with * C11 in the order of the comparison function's arguments, and same @@ -255,7 +256,7 @@ ruby_qsort(void* base, const size_t nel, const size_t qsort_s(base, nel, size, cmp, d); } # define HAVE_GNU_QSORT_R 1 -#elif !defined HAVE_GNU_QSORT_R +#else /* mm.c */ #define mmtype long @@ -521,7 +522,8 @@ ruby_qsort(void* base, const size_t nel, const size_t else goto nxt; /* need not to sort both sides */ } } -#endif /* HAVE_GNU_QSORT_R */ +#endif +#endif /* !HAVE_GNU_QSORT_R */ char * ruby_strdup(const char *str)
następnie wydać polecenie:
$ rvm install 2.7.8 --autolibs=disabled --patch util.patch --with-openssl-dir=/usr/local/openssl-unsafe
Zmienne
Ustawianie zmiennej z poziomu SSH z widocznością dla aplikacji uruchamianej przez Passengera:
- Dopisanie zmiennych do ~/.bash_profile (np. export TESTENV=1).
- Ważne: zmienne nie działają z ~/.bashrc i ~/.shrc
Przebudowa
Ruby:
$ rvm reinstall ruby-X.X.X --autolibs=disabled
gdzie X.X.X to używana wersja Ruby w RVM.
Gemów:
$ gem pristine --all