Ruby 2.5 rompe dipendenze delle gems

Problemi con l'installazione di pacchetti

Ruby 2.5 rompe dipendenze delle gems

Messaggioda Spoon » 06/04/2018, 9:52

Ciao a tutti,
è da un po' che sto imparando ruby on rails per curiosità e mi sono scontrato con un classico problema di librerie. Brevemente, ho due versioni della stesa gem (libreria di ruby) ma non riesco a far capire a certi comandi che possono usare la versione più vecchia. Ora passo a descriverlo nel dettaglio, ma premetto che non è un problema grave in quanto l'unica applicazione non più funzionante mi serve solo per imparare e nel frattempo posso omettere questa gem (si occupa di produrre documentazione). Il mio problema è simile a quest'altro, che però non è stato risolto: viewtopic.php?f=5&t=50109

Passando ai dettagli: pochi giorni fa è arrivato ruby 2.5 su testing, ma l'aggiornamento ha rotto alcune dipendenze. In particolare, ruby 2.5 fornisce la seguente versione della gem rdoc:
Codice: Seleziona tutto
$ gem list --local rdoc
rdoc (default: 6.0.1)

mentre la gem sdoc dipende da una versione precedente:
Codice: Seleziona tutto
$ gem dependency sdoc
Gem sdoc-0.4.1
  bundler (~> 1.3, development)
  json (>= 1.7.7, ~> 1.7)
  minitest (~> 4.0, development)
  rake (>= 0, development)
  rdoc (~> 4.0)

Il simbolo '~>' indica che può cambiare l'ultima cifra del numero di versione ma non quelle precedenti, equivale a (>= 4.0 and < 5.0). In particolare, si vede dall'ultima riga come la versione 6.0.1 fornita da ruby 2.5 non soddisfi questa dipendenza. Risulta dunque impossibile usare la gem sdoc. Ho pensato quindi di reinstallare anche la versione 2.3 di ruby, che fornisce
Codice: Seleziona tutto
$ gem2.3 list --local rdoc
rdoc (4.2.1)

Sul sistema è quindi presente una versione adatta della gem rdoc ma pare che non sia rilevata: il comando gem (che di default richiama gem2.5) non mostra questa versione, il comando bundle/bundler non la trova nel sistema (perchè ancora una volta si appoggia a ruby 2.5) e così via.

Ora, per risolvere questo problema ho pensato di cambiare il default di "ruby" a "ruby2.3" invece che alla versione 2.5. Tuttavia questa scelta non è gestita da update-alternatives, quindi mi trovo nella condizione di non sapere come fare. Anche il pacchetto rbenv, che dovrebbe servire a questo scopo, non è di aiuto, in quanto mostra come unica versione disponibile dell'interprete la 2.5. Mi rivolgo a voi nella speranza che sappiate indicarmi un modo per:
  • far vedere al sistema anche la versione 4.2.1 di rdoc, oppure
  • impostare ruby 2.3 come interprete di default del sistema
Grazie in anticipo ;)
Spoon
wiki member
wiki member
 
Messaggi: 327
Iscritto il: 23/11/2013, 14:37

Torna a Installazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron