sudo npm install -g jshint
を使用してjshintをインストールしました 、そしてそれはうまくいったようです:
$which jshint
/usr/local/bin/jshint
まだjshint
を実行しています または、同等のフルパスは何もしないようです。エラーも発生しません。何もしません:
$jshint
$jshint --help
$jshint --verbose
$jshint --debug
$jshint admin.js
$jshint admin.js --verbose
$/usr/local/bin/jshint admin.js
また、この回答に従ってnodejsをシンボリックリンクしてみました:
$sudo ln -s /usr/bin/nodejs /usr/bin/node
$jshint admin.js --verbose
$jshint admin.js
$jshint --help
$man jshint
No manual entry for jshint
See 'man 7 undocumented' for help when manual pages are not available.
ここで何が欠けていますか?
編集:これがapt-cache policy nodejs npm
からの出力です 。私は標準のUbuntu14.04パッケージを使用しているだけなので、これについて特別なことは何もありません:
└─>apt-cache policy nodejs npm
nodejs:
Installed: 0.10.25~dfsg2-2ubuntu1
Candidate: 0.10.25~dfsg2-2ubuntu1
Version table:
*** 0.10.25~dfsg2-2ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
npm:
Installed: 1.3.10~dfsg-1
Candidate: 1.3.10~dfsg-1
Version table:
*** 1.3.10~dfsg-1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
100 /var/lib/dpkg/status
承認された回答:
公式リポジトリはめちゃくちゃです…
公式リポジトリからNodeとnpmをインストールすると、いつも問題が発生します。これは、node
に依存するツールが原因である可能性があります。 、Ubuntuの実際のコマンドがnodejs
の場合 、そのため、シンボリックリンクを作成する必要があります 仕事。仮想マシンでのクイックテストでは機能しましたが、機能しなかったので、別のことを試してみましょう…
したがって、Node.JSを別の方法でインストールします
私は通常、NVMを使用してUbuntuにNodeをインストールすることを好みます。これにより、node
の問題が回避されます コマンドがUbuntuで定義されておらず、sudo
の使用を必要とする権限の混乱を回避します npmモジュールをインストールします。
次の手順を実行して、きれいな状態に戻します。
npmでインストールしたグローバルモジュールをすべて削除します(手順はこちら):
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
シンボリックリンクされたノードフォルダを削除します:
sudo rm /usr/bin/node
nodejs
のコピーをアンインストールします およびnpm
Ubuntuのリポジトリからインストールしたもの:
sudo apt-get remove --purge nodejs npm
他の残骸を片付けます:
sudo apt-get autoremove
この時点で、which node
、which nodejs
、which npm
、およびwhich jshint
すべて何も返さないはずです。
公式リポジトリをスキップしてノードを再インストールします
NVMの最新コピーを入手します(sudo apt-get install curl
が必要になる場合があります 最初):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
nvm
を使用するようにシェルに指示します
source ~/.nvm/nvm.sh
次に、ノードバージョンをインストールします
nvm install 0.12 # or whatever the latest version is
そして、使用するノードのバージョンをnvmに伝えます
nvm use 0.12
これで、node
でNodeを実行できるようになります。 コマンドを実行すると、sudo
なしでモジュールをグローバルにインストールできるはずです。 、そしてあなたはjshintの作業コピーで終わるはずです。
nvm use v0.12
新しいターミナルセッションを開始するたびに、nvm use v
を追加できます。 ~/.bashrc
に 。 v
特別なことではなく、v*
と一致するだけです。 最新バージョンを見つけます。または、特定のバージョンをハードコーディングすることもできます。