2011-12-19 16 views
9

Thư mục cài đặt mặc định của apt-get là/opt. Tôi có thể thay đổi nó sang một thư mục khác không?Làm cách nào để thay đổi thư mục cài đặt apt-get

+0

Be chính xác hơn: đây là thư mục mặc định của apt-get ứng dụng (khi bạn biên dịch nó từ nguồn) của thư mục mặc định của ứng dụng được cài đặt với apt-get? – CedX

+0

Đó là thư mục mặc định của các ứng dụng được cài đặt với apt-get – tommywang

+0

Sau đó, bạn không thể. –

Trả lời

7

Cách tốt nhất tôi có thể nghĩ đến là sử dụng một liên kết tượng trưng

lưu ý rằng không phải tất cả các chương trình được cài đặt vào thư mục tương tự và/opt thể không phải là điều tốt nhất để di chuyển. (Xem kết thúc ví dụ của việc di chuyển chỉ có một thư mục/chương trình)

Đây là những gì tôi đã làm với EasyPeasy (Ubuntu 10.04)

theo mã này một cách cẩn thận một số lệnh có thể xóa các tập tin quan trọng nếu sử dụng không đúng cách.

Trước tiên, bạn cần đảm bảo/chọn tham gia (hoặc thư mục cài đặt apt-get mặc định của bạn distro) trống. Nếu bạn có dữ liệu trong thư mục opt, mà nhiều khả năng bạn làm, bạn có thể di chuyển nó đến một nơi khác trước để giữ an toàn:

sudo mkdir /New_Location/newtmp          # Generates Temporary Folder for Programs 
sudo cp -a /opt/* /New_Location/newtmp        # Moves Programs to Temp folder 

Khi sao lưu bạn có thể xóa thư mục gốc:

sudo rm -rf /opt/             # Removes opt directory 

sau đó bạn có thể tạo thư mục tập tin chương trình mới của bạn trong một ổ đĩa với nhiều không gian và tạo ra một liên kết tượng trưng:

sudo mkdir /New_Location/Program-Files        # Generates New Program Directory 
sudo ln -s /New_Location/Program-Files /opt       # Creates Symbolic Link 

Cuối cùng di chuyển tất cả các file chương trình cũ sang thư mục mới của bạn và dọn dẹp dữ liệu tạm thời:

sudo cp -a /New_Location/newtmp/* /New_Location/Program-Files  # Moves Programs to Program Files Folder 
sudo rm -rf /New_Location/newtmp/         # Removes Temp folder 

Nếu bạn chỉ muốn di chuyển một chương trình chiếm một phần không gian bạn có thể sử dụng cùng một quy trình.

ví dụ: để di chuyển Java (JVM xấp xỉ 300MB) thực hiện như sau. kiểm tra thư mục java bằng cách sử dụng phân tích sử dụng đĩa. mỏ là/usr/lib/jvm

sudo mkdir /New_Location/Program-Files/Java       # Generates New Program Directory 
sudo cp -a /usr/lib/jvm/* /New_Location/Program-Files/Java   # Moves Program to new folder 
sudo rm -rf /usr/lib/jvm            # Removes opt directory 
sudo ln -s /New_Location/Program-Files/Java /usr/lib/jvm    # Creates Symbolic Link 

Tốt nhất tại thời điểm này để khởi động lại nên xóa bộ nhớ cache.

Chúc mừng Hacking TNHH Intelligence

+0

Hãy tưởng tượng những điều sau đây. Bạn muốn có hai phiên bản của một gói trong các thư mục khác nhau. Vì vậy, gói thứ hai sẽ vượt qua gói đầu tiên. Liên kết tượng trưng là không có lợi ích sau đó. – DanFromGermany

2

Bạn không thể: đường dẫn cài đặt được mã hóa cứng trong các gói (xem ví dụ: http://packages.ubuntu.com/oneiric/i386/mono-runtime/filelist). Đường dẫn này thường là/usr thay vì/opt, nhưng nó phụ thuộc vào các gói. Nếu bạn muốn ghi đè thư mục mặc định, bạn phải trích xuất thủ công nội dung của các gói. Tuy nhiên, nó không thể làm việc: các tập tin cấu hình, thậm chí các tập tin nhị phân đôi khi, sẽ tiếp tục sử dụng đường dẫn cũ. Vì vậy, bạn phải cập nhật chúng để các gói hoạt động chính xác.

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