{"id":361,"date":"2018-12-10T15:50:50","date_gmt":"2018-12-10T14:50:50","guid":{"rendered":"https:\/\/www.tenzione.it\/?p=361"},"modified":"2018-12-10T16:38:06","modified_gmt":"2018-12-10T15:38:06","slug":"rbenv-bene-ma-poi","status":"publish","type":"post","link":"https:\/\/www.tenzione.it\/?p=361","title":{"rendered":"rbenv bene, ma poi?"},"content":{"rendered":"\n<p>Avete iniziato a usare rbenv, magari a partire da <a href=\"https:\/\/www.tenzione.it\/?p=231\">questo articolo qui<\/a>&nbsp;e sembrava tutto chiaro, ma poi \u00e8 successo.<\/p>\n\n\n\n<p>Non avete aggiornato, avete installato gemme varie, tutto filava liscio ma poi un qualcosa (un progetto, un lavoro) ha fatto si che il vostro ecosistema ruby andasse in conflitto con quello che dovevate fare dopo. E adesso?<\/p>\n\n\n\n<p>Per rimediare, approfondiamo i concetti di base dell&#8217;altra volta. Partiamo da due concetti base (facciamo tre): rbenv \u00e8 uno script autocontenuto nella vostra home, rbenv l&#8217;avete installato via git, rbenv \u00e8 fatto di plugin.<\/p>\n\n\n\n<p>Quello che vi capita, lasciando abbandonato il tutto per un po&#8217; \u00e8 quella sensazione &#8220;funzionava all&#8217;installazione ma poi&#8221;. Bene. In questo caso, pu\u00f2 non essere vero.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">rbenv si aggiorna!<\/h3>\n\n\n\n<p>Sembra incredibile ma provenendo da un git, se fate rbenv update lui si aggiorna. Da solo. L&#8217;avete fatto ma non pare che cambi nulla, la lista dei ruby possibili da installare \u00e8 carente\/ferma a versioni vecchie&#8230; che succede?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">rbenv funziona a plugin<\/h3>\n\n\n\n<p>E proprio per questa ragione non basta aggiornare il &#8220;solo&#8221; rbenv ma anche il plugin che tiene traccia delle versioni di ruby. Il plugin (l&#8217;unico) che avete installato se non avete mai approfondito oltre \u00e8 ruby-build che va aggiornato a mano. Per fare questo ci sono due opzioni andare a mano nella directory di ruby-build e lanciare un git pull:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mizio@thaumiel:~$ cd .rbenv\/plugins\/ruby-build\/<br>mizio@thaumiel:~\/.rbenv\/plugins\/ruby-build$ git pull<br>Already up to date.<br><\/pre>\n\n\n\n<p>O meglio ancora, installare un plugin! tra i plugin interessanti c&#8217;\u00e8 l&#8217;ottimo rbenv-update che (indovina) aggiunge il comando update al vostro rbenv in modo che si occupi LUI di aggiornare tutto. Installarlo \u00e8 facile, basta digitare:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone https:\/\/github.com\/rkh\/rbenv-update.git \"$(rbenv root)\/plugins\/rbenv-update\"<br><\/pre>\n\n\n\n<p>Quindi poi \u00e8 possibile fare semplicemente rbenv update:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mizio@thaumiel:~$ rbenv update <br>Updating rbenv<br>Updating rbenv-gem-migrate<br>Updating rbenv-update<br>Updating ruby-build<br>Reloading rbenv<br> | done<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">il gem caos<\/h3>\n\n\n\n<p>I pi\u00f9 attenti avranno visto che nella lista dei plugin che stavo aggiornando ce ne \u00e8 uno che non hanno. quel <em>rbenv-gem-migrate<\/em>&nbsp;infatti \u00e8 sospetto. Semplicemente il plugin in questione fa una cosa molto comoda: vi permette di installare in una botta sola (ovvero con un comando) le gem che avete in una versione a un&#8217;altra versione (di solito appena installata). Es <em>rbenv migrate 1.9.1 2.4.5<\/em>. L&#8217;unica volta che l&#8217;ho usato ha funzionato ed \u00e8 molto comodo se, come me, non sempre fate progetti strutturati con bundler e gemfile. Volete installarlo? Semplice:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone https:\/\/github.com\/nabeo\/rbenv-gem-migrate.git \"$(rbenv root)\/plugins\/rbenv-gem-migrate\"<\/pre>\n\n\n\n<p>Quindi poi potete usare la sua sintassi come da &#8220;help&#8221; in linea:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mizio@thaumiel:~$ rbenv migrate --help<br>Usage: rbenv migrate<br>Usage : rbenv migrate &lt;from_version&gt; &lt;to_version&gt; &lt;gem command options&gt;<\/pre>\n\n\n\n<p>Piccolo reminder, non ricordi le versioni? ecco:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mizio@thaumiel:~$ rbenv versions <br>  system<br>  2.0.0-p648<br>2.4.5 (set by \/home\/mizio\/.rbenv\/version)<br>mizio@thaumiel:~$ rbenv migrate 2.0.0-p648 2.4.5<br><\/pre>\n\n\n\n<p>(ci mette un po&#8217; a seconda di quante gem avete installato&#8230;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avete iniziato a usare rbenv, magari a partire da questo articolo qui&nbsp;e sembrava tutto chiaro, ma poi \u00e8 successo. Non avete aggiornato, avete installato gemme varie, tutto filava liscio ma poi un qualcosa (un progetto, un lavoro) ha fatto si che il vostro ecosistema ruby andasse in conflitto con quello che dovevate fare dopo. E [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":234,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,11],"tags":[25,131,129,22],"class_list":["post-361","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-te-ne-parlo","category-tubuntu","tag-programmazione","tag-rbenv","tag-ruby","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=361"}],"version-history":[{"count":3,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/361\/revisions"}],"predecessor-version":[{"id":371,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/posts\/361\/revisions\/371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=\/wp\/v2\/media\/234"}],"wp:attachment":[{"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tenzione.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}