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.

Instalacja RVM

Raz zainstalowany RVM można później używać dla wszystkich własnych domen.

 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

Odnośniki zewnętrzne