ไม่สามารถติดตั้ง npm บน Ubuntu ได้


37

พยายามติดตั้ง nodejs และ npm บน ubuntu 12.04 ฉัน googled และทำมัน ตอนนี้ฉันไม่สามารถติดตั้ง NPM บนเครื่องได้

sudo apt-get install npm

ซึ่งให้ฉันนี้

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: nodejs-dev
       Depends: node-request but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-minimatch but it is not going to be installed
       Depends: node-semver but it is not going to be installed
       Depends: node-ini but it is not going to be installed
       Depends: node-graceful-fs but it is not going to be installed
       Depends: node-abbrev but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-fstream but it is not going to be installed
       Depends: node-rimraf but it is not going to be installed
       Depends: node-tar but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

3
ฉันคิดว่าไม่มีใครพูด แต่apt-get install npmต้องหลีกเลี่ยง (!) ตรวจสอบว่าnpm -vมีก่อนที่จะลองติดตั้ง .... (อ่านเพิ่มเติมด้านล่างที่คำตอบของ @ MarcoCerpi)
Peter Krauss

คำตอบ:


34

ดูเหมือนว่าคุณอาจติดตั้งchris-lea node.js ppaซึ่งใช้ได้ อย่างไรก็ตามคุณไม่ได้ติดตั้ง npm จาก ppa นั้นเนื่องจากมันจะทำลายการทำงานของแพ็คเกจเดเบียน nodejsแต่เพียงแค่ติดตั้ง เมื่อติดตั้งแล้วnpm -vคุณควรเห็นว่าติดตั้งแล้ว หากคุณไม่ได้ใช้ chris-lea ppa อัปเดตคำถามของคุณเกี่ยวกับหน้าเว็บที่คุณ Googled เพื่อค้นหาวิธีการติดตั้ง nodejs บน Ubuntu


7
เขาจะเรียกใช้ "npm -v" ได้อย่างไรถ้าเขาไม่สามารถติดตั้ง npm ...
Mariano Argañaraz

10
"ทันสมัย" apt-get install nodejsทำการnpmติดตั้งปรับปรุงดังนั้นฉันเข้าใจว่าapt-get install npmจะต้องหลีกเลี่ยง (!)
Peter Krauss


ฉันลบ PPA ของฉันและฉันได้รับ 'npm: ขึ้นอยู่กับ: node-gyp (> = 0.10.9) แต่มันจะไม่ถูกติดตั้ง `
Jonathan

7

ลองติดตั้ง NodeJs เช่นนี้:

sudo apt-get install nodejs

เนื่องจาก NodeJs ติดตั้งโหนดและ npm


2
ไม่ทำงานกับ 16.04
ZZ 5

ไม่ได้npmติดตั้งสิ่งนี้ ...
Gigiux

1

ฉันแก้ไขปัญหานี้โดยทำตามเอกสารนี้

พอยน์เตอร์ที่จำได้ว่าต้องใช้กับ npm:

mkdir ~/nodejs/ && cd ~/nodejs
sudo apt-get install npm
npm install
npm update

ขณะกำลังพัฒนาแอ็พพลิเคชันหาก nodejs ต้องการโมดูลใด ๆ จากนั้นรัน

cd ~/nodejs
npm install modulename   #for example sendgrid

บางครั้งโมดูลจำเป็นต้องติดตั้งทั่วโลก จากนั้นใช้

sudo npm install modulename -g"

ในการลบโมดูล:

cd ~/nodejs
npm uninstall modulename          # if locally installed or 
sudo npm uninstall modulename -g  # if globally installed

npm prune ช่วยในการลบการอ้างอิงที่ไม่คาดคิด


4
เขาไม่สามารถติดตั้งผู้ชาย NPM ได้เขาจะไปถึงจุดที่ 3 ได้อย่างไร!
Mariano Argañaraz

0

ปัญหาคือรีจิสทรีดำเนินการคำสั่งนี้

npm config set registry http://registry.npmjs.org/

ฉันทำงานด้วยวิธีนี้ตรวจสอบว่าเหมาะกับคุณ


4
เขาจะเรียกใช้ "npm config ... " ได้อย่างไรถ้าเขาไม่สามารถติดตั้ง npm ...
Mariano Argañaraz

เมื่อเขารันsudo apt-get install npmคำสั่งมันให้ "unmet dependencies error" ฉันสังเกตเห็นข้อผิดพลาด NPM ติดตั้งแล้วเพียงแค่ต้องตั้งค่า URL ของรีจิสทรี
Jay Patel

0

ก่อนอื่นคุณต้องติดตั้ง PPA เพื่อเข้าถึงเนื้อหา:

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

(นี่เป็นเวอร์ชั่น 9 ซึ่งเป็นเวอร์ชั่นล่าสุด ณ เวลาที่เขียน)

และจากนั้น

sudo apt-get install nodejs

0

Apt ไม่สามารถรับมือกับความขัดแย้งที่ต้องพึ่งพาอาศัยกันใช้ snap หรือความถนัด

sudo aptitude install npm

ฉันต้องกด "ไม่" เพื่อแก้ปัญหาแรกมันเสนอซึ่งไม่รวมถึงการติดตั้ง NPM (ที่จะต้องมีข้อผิดพลาดในความถนัด) จากนั้นวิธีที่สองที่ฉันกดyesเพื่อ hTH แล้วตรวจสอบ NPM ติดตั้ง:

npm --version


0

เวอร์ชันที่ขัดแย้งกันของการติดตั้งด้วยตนเอง npm และที่มาพร้อมกับ nodejs ล่าสุด

ดังนั้นคุณสามารถลองลบ nodejs ลบ npm เก่าและติดตั้ง nodejs ใหม่อีกครั้งซึ่งมาพร้อมกับ npm


-2

การติดตั้ง nodejs จะติดตั้ง npm ดังนั้นเพียงแค่เอา nodejs ออกแล้วติดตั้งใหม่:

sudo apt-get remove nodejs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.