当我尝试在我的 Ubuntu 13.10 机器下安装 less css 编译器时,我收到以下消息并且 lescss 不起作用。我可以通过什么方式解决问题?我执行:
sudo npm install -g less
Run Code Online (Sandbox Code Playgroud)
在此之后,我得到带有 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
Run Code Online (Sandbox Code Playgroud)
并列出以下内容:
/usr/local/bin/lessc -> /usr/local/lib/node_modules/less/bin/lessc
less@1.7.0 /usr/local/lib/node_modules/less
??? mime@1.2.11
??? mkdirp@0.3.5
??? source-map@0.1.33 (amdefine@0.1.0)
??? clean-css@2.1.8 (commander@2.1.0)
??? request@2.34.0 (json-stringify-safe@5.0.0, forever-agent@0.5.2, aws-sign2@0.5.0, qs@0.6.6, tunnel-agent@0.3.0, oauth-sign@0.3.0, node-uuid@1.4.1, tough-cookie@0.12.1, http-signature@0.10.0, hawk@1.0.0, form-data@0.1.2)
Run Code Online (Sandbox Code Playgroud)
在此之后,当我尝试以下命令时:
echo "@foo: 25px; #foobar{font-size: @foo};" > style.less
sudo lessc ./style.less ./style.css
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我执行后
ln -s /usr/bin/node /usr/local/bin/nodejs
Run Code Online (Sandbox Code Playgroud)
并创建符号链接没有错误,但lessc 编译器无法正常工作。我已经创建了要测试的文件。它的内容是:
cat style.less
@color: #4D926F;
#header {
color: @color;
}
h2 {
color: @color;
}`
Run Code Online (Sandbox Code Playgroud)
并在尝试之后
lessc styles.less > styles.css
Run Code Online (Sandbox Code Playgroud)
已创建文件-styles.css 但该文件为空。我也尝试过我之前尝试过的命令 - 请参阅帖子的顶部。但它不起作用。我将非常感谢您的任何建议和建议。
此致。
sudo ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)
我以另一种方式所做的似乎对我来说是一个损坏的符号链接。
这应该证明一切正常:
file $(which node)
/usr/bin/node: symbolic link to `/usr/bin/nodejs'
Run Code Online (Sandbox Code Playgroud)
(注意它没有说损坏的符号链接)
不幸的是,我相信 terdon 的答案实际上会阻止正确答案的工作
# 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)
Run Code Online (Sandbox Code Playgroud)
(你想要 nodejs 而不是业余分组无线电,我想:))
卸载该节点包应该可以解决该问题
-有用信息结束(除非你喜欢业余无线电)-
编辑:所以整个问题是 Debian 中已经有一个名为“node”的包,Debian 对 nodejs 感到不安,因为它没有检查名为 node 的命令是否已经被另一个包(业余无线电节目)采用。所以Debian有效地破坏了节点程序,因为像less这样的包会寻找一个名为“node”的命令。
如果您碰巧使用了 ham radio 包,那么您可以将lessc文件中的 shebang 行更改#!/usr/bin/env nodejs为 terdon 在下面的评论中所说的,而不是制作符号链接。
请注意,如果您使用其他 npm 包,您可能需要更改很多 shebang 行,因此只有在您真正使用 ham radio 时才这样做:)
更新:好的,所以我多读了 yorodm 的链接,debian 已将 Ham 无线电包更改为https://packages.debian.org/sid/ax25-node Trusty 实际上使用了这个!
因此,如果您使用 ham radio 只需删除/usr/bin/node它是一个符号链接,以/usr/bin/ax25-node将其替换为该答案顶部的node符号链接,/usr/bin/nodejs如果您只安装 ham radio,因为它覆盖了,您将需要再次执行此操作。
现在,如果您想要业余无线电,请使用“ax25-node”作为命令:D
底线很容易使用 nodejs 的“节点”来对抗政治。
更新记录/档案
这篇文章主要针对那些sudo apt-get install nodejs在 Ubuntu 14.04 (trusty Tahr) 中安装了官方软件包的人,该软件包通过将命令“node”更改为“nodejs”来删除兼容性。
当时,实际更好的解决方案是在启动板上安装 Chris Lea 的 ppa,但现在他又将其移到了不同的位置,这是 Chris Lea 开箱即用的最佳解决方案(不用担心符号链接):
curl -sL https://deb.nodesource.com/setup | sudo bash -
Run Code Online (Sandbox Code Playgroud)
(现在为 Debian 和 Ubuntu 设计)
参考资料:https : //github.com/joyent/node/wiki/installing-node.js-via-package-manager https://nodesource.com/blog/chris-lea-joins-forces-with-nodesource
这就是 Joyent 在该网站上链接的内容,这就是我正在使用的内容:D
| 归档时间: |
|
| 查看次数: |
8845 次 |
| 最近记录: |