เป็นไปได้หรือไม่ที่จะติดตั้งโปรแกรมลงในไดรฟ์ภายนอก


9

ฉันใช้ Ubuntu 14.04 ใน chromebook ของโตชิบาโดยใช้ crouton ไดรฟ์ที่ติดตั้งระบบปฏิบัติการของฉันมีขนาดเล็กโดยมีพื้นที่ว่างเพียง 3.6 GB ฉันต้องการติดตั้งsageบนระบบของฉัน แต่sageต้องการพื้นที่ว่าง 6 GB บนระบบ

อย่างไรก็ตามฉันใส่การ์ด SD ลงในเครื่องเสมอ การ์ดนี้มีพื้นที่ว่าง 175 GB สามารถติดตั้งsageบนการ์ด SD ได้หรือไม่

วิธีที่ฉันพยายามดาวน์โหลดsageด้วยคำสั่ง

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

เท่าที่พบที่นี่


คุณติดตั้ง Sage อย่างไร? จากแพคเกจ deb? โดยการแตกไฟล์เก็บถาวรหรือไม่ โดยรวบรวมจากแหล่งที่มา?
Gilles 'หยุดความชั่วร้าย' ใน

@Gilles sageฉันเพียงแค่การปรับปรุงคำถามที่จะรวมถึงวิธีการที่ฉันติดตั้ง
Brian Fitzpatrick

คำตอบ:


4

การแยกแพ็คเกจ Debian ลงบนดิสก์ที่แตกต่างกันในแต่ละแพ็คเกจนั้นเป็นเรื่องยาก ไม่มีการสนับสนุนสำหรับสิ่งนั้น คุณจะต้องเรียกใช้dpkgแยกต่างหากบนแพ็คเกจที่คุณต้องการติดตั้งในตำแหน่งที่ไม่ใช่ค่าเริ่มต้น

การวางแผนผังไดเรกทอรีลงบนดิสก์แยกเป็นเรื่องง่าย โชคดีสำหรับคุณเท่าที่ผมสามารถบอกได้จากการตรวจอย่างรวดเร็วแพคเกจ Sage /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
Brian Fitzpatrick

คุณต้องการไดรฟ์ภายนอกเพื่อให้มีระบบไฟล์ประเภท UNIX (เช่น ext4, btrfs ฯลฯ ) หากคุณต้องการแอตทริบิวต์เช่น "executable" และข้อมูลเจ้าของ / กลุ่ม
Ned64

@ Ned64 การ์ด sd ของฉันมี ext4
Brian Fitzpatrick

@BrianFitzpatrick ฉันจะบอกว่าคุณต้องการ posixovlfs บน vfat แต่เนื่องจาก ext4 นี้คุณไม่ควรต้องการอะไรเป็นพิเศษ แม้ว่า ... คุณกำลังใส่การ์ด SD อย่างไร หากคุณมีuserตัวเลือกใน/etc/fstabเพิ่มexecตัวเลือก
Gilles 'ดังนั้นหยุดความชั่วร้าย'

@Gilles My etc/fstabread# UNCONFIGURED FSTAB FOR BASE SYSTEM
Brian Fitzpatrick

4

นี่เป็นคำถามที่น่าสนใจ ให้เราคุยสองสามวิธีนี้อาจพยายาม

วิธีที่ # 1: จัดการตำแหน่งระหว่างการติดตั้ง apt-get

เมื่อใช้ apt-get จะไม่สามารถทำได้ หากคุณกำลังติดตั้งโดยใช้.debไฟล์จะไม่สามารถทำได้อีก เหตุผลก็คือตำแหน่งของการติดตั้งนั้นยากที่จะเข้ารหัสลงในแพ็คเกจเหล่านี้

เพื่อจัดการตำแหน่งการติดตั้งคุณจะต้องรวบรวมsageจากแหล่งที่มาและแก้ไขmakefileก่อนที่จะติดตั้ง สิ่งนี้จะมาพร้อมกับภาระในการจัดการการพึ่งพา

อย่างไรก็ตามมีการหารือเกี่ยวกับเรื่องนี้ บางทีผู้คนได้ทำมัน บางทีพวกเขาอาจจัดการตำแหน่งการติดตั้งอย่างใด ดูที่นี่และที่นี่ หากคุณพบวิธีทำเช่นนี้โปรดเพิ่มความคิดเห็น

วิธีที่ # 2: การเปลี่ยนตำแหน่งของโฟลเดอร์ / usr

คุณสามารถเปลี่ยนตำแหน่งของ/usrโฟลเดอร์เองและถ่ายโอนไปยังการ์ดภายนอกของคุณ โดยปกติแล้วสิ่งนี้จะหมดกำลังใจ แต่เนื่องจากคุณกำลังบอกว่าคุณใส่มันไว้เสมอดังนั้นมันควรจะดี

ในการทำเช่นนี้มี 2 วิธี:

  1. (ดีกว่า) สร้างพาร์ติชันในการ์ดภายนอกของคุณและถ่ายโอนเนื้อหาทั้งหมดใน/usrโฟลเดอร์ปัจจุบันไปยังพาร์ติชันนั้น จากนั้นปรับเปลี่ยนของคุณ/etc/fstabเพื่อเมานต์พาร์ติชันนั้นเป็น/usrโฟลเดอร์และลบ/usrโฟลเดอร์เก่าทั้งหมด ในการดำเนินการทั้งหมดนี้คุณจะต้องบูตจากแผ่นดิสก์ความช่วยเหลือหรือแผ่น CD / USB สด

  2. ในวิธีนี้เช่นกันก่อนอื่นให้บูตจากดิสก์กู้ชีพหรือ CD / USB สดจากนั้นย้าย/usrโฟลเดอร์ไปยังการ์ดภายนอกจากนั้นสร้างsymlinkไปยัง/usrโฟลเดอร์ใหม่

PS

นี่เป็นคำถามที่น่าสนใจบางอย่างที่ฉันคิดเมื่อเร็ว ๆ นี้เนื่องจากฮาร์ดดิสก์ของฉันเต็ม ฉันจะลองทำสิ่งเหล่านี้และอัปเดตคำตอบของฉัน ความคิดเห็นสามารถวิจารณ์วิธีการเหล่านี้ได้

UPDATE

ดูคำตอบ @gilles คำแนะนำของเขาดีกว่า แทนที่จะย้าย/usrโฟลเดอร์ทั้งหมดไปยังการ์ดภายนอกเพียงแค่ย้าย/usr/lib/sagemathไปที่การ์ดภายนอกเพราะมีพื้นที่ประมาณ 3.1GB ของการติดตั้งของคุณ ดังนั้นในวิธีที่ 2/usrคุณสามารถย้ายโฟลเดอร์นี้แทน


การย้าย/usrไปยังการ์ด SD จะทำให้ระบบใช้ไม่ได้เมื่อไม่มีการ์ด SD นี่ไม่ใช่ความคิดที่ดี
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

ใช่. แต่ OP ได้กล่าวว่าการ์ดจะถูกเก็บไว้เสมอ ฉันพูดถึงเรื่องนี้ในคำตอบของฉัน
shivams

@Gilles ฉันแค่คำตอบของคุณ คำแนะนำของคุณดีกว่าแน่นอน
shivams
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.