2015-11-11 21 views
27

Đang cố gắng để cài đặt MongoDB hoặc một loại chồn toàn cầu dẫn đến một sự phụ thuộc ngang hàng thiếu cho KerberosKerberos MongoDB ngang phụ thuộc

Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb 
/usr/local/lib 
└─┬ [email protected] 
    └── UNMET PEER DEPENDENCY [email protected]~0.0 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb 
- [email protected] node_modules/mongodb/node_modules/kerberos/node_modules/nan 
- [email protected] node_modules/mongodb/node_modules/kerberos 
/usr/local/lib 
└─┬ [email protected] 
    └── UNMET PEER DEPENDENCY [email protected]~0.0 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 
Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongoose 
/usr/local/lib 
└─┬ [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ ├── UNMET PEER DEPENDENCY [email protected]~0.0 
    │ ├── [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] 

npm WARN EPEERINVALID [email protected] requires a peer of [email protected]~0.0 but none was installed. 

Có ai biết làm thế nào để đi về sửa chữa đó? Nếu bạn cài đặt thủ công thì bạn phải thực hiện điều đó trên mọi bản cập nhật.

Ngoài ra, tôi không thể tìm thấy một nơi để báo cáo lỗi ...

+0

Thử cài đặt cục bộ thay vì trên toàn cầu.Toàn cầu thực sự chỉ có ý nghĩa cho các tiện ích dòng lệnh anyway. – JohnnyHK

+1

Tôi cũng gặp lỗi này, tôi đề nghị bạn mở một vấn đề về JIRA [ở đây] (https://jira.mongodb.org/browse/NODE/?selectedTab=com.atlassian.jira.jira-projects-plugin:issues- bảng điều khiển) vì họ không sử dụng Github để theo dõi các vấn đề khiến việc báo cáo lỗi trở nên khó khăn hơn. Hoặc đi đến phòng gitter [ở đây] (https://gitter.im/mongodb/node-mongodb-native). Tác giả của trình điều khiển nodejs sẽ trả lời các câu hỏi về chúng. –

+2

Bạn đã thử bỏ qua cảnh báo chưa? Ít nhất mã của tôi dường như đang chạy tốt cho đến nay mà không đi qua những rắc rối rõ ràng của việc cài đặt các mô-đun Kerberos. Đoán của tôi là công cụ kerberos chỉ được sử dụng để xác thực mà bạn có thể không cần tùy thuộc vào trường hợp sử dụng của bạn. – mthierer

Trả lời

28

Tôi chỉ phải chạy npm install --save kerberos mongodb để cài đặt thành công MongoDB trong dự án của tôi. Tôi cho rằng bạn cũng có thể làm điều đó trên toàn cầu, nhưng có thể có các vấn đề khác.

Từ mongodb NPM package tài liệu:

Gói Kerberos là một phần mở rộng ++ C đòi hỏi phải có một môi trường xây dựng được cài đặt trên hệ thống của bạn. Bạn phải có khả năng tự xây dựng node.js để có thể biên dịch và cài đặt mô-đun kerberos. Ngoài ra, mô-đun Kerberos yêu cầu gói MIT Kerberos để biên dịch chính xác trên các hệ điều hành UNIX. Tham khảo ý kiến ​​người quản lý gói hệ điều hành UNIX của bạn những thư viện cần cài đặt.

Nó tiếp tục cung cấp các bước sau để chẩn đoán các vấn đề về hệ điều hành UNIX-based:

Nếu bạn không có các yếu tố cần thiết xây dựng nó sẽ không xây dựng. Trong trường hợp của Linux, bạn sẽ cần gcc và g ++, node.js với tất cả các tiêu đề và python. Cách dễ nhất để tìm ra những gì còn thiếu là cố gắng xây dựng dự án Kerberos. Bạn có thể thực hiện việc này bằng cách thực hiện các bước sau.

git clone https://github.com/christkv/kerberos.git 
cd kerberos 
npm install 

Nếu tất cả các bước hoàn tất, bạn đã cài đặt chuỗi công cụ đúng. Nếu bạn nhận được nút-gyp không tìm thấy bạn cần phải cài đặt nó trên toàn cầu bằng cách làm.

npm install -g node-gyp 

Nếu biên dịch chính xác và chạy thử nghiệm bạn có màu vàng. Bây giờ chúng ta có thể thử cài đặt trình điều khiển mongod bằng cách thực hiện lệnh sau.

cd yourproject 
npm install mongodb --save 

Nếu vẫn thất bại, bước tiếp theo là kiểm tra nhật ký npm. Chạy lại lệnh nhưng trong trường hợp này ở chế độ tiết.

npm --loglevel verbose install mongodb 

Thao tác này sẽ in tất cả các bước mà npm đang thực hiện khi cố gắng cài đặt mô-đun.

Các vấn đề khác có thể xảy ra:

Cài đặt python của bạn có thể được đặt làm ngắt quãng. Tôi luôn khuyên bạn nên thử nghiệm môi trường triển khai trước tiên bằng cách cố gắng xây dựng nút trên máy chủ được đề cập vì điều này sẽ khai quật bất kỳ vấn đề nào với gói bị hỏng (và có rất nhiều gói bị hỏng).

Một điều khác là đảm bảo người dùng của bạn có quyền ghi vào bất kỳ nơi nào các mô-đun nút đang được cài đặt.

+0

Làm việc cho tôi. Cảm ơn! – Cyph

+0

Thông tin cài đặt trình điều khiển chính thức tại đây https://github.com/mongodb/node-mongodb-native#troubleshooting –

+0

Giải pháp này rất khó tìm! Tôi đã bị mắc kẹt với "mongodb-core yêu cầu một đồng đẳng của kerberos" lỗi kể từ đêm qua – Ash

0
#!/bin/bash 
#My quasi bash script. This worked for Ubuntu v14.04 using Node.js v5.1.0 and mongodb v3.0.7 
clear 

# prerequisites for building node.js from its source files 
sudo apt-get install clang-3.5 make gcc g++ libssl-dev libkrb5-dev 

# where you extracted the latest stable release. https://github.com/nodejs/node/releases 
cd ~/Downloads/node 
# git clone https://github.com/nodejs/node # this does NOT work because it gets a beta/pre release. 
./configure 
# "-j 3" uses two processors for the compile on a duo core processor. 3 means 2 for some reason. 
make -j 3 
sudo make install 
make doc 
make test 

# prerequisites for being able to use '$ npm install mongodb' 
cd ~ 
sudo npm install -g node-gyp 
sudo npm install -g kerberos 

# npm mongodb will NOT install globally '-g'. Therefore you have to install local to each project. 
#cd to/your/project/directory 
# make sure you are in your project directory root and that the "node_modules" directory is not 'root:root' 
npm install mongodb --save 
+1

Bạn có thể cải thiện khả năng đọc câu trả lời của mình không? – iamktothed

+0

Tôi đã làm như vậy vì nó là một tập lệnh bash được giải thích với các chú thích cần thiết trong tệp bash. Làm cho một bản sao dễ dàng dán. Nếu tôi thay đổi nó, nó sẽ dễ đọc hơn và không dễ sử dụng. – Rick