less css ee nó js problemas

4

Quando eu tento instalar menos compilador css sob minha caixa Ubuntu 13.10, recebo a seguinte mensagem e os lescss não funcionam. De que maneira posso consertar o problema? Eu executo:

sudo npm install -g less

Depois disso eu recebo uma lista com mensagens OK:

npm http 304 https://registry.npmjs.org/cryptiles
npm http 304 https://registry.npmjs.org/ctype/0.5.2
npm http 304 https://registry.npmjs.org/combined-stream
npm http GET https://registry.npmjs.org/delayed-stream/0.0.5
npm http 304 https://registry.npmjs.org/sntp
npm http 304 https://registry.npmjs.org/boom
npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5

E a lista terminou com o seguinte:

/usr/local/bin/lessc -> /usr/local/lib/node_modules/less/bin/lessc
[email protected] /usr/local/lib/node_modules/less
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

Depois disso, quando experimentei os seguintes comandos:

echo "@foo: 25px; #foobar{font-size: @foo};" > style.less
sudo lessc ./style.less ./style.css

Eu recebo o seguinte erro:

/usr/bin/env: node: No such file or directory

Depois de executar

ln -s /usr/bin/node /usr/local/bin/nodejs

e links simbólicos criados não há erros, mas o compilador lessc não funciona corretamente. Eu criei um arquivo para testar. O conteúdo é:

 cat style.less 
@color: #4D926F;

#header {
  color: @color;
}
h2 {
  color: @color;
}'

e depois de tentar

lessc styles.less > styles.css

Existe arquivo - styles.css criado, mas o arquivo está vazio. Eu também tento comandos que eu tentei antes - veja o topo no post. Mas não está funcionando. Eu ficaria muito grato por qualquer conselho e recomendações.

Atenciosamente.

    
por George 14.04.2014 / 13:51

3 respostas

8
sudo ln -s /usr/bin/nodejs /usr/bin/node

É o que eu fiz da outra maneira parece fazer um symlink quebrado para mim.

Isso deve provar que tudo está funcionando:

file $(which node)
/usr/bin/node: symbolic link to '/usr/bin/nodejs'

(note que não diz link simbólico quebrado)

Unfortunaltly, eu acredito que a resposta de Terdon irá realmente impedir que a resposta correta funcione

# Don't do this:
sudo apt-get install node
file $(which node)
/usr/sbin/node: symbolic link to 'ax25-node' 

apt-cache show node|grep Description-en
Description-en: Amateur Packet Radio Node program (transitional package)

(você quer que o nodejs não seja o Amateur Packet Radio, eu acho :))

A desinstalação desse pacote de nós deve corrigir esse problema

-End de informações úteis (a menos que você goste de radioamador) -

Edit: Então todo o problema é que já havia um pacote no Debian chamado 'node', o Debian ficou chateado com o nodejs por não checar se um comando chamado node já não foi levado por outro pacote (o programa de rádio amador). Então, o Debian efetivamente quebrou os programas de nós porque os pacotes, como o less, procuram por um comando chamado 'node'.

Se acontecer de você usar o pacote de radioamador, em vez de fazer o link simbólico, você pode mudar a linha shebang no arquivo lessc para #!/usr/bin/env nodejs como disse o terdon nos comentários abaixo.

Note que se você usar outros pacotes npm, você pode ter que mudar muitas linhas shebang, então faça isso se realmente usar radioamador:)

Update: Ok, então eu li um pouco mais o link do yorodm e o debian mudou o pacote do radio Ham para link Trusty realmente usa isso!

Então, se você usar o radioamador, apenas apague /usr/bin/node , que é um link simbólico para /usr/bin/ax25-node , substitua-o por um node para /usr/bin/nodejs no topo desta resposta, você precisará fazer isso novamente se você acabou de instalar rádio amador como ele substitui.

Agora, se você quiser radioamador, use 'ax25-node' como o comando: D

Em resumo, é fácil usar o 'nó' para o nodejs para despejar a política.

Atualização para o registro / arquivo

Este post foi principalmente para pessoas que tinham instalado o pacote oficial sudo apt-get install nodejs no Ubuntu 14.04 (fiel Tahr) que removeu a compatibilidade alterando o comando 'node' para 'nodejs'.

No momento, a melhor solução seria instalar o ppa de Chris Lea no launchpad, mas agora ele foi movido novamente para um local diferente e esta é a melhor solução pronta (sem preocupação com o symlinks) por Chris Lea :

curl -sL https://deb.nodesource.com/setup | sudo bash -

(Agora projetado para o Debian e Ubuntu)

Referências: link link

Isso é o que o joyent está ligando no site, então é isso que eu estou usando: D

    
por sabgenton 16.06.2014 / 09:07
2

De acordo com este Debian alterou o nome do binário do nó para nodejs (isto é, / usr / bin / node e / usr / bin / nodejs) Para corrigir qualquer problema em seu código, basta criar um symlink em / usr / local / bin

sudo ln -s /usr/bin/node /usr/local/bin/nodejs
    
por yorodm 14.04.2014 / 16:37
2

Se você instalar o nodejs do repositório oficial, você também pode instalar o pacote nodejs-legacy, isso adicionará o comando do nó que está faltando.

    
por krio 18.04.2016 / 23:09

Tags