2014-12-19 14 views
6

Trên OSX Yosemite và phiên bản mới nhất của sao băng (1.0.1), bất kể có bao nhiêu lần tôi gỡ cài đặt và cài đặt lại nó, tôi dường như không thể chạy nó mà không có sudo. Tài khoản người dùng của tôi là tài khoản quản trị viên. Nhưng meteor từ chối chạy mà không có sudo. Các lỗi tôi nhận được là tất cả:Meteor sẽ không chạy nếu không có Sudo?

-bash: meteor: command not found 

Tôi đã nhìn thấy một vài bài đăng ở đây có vấn đề tương tự. Tôi đã thử sửa chữa quyền truy cập đĩa bằng tiện ích đĩa. Tôi đã thử:

sudo chown -R $myUsername /usr/local/bin/meteor 

Tôi không biết mình có thể làm gì khác, vì có vẻ như đó là vấn đề về quyền. Có ai có bất cứ đề nghị?

thông tin bổ sung có thể giúp:

$ sudo which meteor 
/usr/local/bin/meteor 
$ sudo ls -l /usr/local/bin/meteor 
-rwxrwxrwx 1 root wheel 3528 Dec 18 23:14 /usr/local/bin/meteor 
$ ls -ld /usr/local/bin 
drwx------ 6 502 wheel 204 Dec 18 23:14 /usr/local/bin 

Bằng cách này, ls -l /usr/local/bin/meteor chỉ làm việc với sudo.

+0

chmod 777 sao băng và thêm nó vào MÔI TRƯỜNG biến – tinySandy

+0

@BallPython mỗi khi bạn 'chmod 777', ở đâu đó trên thế giới một con mèo con chết – janos

+0

@janos - haha, true) nhưng tôi đề nghị nó chỉ để đảm bảo nó sẽ làm việc – tinySandy

Trả lời

10

Sau khi chúng tôi làm rõ các điều khoản của meteor thực thi và thư mục cơ sở của nó, vấn đề trở nên khá rõ ràng:

  • Các Meteor nhị phân nằm ở /usr/local/bin/meteor
  • sử dụng của bạn không được phép để các thư mục /usr/local/bin

Các bước để giải quyết:

  1. Thêm khoản trên thư mục gốc: sudo chmod +rx /usr/local/bin
  2. Nếu cần thiết, thêm thư mục cơ sở để PATH: PATH=$PATH:/usr/local/bin

Để tham khảo trong tương lai:

  • Khi bạn nhận được loại lỗi: -bash: XYZ: command not found
    • Điều đầu tiên cần kiểm tra là tìm đường dẫn tuyệt đối của XYZ, ví dụ /path/to/XYZ
    • Cố gắng chạy với đường dẫn tuyệt đối /path/to/XYZ
  • Nếu chạy với /path/to/XYZ cho -bash: /path/to/XYZ: Permission denied đó có nghĩa là bạn gặp rắc rối với các điều khoản trên các tập tin và/hoặc thư mục:
    • Bạn cần quyền đọc và exec trên chính tệp: sudo chmod +rx /path/to/XYZ
    • Bạn cần có quyền exec trên tất cả các phần tử đường dẫn dẫn đến tệp: sudo chmod +x /path /path/to
  • Sau khi sửa chữa các vấn đề cho phép, chạy với /path/to/XYZ nên làm việc
  • Sau khi sửa chữa các vấn đề cho phép, nếu chạy với XYZ (không có đường dẫn đầy đủ) vẫn không hoạt động, có nghĩa là /path/to không phải là trên PATH của bạn. Fix với PATH=$PATH:/path/to

Lưu ý: sudo chmod lệnh trên cho phép (đọc và exec) cho tất cả người sử dụng: chủ sở hữu + nhóm + khác. Trong trường hợp của OP (và trong các trường hợp phổ biến nhất), điều này là hoàn toàn tốt đẹp. Trong trường hợp thiết lập quyền phức tạp hơn, bạn có thể cần phải cụ thể hơn và sử dụng g+rx thay vì +rx.

(cho các hồ sơ)

Nếu nó hoạt động với sudo, và không có sudo bạn nhận được command not found, đó có nghĩa là meteor là trên PATH cho root nhưng không phải cho người dùng của bạn. Để làm cho nó hoạt động cho người dùng của bạn, bạn cần tìm đường dẫn đến meteor và thêm nó vào số PATH của người dùng của bạn.Ví dụ:

  1. root với sudo su -
  2. Tìm đường đi của meteor, lệnh chạy: which meteor
  3. Thoát từ gốc (Control-D) để trở về với người dùng của bạn
  4. Thêm thư mục cơ sở để PATH, ví dụ nếu trước đó đã cho bạn which meteor/usr/local/bin/meteor, sau đó làm điều này: PATH=$PATH:/usr/local/bin

Sau này, nó sẽ làm việc với người dùng của bạn. Để đặt "vĩnh viễn", hãy thêm bước cuối cùng trong số ~/.bashrc của bạn.

Nếu điều này vẫn không hoạt động, thì có lẽ người dùng của bạn không có quyền thực thi trên tệp. Khắc phục điều đó bằng lệnh này:

sudo chmod +x /usr/local/bin/meteor 

Từ nhận xét của bạn, có vẻ như người dùng của bạn không có quyền trên thư mục /usr/local/bin. Khắc phục điều đó bằng lệnh này:

sudo chmod +rx /usr/local/bin 
3

Không cần tài khoản quản trị để chạy tài khoản này, tài khoản người dùng chuẩn hoạt động tốt. Bạn có thể định vị tệp sao băng bằng cách nhập which meteor. Nó sẽ cho bạn biết những gì tập tin đang được sử dụng để thực hiện.

Hãy thử loại bỏ các thư mục .meteor trong thư mục chính của bạn, một cái gì đó giống như rm -rf ~/.meteor và kịch bản từ thư mục bin rm /usr/local/bin/meteor hoặc rm 'which meteor'(bài phát biểu đánh dấu có những cái ở trên ~)

Và sau đó cài đặt lại thiên thạch mà không sudo sử dụng lệnh curl https://install.meteor.com/ | sh.

Nên hy vọng cài đặt với tất cả các quyền chính xác ...

+0

Tôi chưa bao giờ cài đặt nó với sudo. Đó là phần duy nhất tôi có thể làm. Tôi chỉ cần cài đặt nó một lần nữa, và tôi thậm chí không thể loại bỏ các thư mục bằng cách sử dụng 'rm/usr/local/bin/meteor', nó nói với tôi" Permission denied "...' mà meteor' chỉ cho tôi vào thư mục đó mặc dù. Tôi cần phải sử dụng sudo thậm chí để loại bỏ nó. –

+0

sau đó sử dụng sudo để xóa các tệp đầu tiên – Aaron

+0

Có, tôi đã thực hiện việc đó và cài đặt lại nó. Cùng một điều mỗi khi tôi cố gắng chạy sao băng, tạo ra một ứng dụng, vv, nó nói '-bash: sao băng: lệnh không tìm thấy' trừ khi tôi chạy nó với sudo. –

Các vấn đề liên quan