Apakah mungkin untuk menginstal program ke drive eksternal?

9

Saya menjalankan Ubuntu 14.04 pada Chromebook Toshiba menggunakan crouton. Drive tempat OS saya terinstal kecil, dengan hanya 3,6 GB ruang kosong. Saya ingin menginstal sagepada sistem saya tapi sagemembutuhkan 6 GB ruang bebas pada sistem.

Namun, saya selalu memasukkan kartu SD ke dalam unit. Kartu ini memiliki ruang kosong 175 GB. Apakah mungkin untuk memasang sagepada kartu SD?

Cara saya mencoba mengunduh sagedengan perintah

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

seperti yang ditemukan di sini .

Brian Fitzpatrick
sumber
Bagaimana Anda menginstal Sage? Dari paket deb? Dengan membongkar arsip? Dengan mengkompilasi dari sumber?
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles saya hanya memperbarui pertanyaan untuk menyertakan bagaimana saya menginstal sage.
Brian Fitzpatrick

Jawaban:

4

Memisahkan paket-paket Debian ke disk yang berbeda pada suatu paket berdasarkan paket itu sulit. Tidak ada dukungan untuk itu; Anda harus meminta dpkgsecara terpisah pada paket yang ingin Anda instal di lokasi non-default.

Menempatkan pohon direktori ke disk terpisah itu mudah. Untungnya bagi Anda, sejauh yang saya tahu dari pembacaan cepat, paket Sage di PPA menginstal sebagian besar file di /usr/lib/sagemath. Anda dapat dengan mudah meletakkannya di kartu SD. Katakanlah kartu SD sudah terpasang (jika ada) aktif /media/sdcard. Buat direktori di sana dan buat tautan simbolis.

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

Maka semua file yang menginstal dpkg di bawah /usr/lib/sagemathakan berakhir pada kartu SD (terlepas dari paket mana mereka berasal).

Jika Anda mencoba menggunakan Sage atau mengelola paket Sage ketika kartu SD tidak ada, Anda akan mendapatkan pesan kesalahan, dan jika Anda memasukkan kartu SD dan mengulangi tindakan, tidak akan ada salahnya dilakukan.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Terima kasih atas tipsnya. Saya telah mengikuti saran Anda dan menginstal sage. Namun, mengeluarkan $ sagepengembalian bash: /usr/bin/sage: Permission denied.
Brian Fitzpatrick
Anda memerlukan drive eksternal untuk memiliki sistem file tipe-UNIX (seperti ext4, btrfs dll) jika Anda memerlukan atribut seperti "executable" dan informasi pemilik / grup.
Ned64
@ Ned64 Kartu sd saya memiliki ext4.
Brian Fitzpatrick
@BrianFitzpatrick Saya akan mengatakan Anda perlu posixovlfs di atas vfat, tetapi karena ini adalah ext4 Anda tidak perlu memerlukan sesuatu yang istimewa. Meskipun ... bagaimana Anda memasang kartu SD? Jika Anda memiliki useropsi /etc/fstab, tambahkan execopsi.
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles saya etc/fstabmembaca# UNCONFIGURED FSTAB FOR BASE SYSTEM
Brian Fitzpatrick
4

Ini pertanyaan yang menarik. Mari kita bahas beberapa cara ini bisa dicoba.

Metode # 1: Memanipulasi lokasi selama instalasi apt-get

Menggunakan apt-get, itu tidak mungkin dilakukan. Jika Anda menginstal menggunakan .debfile, sekali lagi itu tidak mungkin. Alasannya adalah karena lokasi untuk instalasi di-codet ke dalam paket-paket ini.

Untuk memanipulasi lokasi instalasi, Anda harus mengkompilasi sagedari sumber dan memodifikasinya makefilesebelum menginstalnya. Ini akan datang dengan beban mengelola ketergantungan.

Namun, ada diskusi mengenai hal ini. Mungkin orang sudah melakukannya. Mungkin mereka entah bagaimana memanipulasi lokasi instalasi. Lihat di sini dan di sini . Jika Anda menemukan cara untuk melakukan ini, silakan tambahkan komentar.

Metode # 2: Mengubah lokasi folder / usr

Anda dapat mengubah lokasi /usrfolder itu sendiri dan mentransfernya ke kartu eksternal Anda. Biasanya ini akan berkecil hati, tetapi karena Anda mengatakan bahwa Anda selalu memasukkannya, jadi itu harus baik-baik saja.

Untuk melakukan ini, ada 2 cara:

  1. (Lebih disukai) Buat partisi di kartu eksternal Anda dan transfer semua konten di /usrfolder saat ini ke partisi itu. Kemudian, modifikasi Anda /etc/fstabuntuk memasang partisi itu sebagai /usrfolder, dan hapus /usrfolder lama sekaligus. Untuk melakukan semua ini, Anda harus mem-boot dari beberapa disc cadangan atau CD / USB langsung.

  2. Dalam metode ini juga, boot dulu dari beberapa disc cadangan atau live CD / USB dan kemudian pindahkan /usrfolder ke kartu eksternal dan kemudian buat symlink ke /usrfolder baru .

PS

Ini adalah pertanyaan yang menarik, sesuatu yang saya pikirkan belakangan ini ketika hard disk saya mulai penuh. Saya akan mencoba beberapa dari hal ini dan memperbarui jawaban saya. Komentar dipersilahkan untuk mengkritik beberapa metode ini.

MEMPERBARUI

Juga lihat jawaban @gilles. Sarannya lebih baik. Alih-alih memindahkan semua /usrfolder ke kartu eksternal, cukup pindahkan /usr/lib/sagemathke kartu eksternal karena menempati sekitar 3.1GB instalasi Anda. Jadi, di Metode # 2 , Anda bisa memindahkan folder ini /usr.

shivams
sumber
Pindah /usrke kartu SD akan membuat sistem tidak dapat digunakan ketika kartu SD tidak ada. Ini bukan ide yang bagus.
Gilles 'SO- stop being evil'
Iya. Tetapi OP telah menyebutkan bahwa kartu akan SELALU disimpan. Saya telah menyebutkan ini dalam jawaban saya.
shivams
@Gilles, saya hanya jawaban Anda. Saran Anda pasti lebih baik.
shivams