Có thể cài đặt một chương trình vào một ổ đĩa ngoài?


9

Tôi chạy Ubuntu 14.04 trên chromebook Toshiba bằng crouton. Ổ đĩa mà hệ điều hành của tôi được cài đặt là nhỏ, chỉ có 3,6 GB dung lượng trống. Tôi muốn cài đặt sagetrên hệ thống của mình nhưng sagecần 6 GB dung lượng trống trên hệ thống.

Tuy nhiên, tôi luôn giữ một thẻ SD được lắp vào thiết bị. Thẻ có 175 GB dung lượng trống. Có thể cài đặt sagetrên thẻ SD?

Cách tôi đang cố tải xuống sagebằng các lệnh

apt-add-repository -y ppa:aims/sagemath
apt-get update
apt-get install sagemath-upstream-binary

như được tìm thấy ở đây .


Bạn đang cài đặt Sage như thế nào? Từ gói deb? Bằng cách giải nén một kho lưu trữ? Bằng cách biên dịch từ nguồn?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi vừa cập nhật câu hỏi để bao gồm cách tôi đang cài đặt sage.
Brian Fitzpatrick

Câu trả lời:


4

Việc tách các gói Debian thành các đĩa khác nhau trên một gói theo cơ sở gói là khó khăn. Không có hỗ trợ cho điều đó; bạn phải gọi dpkgriêng trên các gói bạn muốn cài đặt ở một vị trí không mặc định.

Đặt một cây thư mục vào một đĩa riêng biệt là dễ dàng. May mắn cho bạn, theo như tôi có thể biết từ một sự nhìn chăm chú nhanh chóng, các gói Sage trong PPA cài đặt hầu hết các tệp trong /usr/lib/sagemath. Bạn có thể dễ dàng đặt nó vào thẻ SD. Giả sử thẻ SD được gắn (khi có mặt) trên /media/sdcard. Tạo một thư mục ở đó và tạo một liên kết tượng trưng.

mkdir /media/sdcard/sagemath
ln -s /media/sdcard/sagemath /usr/lib/sagemath

Sau đó, tất cả các tệp mà dpkg cài đặt bên dưới /usr/lib/sagemathsẽ kết thúc trên thẻ SD (bất kể chúng đến từ gói nào).

Nếu bạn cố gắng sử dụng Sage hoặc quản lý các gói Sage trong khi không có thẻ SD, bạn sẽ nhận được thông báo lỗi và nếu bạn lắp thẻ SD và lặp lại hành động, sẽ không có hại gì.


Cảm ơn vì những lời khuyên. Tôi đã làm theo đề xuất của bạn và cài đặt sage. Tuy nhiên, phát hành $ sagetrả lại bash: /usr/bin/sage: Permission denied.
Brian Fitzpatrick

Bạn cần ổ đĩa ngoài để có hệ thống tệp kiểu UNIX (như ext4, btrfs, v.v.) nếu bạn cần các thuộc tính như "thực thi" và thông tin chủ sở hữu / nhóm.
Ned64

@ Ned64 Thẻ sd của tôi có ext4.
Brian Fitzpatrick

@BrianFitzpatrick Tôi sẽ nói rằng bạn cần posixovlfs trên đầu trang của vfat, nhưng vì đây là ext4 nên bạn không cần bất cứ điều gì đặc biệt. Mặc dù bạn đang gắn thẻ SD như thế nào? Nếu bạn có usertùy chọn trong /etc/fstab, thêm exectùy chọn.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles My etc/fstabđọc# UNCONFIGURED FSTAB FOR BASE SYSTEM
Brian Fitzpatrick

4

Đây là một câu hỏi thú vị. Hãy để chúng tôi thảo luận về một số cách này có thể được cố gắng.

Phương pháp # 1: Thao tác vị trí trong khi cài đặt apt-get

Sử dụng apt-get, sẽ không thể làm như vậy. Nếu bạn đang cài đặt bằng .debtập tin, một lần nữa, điều đó là không thể. Lý do đơn giản là vị trí để cài đặt được mã hóa cứng vào các gói này.

Để thao tác vị trí cài đặt, bạn sẽ phải biên dịch sagetừ nguồn và sửa đổi vị trí makefiletrước khi cài đặt. Điều này sẽ đi kèm với một gánh nặng quản lý các phụ thuộc.

Tuy nhiên, đã có các cuộc thảo luận liên quan đến điều này. Có lẽ, mọi người đã làm điều đó. Có lẽ họ đã bằng cách nào đó thao túng vị trí cài đặt. Xem ở đâyở đây . Nếu bạn tìm thấy một số cách để làm điều này, xin vui lòng thêm một nhận xét.

Phương pháp # 2: Thay đổi vị trí của thư mục / usr

Bạn có thể thay đổi vị trí của /usrthư mục và chuyển nó vào thẻ bên ngoài của bạn. Thông thường điều này sẽ được khuyến khích, nhưng vì bạn đang nói rằng bạn luôn giữ nó được chèn, vì vậy nó sẽ ổn.

Để làm điều này, có 2 cách:

  1. (Ưu tiên) Tạo phân vùng trong thẻ ngoài của bạn và chuyển tất cả nội dung trong /usrthư mục hiện tại sang phân vùng đó. Sau đó, sửa đổi của bạn /etc/fstabđể gắn kết phân vùng đó làm /usrthư mục và loại bỏ /usrhoàn toàn thư mục cũ . Để thực hiện tất cả điều này, bạn sẽ cần phải khởi động từ một số đĩa cứu hộ hoặc một số đĩa CD / USB trực tiếp.

  2. Trong phương pháp này cũng vậy, trước tiên hãy khởi động từ một số đĩa cứu hộ hoặc CD / USB trực tiếp và sau đó di chuyển /usrthư mục sang thẻ bên ngoài và sau đó tạo một liên kết tượng trưng đến /usrthư mục mới .

PS

Đây là một câu hỏi thú vị, một cái gì đó mà tôi đã suy nghĩ gần đây khi đĩa cứng của tôi đã đầy. Tôi sẽ thử một vài trong số những điều này và cập nhật câu trả lời của tôi. Bình luận được hoan nghênh để chỉ trích một số phương pháp này.

CẬP NHẬT

Cũng xem câu trả lời @gilles. Đề nghị của anh ấy là tốt hơn. Thay vì di chuyển tất cả /usrthư mục sang thẻ bên ngoài, chỉ cần di chuyển /usr/lib/sagemathsang thẻ bên ngoài vì nó chiếm khoảng 3,1 GB cài đặt của bạn. Vì vậy, trong Phương pháp # 2 , bạn có thể di chuyển thư mục này thay vì /usr.


Di chuyển /usrvào thẻ SD sẽ khiến hệ thống không thể sử dụng được khi không có thẻ SD. Đây không phải là một ý tưởng tốt.
Gilles 'SO- ngừng trở nên xấu xa'

Đúng. Nhưng OP đã đề cập rằng thẻ sẽ LUÔN được giữ. Tôi đã đề cập đến điều này trong câu trả lời của tôi.
shivams

@Gilles Tôi chỉ là câu trả lời của bạn. Đề nghị của bạn chắc chắn là tốt hơn.
shivams
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.