2013-02-06 31 views
65

Tôi đã gặp sự cố là thư mục chính của tôi thực sự nằm trên máy chủ từ xa và với ~/.vagrant.d đang ngồi trên máy chủ đó, hiệu suất của âm đạo giảm rất nhiều (và tệp- kích thước sao lưu máy chủ tăng).vagrant.d bên ngoài thư mục chính

Vì vậy, có cách nào để di chuyển ít nhất ~/vagrant.d/hộp ra khỏi thư mục chính không?

Chúc mừng.

Trả lời

96

Theo mặc định Vagrant sử dụng ~/.vagrant.d. May mắn thay, mơ hồ cung cấp một biến môi trường được gọi là VAGRANT_HOME mà bạn có thể đặt nhà ở lang thang.

Chỉ cần làm những điều sau đây để thay đổi nhà lang thang (điều này chỉ hoạt động trong phiên hiện tại)

export VAGRANT_HOME=/path/to/vagrant

Để làm cho nó vĩnh viễn, thêm video này vào ~/.bash_profile (đối với vỏ đăng nhập) của bạn.

Cập nhật: VAGRANT_HOME đã được thêm vào các tài liệu hướng dẫn - Environmental Variables

VAGRANT_HOME có thể được thiết lập để thay đổi thư mục nơi mà tình trạng các cửa hàng Vagrant toàn cầu. Theo mặc định, cài đặt này được đặt thành ~/.vagrant.d. Thư mục nhà Vagrant là nơi những thứ như hộp được lưu trữ, vì vậy nó thực sự có thể trở nên khá lớn trên đĩa.

+6

Trên thực tế tôi thấy rằng VAGRANT_HOME phải được thiết lập và rằng tài sản "machinefolder" trong VirtualBox phải được thiết lập thông qua "VBoxManage setproperty machinefolder " __ Cảm ơn gợi ý – pagid

+0

cảm ơn cho bài đăng này !!! – Robert

+0

Phát hiện cá nhân của tôi: Khi tạo biến môi trường vĩnh viễn (trong '~/.bash_profile' hoặc nếu bạn sử dụng ZSH trong' ~/.zshrc', v.v.), hãy đảm bảo bạn cũng viết 'xuất'. Kiểm tra nếu nó được đặt bằng 'env' trên dòng lệnh. Khi sử dụng VirtualBox làm nhà cung cấp, cũng có một thiết lập trong GUI cho đường dẫn mặc định của nó. – Urs

7

Trên Windows thay đổi dòng 17 của environment.rb nằm tại địa chỉ:
lang thang \ nhúng \ đá quý \ đá quý \ lang thang-1.xxdev \ lib \ lang thang \ environment.rb

+3

Không chắc chắn lý do tôi bị bỏ phiếu. Điều này có liên quan đến câu hỏi - nó không được dán nhãn linux và có thể giúp một người như nó đã làm tôi. – Storsey

+12

Lộn xộn xung quanh trong các tập tin ruby ​​không phải là một lời khuyên tốt cả và biến môi trường VAGRANT_HOME cũng hoạt động tốt trên Windows. – pagid

+0

Đã không nhận ra các biến env đã có sẵn trên Win .. sắp xếp mà phải ra, cảm ơn! – Storsey

13

VAGRANT_HOME không hoạt động tốt trong Windows 8.1 của tôi. Nó làm việc cho tôi khi tôi thay đổi các tập tin

D: \ HashiCorp \ Vagrant \ nhúng \ đá quý \ đá quý \ lang thang-1.5.3 \ lib \ lang thang \ environment.rb

on line 117 đến

@home_path = Util::Platform.fs_real_path("D:/vagrant/home/") 

như Steve H đã nói và hoạt động tốt.

+2

Nếu bạn sử dụng đường dẫn cục bộ của cửa sổ, hãy nhớ thoát khỏi dấu gạch chéo ngược (điều này khiến tôi hiểu). I E. "D: \\ vagrant \\ home" – Guerrilla

2

một nơi khác (nơi gốc mà nó đọc biến ENV) là trong shared_helpers.rb, dòng 71 (lang thang v 1.6.5):

# This returns the path to the ~/.vagrant.d folder where Vagrant's 
    # per-user state is stored. 
    # 
    # @return [Pathname] 
    def self.user_data_path 
    # Use user spcified env var if available 
    path = ENV["VAGRANT_HOME"] 

    # On Windows, we default to the USERPROFILE directory if it 
    # is available. This is more compatible with Cygwin and sharing 
    # the home directory across shells. 
    if !path && ENV["USERPROFILE"] 
     path = "#{ENV["USERPROFILE"]}/.vagrant.d" 
    end 

    # Fallback to the default 
    path ||= "~/.vagrant.d" 

    Pathname.new(path).expand_path 
end 

Dù sao, tôi nghĩ cách tốt nhất là sử dụng biến môi trường VAGRANT_HOME, trong trường hợp nâng cấp phiên bản mơ hồ.

Bạn có thể sử dụng chức năng này như:

disk_path = self.user_data_path().to_s 
+0

Đây là giải pháp ưa thích của tôi. Nó hoạt động bên trong một tập tin lang thang như 'Vagrant :: user_data_path(). To_s'. –

9

Nó có thể là hữu ích để thiết lập vĩnh viễn này trên một hộp Windows bằng cách thực hiện

setx VAGRANT_HOME "/d/.vagrant.d/" 
+1

Bạn phải chạy nó từ đường dẫn nơi đặt ứng dụng setx. Đường dẫn phổ biến nhất là: C: \ Windows \ System32 – versedi

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