web-dev-qa-db-fra.com

Comment mettre à jour vers la dernière version de SASS?

C'est vraiment stupide mais cela fait maintenant une heure que je surfe sur Google. Je ne trouve pas la réponse.

Je suis sous Ubuntu 10.10 et j'essaie de mettre à jour la dernière version de SASS afin de pouvoir utiliser une règle @import dans une règle @media.

Comme suggéré ici; https://github.com/nex3/sass/issues/64 , j'ai essayé:

$ Sudo gem install sass --pre

Et cela semblait bien fonctionner:

Successfully installed sass-3.2.0.alpha.35
1 gem installed

Mais lorsque j'essaie $ sass -v, je reçois: Haml/Sass 3.0.9 (Classy Cassidy), qui est l'ancienne version que j'avais avant la mise à jour.

Qu'est-ce que je fais mal?

$ which gem
/usr/bin/gem

$ which sass
/usr/bin/sass

Essayé la réponse:

$ sass -v
Haml/Sass 3.0.9 (Classy Cassidy)

$ Sudo gem uninstall -Iax sass
Removing sass
Removing sass-convert
Removing scss
Successfully uninstalled sass-3.2.0.alpha.35

$ sass -v
Haml/Sass 3.0.9 (Classy Cassidy) (Was expecting an error here)

$ Sudo gem install sass --pre
Successfully installed sass-3.2.0.alpha.35
1 gem installed
Installing ri documentation for sass-3.2.0.alpha.35...
Installing RDoc documentation for sass-3.2.0.alpha.35...

$ sass -v
Haml/Sass 3.0.9 (Classy Cassidy)

Donc, il supprime celui que j'ai installé avec succès et laisse celui qui est réellement utilisé lorsque j'exécute la commande sass. Thougts?

9
powerbuoy

Ce que nous avons fini par faire était le suivant:

Premièrement, nous avons installé rvm en utilisant le Rails ready one-liner:

wget --no-check-certificate https://raw.github.com/joshfng/railsready/master/railsready.sh && bash railsready.sh

Sélection de l'option 2 (RVM) à la demande.

Ensuite, nous avons source ~/.bashrc

Ensuite, nous avons fait un gem install sass --pre (no Sudo).

4
jrg

Retirez-le, puis réinstallez-le:

Sudo gem uninstall -Iax sass
Sudo gem install sass --pre

Nouvelle édition: Je viens de voir que vous utilisiez peut-être la gemme haml-Edge (qui contient sa propre copie de sass). Nuke cela et installer sass-approprié.

Sudo gem uninstall -Iax haml-Edge
Sudo gem install sass --pre

Boom.


Vieux Edit S'il vous reste encore des choses, cela ressemble à une installation manuelle, à un autre joyau qui a créé quelque chose ou que vous avez installé depuis un paquet. Je serais tenté de vous dire de le supprimer de l'orbite et de le réparer plus tard.

Exécutez nano $(which sass) et voyez à quoi vous avez affaire. Dans ma version installée avec Gem, je vois un en-tête comme:

#!/usr/bin/Ruby1.8
#
# This file was generated by RubyGems.
#
# The application 'sass' is installed as part of a gem, and
# this file is here to facilitate running it.

Si vous voyez quelque chose de similaire, cela suggère qu'il y a quelque chose de louche et je vote que vous courez juste:

Sudo rm "$(which sass)" "$(which sass-convert)" "$(which scss)"

S'il y a un en-tête différent, cela peut vous donner une idée de son origine. Si c'est un paquet que vous avez installé, supprimez-le. Si vous ne pouvez pas (par exemple, c'est une dépendance), vous pouvez archiver le fichier et le remplacer en conséquence (tout en sachant que cela pourrait briser la dépendance de toute façon).

Mais à la fin de la journée, il ne s’agit que d’un bijou Ruby. Le tuer ne va pas annuler Noël.

3
Oli

J'ai testé cela sur Linux Mint 14 (Nadia), c'est-à-dire Ubuntu 12.10 (Quantal).

1. Vérifiez votre environnement

Commencez par vérifier votre version actuelle de sassname__

sass --version # Sass 3.1.19 (Brainy Betty)
which sass # /usr/bin/sass

2. Supprimer les paquets de distribution

supprime les paquets installés avec le gestionnaire de paquets (i.e apt-get ou apitudename__) car ils sont prioritaires

apt-get remove Ruby-sass Ruby-compass

Remarque: ceci peut être ignoré si vous configurez votre $PATH pour cibler le bon binaire (voir ci-dessous).

3. Installer la nouvelle version

apt-get install Ruby-full 
gem install sass 
gem install compass

4. Version d'essai

sass --version # Sass 3.2.7 (Media Mark)
which sass # /usr/local/bin/sass

Sources

1
Édouard Lopez