# [Résolu][passenger] ruby_targets

## ibasaw

Salut,

aujourd'hui je veux faire une maj du système et voici le message d'erreur:

```

 emerge --update --deep --newuse world --ask

These are the packages that would be merged, in order:

Calculating dependencies -

!!! Problem resolving dependencies for www-apache/passenger from @selected                                                                                                                                   ... done!

!!! The ebuild selected to satisfy "www-apache/passenger" has unmet requirements.

- www-apache/passenger-3.0.17::gentoo USE="(multilib) -debug -doc -test" RUBY_TARGETS="ruby18 ruby19"

  The following REQUIRED_USE flag constraints are unsatisfied:

    ruby_targets_ruby18? ( !ruby_targets_ruby19 ) ruby_targets_ruby19? ( !ruby_targets_ruby18 )

  The above constraints are a subset of the following complete expression:

    ruby_targets_ruby18? ( !ruby_targets_ruby19 ) ruby_targets_ruby19? ( !ruby_targets_ruby18 ) any-of ( ruby_targets_ruby18 ruby_targets_ruby19 )

(dependency required by "@selected" [set])

(dependency required by "@world" [argument])

```

make.conf

```

CFLAGS="-O2 -pipe -march=k8"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j30"

GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://mirror.ovh.net/gentoo-distfiles/ ftp://mirror.ovh.net/gentoo-distfiles/ ftp://gentoo.imj.fr/pub/gentoo/  ftp://ftp.tu-clausthal.de/pub/linux/gentoo/"

USE="-X berkdb innodb ctype curl dlz gd json mhash netboot php sqlite sqlite3 pdo intl sftp mmx multilib netboot sse sse2 ssl -gtk -sdl sqlite simplexml xml xmlreader xsl lm_sensors"

FEATURES="-sandbox parallel-fetch distcc"

APACHE2_MODULES="${APACHE2_MODULES} auth_basic expires"

PHP_TARGETS="php5-3"

NGINX_MODULES_HTTP="access auth_basic gzip proxy stub_status rewrite"

```

package.mask

```

=dev-perl/DBD-SQLite-1.29-r2

>dev-php/xcache-1.3.2

dev-lang/php:5.4

```

package.use

```

dev-lang/php apache2 ctype mysql pcre session ssl truetype unicode cli xml zlib ftp imap posix bcmath hash gzip mbstring gd pdo sqlite sockets soap mod_env zip php_targets_php5-3

dev-db/mysql latin1 perl ssl

mail-mta/postfix -postgres mysql -ssl -ipv6

net-libs/courier-authlib mysql

net-mail/courier-imap mysqlsys-apps/lm_sensors sensord

dev-db/sqlite extensions

www-servers/nginx status

net-analyzer/rrdtool perl

dev-db/phpmyadmin setup

dev-php/xcache php_targets_php5-3

dev-php/xdebug php_targets_php5-3

```

j'ai deja essaye de mettre RUBY_TARGETS="ruby18 ruby19" dans mon make.conf mais cela ne change rien...

je veux juste mettre a jour sans upgrader ruby vers 1.9

comment faire ?

Merci pour votre aide...Last edited by ibasaw on Wed Nov 07, 2012 8:46 am; edited 1 time in total

----------

## ghoti

Salut,

 *ZuckBin wrote:*   

> j'ai deja essaye de mettre RUBY_TARGETS="ruby18 ruby19" dans mon make.conf mais cela ne change rien...

 

Essaie plutôt simplement avec RUBY_TARGETS="ruby18"    :Wink: 

Il faut aussi masquer ruby-1.9 si tu n'en veux pas.

----------

## ibasaw

Merci c'est exactement cela !

----------

## akaoni

Bonjour, 

J'ai le meme probleme sur mon poste mais j'ai aussi puppet d'installé.

puppet necessite ruby 18 alors que certains composants necessitent ruby 19.

J'ai donc besoin des 2 versions. 

J'ai donc mis ces lignes dans mon package.use pour spécifier les versions selon les packages.

```

www-apache/passenger ruby_targets_ruby18

app-admin/puppet ruby_targets_ruby18

```

Je n'ai pas de RUBY_TARGET dans /etc/make.conf mais ce ne fonctionne pas (meme message)

Le seul moyen que j'ai trouvé pour faire fonctionner emerge est de mettre RUBY_TARGET="ruby18" dans /etc/make.conf 

et ajouter des use à des packages spécifiques comme demandé par emerge.

```
=dev-ruby/json-1.6.7 ruby_targets_ruby19

=dev-ruby/racc-1.4.6-r1 ruby_targets_ruby19

>=dev-ruby/rake-0.9.2.2 ruby_targets_ruby19

>=dev-ruby/rdoc-3.12 ruby_targets_ruby19
```

Cependant ca devient un peu compliqué et je préférerais ne pas utiliser de paramètre global et que les packages se debrouillent seuls.  

Ce qui est etrange c est que si je change le RUBY_TARGET à ruby19 dans le make.conf j ai de nouveau l'erreur. 

Je croyais que le  RUBY_TARGET = "ruby18" est équivalent à   ruby_targets_ruby18 mais est ce correct ? 

Dans ce cas pourquoi les use flags ne sont pas suffisants. 

Je comprends pas trop la logique de tout ca, apparement passenger necessite soit ruby18 soit ruby19.

----------

## xaviermiller

Bonjour,

La variable est RUBY_TARGETS, avec un S. Et tu y mets les versions de Ruby à installer, comme mis dans la réponse de Poussin.

----------

## akaoni

Merci pour la réponse.

Je pense que j'avais bien mis un S à RUBY_TARGETS  dans le make.conf  (d'ailleurs le changement de comportement si je passe à ruby19 semble le prouver).

Je vais cependant vérifier demain.

La page  ruby  (http://www.gentoo.org/proj/en/prog_lang/ruby/index.xml) est plutot succinte.

----------

## xaviermiller

C'est une page de projet, pas de documentation  :Wink: 

----------

