Чи можливо встановити програму на зовнішній диск?


9

Я запускаю Ubuntu 14.04 на хронічній книзі Toshiba за допомогою грінка. Диск, на якому встановлена ​​моя ОС, невеликий, лише 3,6 ГБ вільного місця. Я хотів би встановити sageв своїй системі, але для цього sageпотрібно 6 Гб вільного місця.

Однак я завжди зберігаю SD-карту, вставлену в пристрій. На картці є 175 ГБ вільного місця. Чи можливо встановити sageна SD-карту?

Те, як я намагаюся скачати sageза допомогою команд

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

як знайдено тут .


Як ви встановлюєте Sage? З деб-пакетів? Розпакувавши архів? Компілюючи з джерела?
Жил "ТАК - перестань бути злим"

@Gilles Я щойно оновив питання, щоб вказати, як я встановлюю sage.
Брайан Фіцпатрік

Відповіді:


4

Розщеплення пакетів Debian на різні диски на пакет за принципом складно. Для цього немає підтримки; вам доведеться посилатися dpkgокремо на пакунки, які ви хочете встановити в не за замовчуванням місці.

Покласти дерево каталогів на окремий диск легко. На щастя для вас, наскільки я можу сказати з швидкого ознайомлення, пакети Sage в PPA встановлюють більшість файлів /usr/lib/sagemath. Ви можете легко помістити це на SD-карту. Скажімо, SD-карта встановлена ​​(при наявності) /media/sdcard. Створіть там каталог і зробіть символічне посилання.

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

Тоді всі файли, під якими встановлюється dpkg /usr/lib/sagemath, потраплять на SD-карту (незалежно від того, з якого пакета вони входять).

Якщо ви спробуєте використовувати Sage або керувати пакетами Sage, поки SD-картки немає, ви отримаєте повідомлення про помилку, і якщо вставити SD-карту і повторити дію, шкоди не буде.


Дякую за поради. Я дотримувався ваших пропозицій і встановлював sage. Однак видача $ sageдекларацій bash: /usr/bin/sage: Permission denied.
Брайан Фіцпатрік

Вам потрібен зовнішній диск, щоб мати файлову систему типу UNIX (наприклад, ext4, btrfs тощо), якщо вам потрібні такі атрибути, як "виконуваний файл" та інформація про власника / групу.
Ned64

@ Ned64 Моя SD карта має ext4.
Брайан Фіцпатрік

@BrianFitzpatrick Я збирався сказати, що вам потрібні posixovlfs поверх vfat, але оскільки це ext4, вам нічого особливого не потрібно. Хоча… як ви монтуєте SD-карту? Якщо у вас є userопція в /etc/fstab, додайте execопцію.
Жиль "ТАК - перестань бути злим"

@Gilles Мої etc/fstabчитає# UNCONFIGURED FSTAB FOR BASE SYSTEM
Брайан Фіцпатрік

4

Це цікаве питання. Давайте обговоримо кілька способів, як це можна було б спробувати.

Спосіб №1: Маніпулювання розташуванням під час встановлення apt-get

Використовуючи apt-get, зробити це було б неможливо. Якщо ви встановлюєте .debфайли, знову це неможливо. Причина просто в тому, що місце установки встановлено в ці пакунки.

Щоб маніпулювати місцем встановлення, вам доведеться зібрати його sageз джерела та змінити його makefileперед його встановленням. Це спричинить тягар управління залежностями.

Однак щодо цього були дискусії. Можливо, люди це зробили. Можливо, вони якось маніпулювали місцем установки. Дивіться тут і тут . Якщо ви знайдете якийсь спосіб зробити це, будь ласка, додайте коментар.

Спосіб №2: Зміна розташування папки / usr

Ви можете змінити розташування самої /usrпапки та перенести її на свою зовнішню карту. Зазвичай це не відволікає, але оскільки ти кажеш, що ти завжди тримаєш це, то це повинно бути добре.

Для цього є два способи:

  1. (Переважно) Створіть розділ на зовнішній карті та перенесіть увесь вміст у поточній /usrпапці на цей розділ. Потім видозмініть ваш, /etc/fstabщоб встановити цей розділ як /usrпапку, і видаліть стару /usrпапку взагалі. Щоб зробити все це, вам потрібно буде завантажитися з якогось рятувального диска або якогось живого CD / USB.

  2. У цьому способі спочатку завантажтеся з якогось рятувального диска або живого CD / USB, а потім перемістіть /usrпапку на зовнішню карту, а потім створіть посилання на нову /usrпапку.

PS

Це цікаве запитання, про яке я думав останнім часом, коли мій жорсткий диск набирався. Я спробую деякі з цих речей і оновлю свою відповідь. Коментарі можна вітати з критикою деяких із цих методів.

ОНОВЛЕННЯ

Дивіться також відповідь @gilles. Його пропозиція краща. Замість того, щоб переміщувати всю /usrпапку на зовнішню карту, просто перемістіть її /usr/lib/sagemathна зовнішню карту, оскільки вона займає близько 3,1 Гб вашої установки. Отже, у Способі №2 можна перемістити цю папку замість /usr.


Перехід /usrна SD-карту зробить систему непридатною для використання, коли її немає. Це не дуже гарна ідея.
Жил "ТАК - перестань бути злим"

Так. Але ОП зазначила, що ВІДПОВІДНУ карту завжди буде вставлено. Я це згадав у своїй відповіді.
шивам

@Gilles Я просто твоя відповідь. Ваша пропозиція, безумовно, краща.
шивам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.