2016-03-29 21 views
6

Tôi vừa tạo một hộp âm thanh với ubuntu/trusty32. Các Provisioner lang thang, trong thời gian tạo hộp, đã thực hiện những điều sau:Không thể cài đặt các gói pip do locale.error bên trong Ubuntu Vagrant Box

  • tải tarball python nguồn virtualenv sử dụng wget
  • untarred tarball nguồn virtualenv sử dụng tar zxvf ./virtualenv.tar.gz
  • tạo ra một virtualenv gọi venv sử dụng python ./virtualenv/virtualenv.py ./venv
  • có nguồn gốc venvới mới được tạo ra với source ./venv/bin/activate
  • cài đặt một vài gói pip với pip install django, pip install mysqlclient vv bên trong môi trường ảo.

Tất cả điều này làm việc tốt và hoàn hảo - được thực thi bởi nhà cung cấp âm đạo khi hộp chú giải được tạo lần đầu tiên.

Tuy nhiên, sau này, tôi đã đăng nhập vào ssh lang thang và cố gắng cài đặt ipython qua pip.

$ vagrant ssh 
[email protected]:~$ source venv/bin/activate 
(venv) [email protected]:~$ pip install ipython 
Traceback (most recent call last): 
    File "/home/vagrant/venv/bin/pip", line 11, in <module> 
    sys.exit(main()) 
    File "/home/vagrant/venv/local/lib/python2.7/site-packages/pip/__init__.py", line 215, in main 
    locale.setlocale(locale.LC_ALL, '') 
    File "/home/vagrant/venv/lib/python2.7/locale.py", line 579, in setlocale 
    return _setlocale(category, locale) 
locale.Error: unsupported locale setting 
(venv) [email protected]:~$ 

Lưu ý: đây là hộp thư mới tươi chạy ubuntu/trusty32 ra khỏi hộp.

Có một số câu hỏi SO về lỗi miền địa phương nhưng theo dõi chúng không tiết lộ sự trợ giúp cho trường hợp này.

Nó không có ý nghĩa rằng tất cả của nó làm việc hoàn toàn tốt đẹp trong quá trình tạo hộp thời gian lang thang/cung cấp nhưng không làm việc sau khi cố gắng điều tương tự bằng tay.

Trả lời

15

Trước hết hãy kiểm tra cấu hình miền địa phương hiện tại của bạn bằng cách chỉ cần đặt locale trong dòng lệnh.

Bạn sẽ thấy một cái gì đó tương tự như:

locale: Cannot set LC_CTYPE to default locale: No such file or directory 
LANG=C 
LC_CTYPE=utf8 

Đặt ngôn ngữ hợp lệ trong biến môi trường LC_CTYPE bằng cách chạy các lệnh sau:

export LANGUAGE=en_US.UTF-8 
export LANG=en_US.UTF-8 
export LC_ALL=en_US.UTF-8 
export LC_CTYPE="en_US.UTF-8" 
locale-gen en_US.UTF-8 
sudo dpkg-reconfigure locales 

PS. en_US.UTF-8 được sử dụng ở đây nhưng nếu bạn cần kiểm tra tất cả các ngôn ngữ có sẵn trên hệ thống của mình, hãy chạy lệnh locale -a

Điều này sẽ giải quyết được sự cố.

+0

tuyệt vời ... hoạt động này ... .điều gì vừa xảy ra ??? có bất kỳ sự khác biệt nào giữa việc gói 'en_US.UTF-8' trong dấu ngoặc kép và không bao gồm dấu ngoặc kép bên trong' en_US.UTF-8'? –

+0

lưu ý .. i am cần phải làm điều này mỗi khi tôi đăng nhập vào vỏ máy. Làm thế nào để tôi làm cho nó vĩnh viễn? –

+0

Bạn có thể thêm các lệnh trong '.bashrc' và theo cách đó nó sẽ được thực thi mỗi khi bạn đăng nhập vào trình bao của mình. Và cũng đừng quên đánh dấu câu trả lời này để bất kỳ ai khác gặp vấn đề có thể coi nó là câu trả lời :) –

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