Czy można zainstalować program na dysku zewnętrznym?

9

Uruchamiam Ubuntu 14.04 na Chromebooku Toshiba za pomocą crouton. Dysk, na którym zainstalowany jest mój system operacyjny, jest mały i ma tylko 3,6 GB wolnego miejsca. Chciałbym zainstalować sagew swoim systemie, ale sagewymaga 6 GB wolnego miejsca w systemie.

Zawsze jednak trzymam kartę SD włożoną do urządzenia. Karta ma 175 GB wolnego miejsca. Czy można zainstalować sagena karcie SD?

Sposób, w jaki próbuję pobrać sageza pomocą poleceń

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

jak znaleziono tutaj .

Brian Fitzpatrick
źródło
Jak instalujesz Sage? Z pakietów deb? Rozpakowując archiwum? Kompilując ze źródła?
Gilles „SO- przestań być zły”
@Gilles Właśnie zaktualizowałem pytanie, aby uwzględnić sposób instalacji sage.
Brian Fitzpatrick

Odpowiedzi:

4

Dzielenie pakietów Debiana na różne dyski dla poszczególnych pakietów jest trudne. Nie ma na to wsparcia; musisz dpkgosobno wywoływać pakiety, które chcesz zainstalować w lokalizacji innej niż domyślna.

Umieszczenie drzewa katalogów na osobnym dysku jest łatwe. Na szczęście dla ciebie, o ile mogę stwierdzić po szybkim przejrzeniu, pakiety Sage w PPA instalują większość plików /usr/lib/sagemath. Możesz łatwo umieścić to na karcie SD. Powiedzmy, że karta SD jest zamontowana (jeśli jest obecna) na /media/sdcard. Utwórz tam katalog i utwórz dowiązanie symboliczne.

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

Następnie wszystkie pliki, pod którymi instaluje się dpkg, /usr/lib/sagemathtrafią na kartę SD (niezależnie od tego, z którego pakietu pochodzą).

Jeśli spróbujesz użyć Sage lub zarządzać pakietami Sage, gdy karta SD nie będzie obecna, pojawi się komunikat o błędzie, a jeśli włożysz kartę SD i powtórzysz akcję, nie poniesiesz żadnych szkód.

Gilles „SO- przestań być zły”
źródło
Dzięki za wskazówki. Zastosowałem się do twoich sugestii i zainstalowałem sage. Jednak wydawanie $ sagezwrotów bash: /usr/bin/sage: Permission denied.
Brian Fitzpatrick
Potrzebujesz zewnętrznego dysku, aby mieć system plików typu UNIX (taki jak ext4, btrfs itp.), Jeśli potrzebujesz atrybutów takich jak „plik wykonywalny” i informacje o właścicielu / grupie.
Ned64
@ Ned64 Moja karta SD ma ext4.
Brian Fitzpatrick
@BrianFitzpatrick Chciałem powiedzieć, że potrzebujesz posixovlfs na vfacie, ale ponieważ jest to ext4, nie powinieneś potrzebować niczego specjalnego. Chociaż… jak montujesz kartę SD? Jeśli masz useropcję w /etc/fstab, dodaj execopcję.
Gilles „SO - przestań być zły”
@Gilles My etc/fstabczyta# UNCONFIGURED FSTAB FOR BASE SYSTEM
Brian Fitzpatrick
4

To interesujące pytanie. Omówmy kilka sposobów, w jakie można tego spróbować.

Metoda nr 1: Manipulowanie lokalizacją podczas instalacji apt-get

Przy użyciu apt-get nie byłoby to możliwe. Jeśli instalujesz przy użyciu .debplików, znowu nie jest to możliwe. Powodem jest po prostu to, że lokalizacja instalacji jest zakodowana na stałe w tych pakietach.

Aby manipulować lokalizacją instalacji, będziesz musiał skompilować ją sageze źródła i zmodyfikować makefileprzed instalacją. Będzie to wiązało się z ciężarem zarządzania zależnościami.

Dyskutowano jednak na ten temat. Być może ludzie to zrobili. Może w jakiś sposób zmanipulowali lokalizację instalacji. Zobacz tutaj i tutaj . Jeśli znajdziesz sposób, aby to zrobić, dodaj komentarz.

Metoda nr 2: Zmiana lokalizacji folderu / usr

Możesz zmienić lokalizację samego /usrfolderu i przenieść go na kartę zewnętrzną. Zwykle byłoby to odradzane, ale ponieważ mówisz, że zawsze trzymasz go włożonym, więc powinno być dobrze.

Aby to zrobić, istnieją 2 sposoby:

  1. (Preferowane) Utwórz partycję na karcie zewnętrznej i przenieś całą zawartość z bieżącego /usrfolderu na tę partycję. Następnie zmodyfikuj, /etc/fstababy zamontować tę partycję jako /usrfolder, i /usrcałkowicie usuń stary folder. Aby to wszystko zrobić, musisz uruchomić system z dysku ratunkowego lub płyty CD / USB na żywo.

  2. W tej metodzie najpierw należy uruchomić komputer z dysku ratunkowego lub płyty CD / USB na żywo, a następnie przenieść /usrfolder na kartę zewnętrzną, a następnie utworzyć dowiązanie symboliczne do nowego /usrfolderu.

PS

To interesujące pytanie, o którym ostatnio myślałem, gdy mój dysk twardy się zapełniał. Spróbuję niektórych z tych rzeczy i zaktualizuję swoją odpowiedź. Komentarze mogą krytykować niektóre z tych metod.

AKTUALIZACJA

Zobacz także odpowiedź @Gilles. Jego sugestia jest lepsza. Zamiast przenosić cały /usrfolder na kartę zewnętrzną, po prostu przenieś /usr/lib/sagemathją na kartę zewnętrzną, ponieważ zajmuje ona około 3,1 GB instalacji. Tak więc w metodzie nr 2 możesz przenieść ten folder zamiast /usr.

Shivams
źródło
Przeniesienie /usrna kartę SD uniemożliwiłoby korzystanie z systemu, gdy karta SD nie jest obecna. To nie jest dobry pomysł.
Gilles „SO- przestań być zły”
Tak. Ale OP wspomniał, że karta ZAWSZE pozostanie włożona. Wspomniałem o tym w mojej odpowiedzi.
shivams
@Gilles Właśnie twoja odpowiedź. Twoja sugestia jest zdecydowanie lepsza.
shivams