วิธีการติดตั้งแอปพลิเคชันไปยังฮาร์ดดิสก์แยกต่างหาก


10

ฉันเก่งมากกับหน้าต่างตอนนี้ฉันรู้สึกเหมือนเป็นคนงี่เง่าที่สมบูรณ์

ฉันมี SSD สำหรับ Ubuntu และต้องการติดตั้งโปรแกรมส่วนใหญ่ของฉันลงใน HDD แยกต่างหาก แต่ฉันไม่มีเงื่อนงำเลย
การค้นหาทั้งหมดที่ฉันได้ลองแล้วเปิดด้วยการติดตั้งดูอัลบูต

  • (แก้ไขแล้ว ->) ฉันกำลังประสบปัญหาในการค้นหา "/ etc /" โดยเฉพาะเพื่อแก้ไข Conky
    การค้นหาคำนี้จะปรากฏขึ้นเฉพาะกรณีที่มีคนบอกให้คุณเข้าถึงไฟล์นี้ไม่ใช่วิธีการเข้าถึง

1
ลองดูที่นี่มันจะช่วยให้คุณเริ่มต้นได้
Mitch

ฉันประทับใจที่ทุกอย่างขยายจากโฮมโฟลเดอร์ อ๊ะ หน้าเว็บที่คุณเชื่อมโยงนั้นไม่มีประโยชน์เกี่ยวกับปัญหาของฉัน แต่ตอนนี้ฉันกำลังอ่านผ่านและเรียนรู้มากดังนั้นขอบคุณ
plaguedoctor

ฉันเพิ่มแท็ก mount และ fstab; คุณสามารถทำสิ่งที่คุณอธิบายได้ด้วยการตั้งค่าระบบไฟล์เฉพาะเพื่อติดตั้งบนพาร์ติชั่นหรือไดรฟ์
belacqua

@belacqua มีวิธีอื่นอีกไหม? ฉันไม่ต้องการเฉพาะระบบไฟล์ในไดรฟ์อื่นฉันต้องการระบบไฟล์ทั้งหมดของโปรแกรมเฉพาะ ด้วยวิธีนี้ฉันสามารถจัดเรียงพวกเขาด้วยความเข้มข้นของระบบของฉันมีเกม / virtualbox / ฯลฯ ทั้งหมดใน SSD ของฉันและสิ่งต่าง ๆ เช่น libreoffice / Thunderbird ทั้งหมดบน HDD ตัวใดตัวหนึ่ง
plaguedoctor

มันไม่ง่ายเลยที่จะพิจารณาว่าการติดตั้งและไฟล์นั้นอยู่ที่ไหน - ดูคำตอบในลิงค์ที่ Mitch บอกไว้ คุณสามารถใช้สิ่งต่าง ๆ เช่น symlink เช่นกัน แต่คำแนะนำของฉันคือการเริ่มง่าย ค้นหาแอปพลิเคชันตัวอย่างถามคำถามเฉพาะที่นี่เกี่ยวกับมัน (หรือแก้ไขคำถามนี้ให้เป็นเรื่องทั่วไปน้อยลง) และไปจากที่นั่น หรือทดลองอย่างระมัดระวัง
belacqua

คำตอบ:


22

มีความแตกต่างที่สำคัญระหว่าง Windows และ GNU / Linux ใน Windows เป็นเรื่องธรรมดาที่แต่ละโปรแกรมพร้อมกับไลบรารีทั้งหมดที่ติดตั้งนั้นจะถูกติดตั้งในโฟลเดอร์แยกต่างหาก สิ่งนี้มักจะนำไปสู่การสูญเสียพื้นที่ดิสก์จำนวนมากเนื่องจากมีการติดตั้งไลบรารีหลายครั้งสำหรับแต่ละโปรแกรมที่ใช้งาน

บน Linux โปรแกรมจะถูกติดตั้งตามFilesystem Hierarchy Standard (FHS) ซึ่งหมายความว่าไลบรารีที่โปรแกรมใช้นั้นล้วน แต่ถูกติดตั้งในตำแหน่งเฉพาะทั่วไปเพื่อให้พวกเขามักจะติดตั้งเพียงครั้งเดียวไม่ว่าจะใช้โปรแกรมกี่โปรแกรมก็ตาม นอกจากนี้โปรแกรมยังสร้างขึ้นในลักษณะที่พวกเขาทั้งหมดใช้รุ่นเดียวกันของห้องสมุดบางอย่าง สิ่งนี้จะช่วยประหยัดพื้นที่ดิสก์ (และ RAM ที่รันไทม์) แต่มีข้อเสียเปรียบซึ่งไม่สามารถติดตั้งโปรแกรมบนพาร์ติชันหรือฮาร์ดดิสก์ที่แตกต่างกันได้อย่างน้อยไม่ต้องไม่มีการแก้ไขไฟล์การกำหนดค่าระบบ (เช่น /etc/ld.so.conf.d) เพื่อรวมโฟลเดอร์ไลบรารีต่าง ๆ )

เนื่องจากระบบแพคเกจ Debian ได้ถูกนำมาใช้กับ FHS ในใจเท่าที่ฉันรู้ไม่มีวิธีง่ายๆในการติดตั้งแพ็คเกจ Debian ไปยังโฟลเดอร์ที่แตกต่างจากที่พวกเขาตั้งใจจะวางไว้และทำงานโดยไม่ย้ายด้วยตนเอง และแก้ไขไฟล์ในภายหลัง นี่เป็นเพราะเส้นทางมักจะฮาร์ดโค้ดในเวลารวบรวม ดังนั้นแม้ว่าคุณจะติดตั้งแพคเกจไปยังโฟลเดอร์อื่นตัวอย่างเช่นโดยใช้dpkg --instdir=folder/ package.debบนบรรทัดคำสั่งโปรแกรมจะยังคงค้นหาการกำหนดค่าใน '/ etc' ไม่ใช่ 'folder / etc' แต่ไฟล์ config ที่มาพร้อมกับ แพคเกจของหลักสูตรถูกติดตั้งเป็น 'folder / etc' ... โปรแกรมจะไม่ถูกเพิ่มลงในเมนูเช่นกันเนื่องจากไฟล์เมนูควรอยู่ใน '/ usr / share applications' ไม่ใช่ในโฟลเดอร์ / usr / share / การใช้งาน

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

อีกตัวเลือกหนึ่งที่แนะนำบนlinuxfromscratchคือการคลายแพ็กเกจไปยังตำแหน่งที่เหมาะสมจากนั้นสร้างลิงก์สัญลักษณ์ไปยังไฟล์ที่ติดตั้งทั้งหมดในตำแหน่ง FHS ที่เกี่ยวข้อง

เนื่องจากในความคิดเห็นที่คุณอ้างอิงถึงเกม: เกมหลายเกมที่ไม่ได้ซื้อผ่าน Ubuntu Software Center มาเป็นตัวติดตั้งปฏิบัติการและแน่นอนว่าสามารถติดตั้งลงในโฟลเดอร์ใดก็ได้โดยปกติจะเป็นโฟลเดอร์ย่อยของโฮมไดเร็กตอรี่ของคุณ เกม Windows ที่กำลังรันโดยใช้ WINE สามารถติดตั้งในไดเรกทอรีใด ๆ ที่คุณต้องการ สำหรับไวน์นั้นมีตัวแปรสภาพแวดล้อมที่เรียกว่า WINEPREFIX ซึ่งคุณสามารถตั้งค่าโฟลเดอร์ WINE อิสระจำนวนมากแต่ละไฟล์รวมถึงไดรฟ์ C: เสมือนของตัวเอง อ่านหน้า WINE สำหรับข้อมูลเพิ่มเติม

แม้ว่าเกม / โปรแกรมมาเป็นแพ็คเกจ Debian คุณสามารถดูเนื้อหาแพ็คเกจได้ในโปรแกรมจัดการเก็บถาวรที่คุณโปรดปราน หากเกมนั้นจะถูกติดตั้งใน / opt คุณจะสามารถติดตั้งได้อย่างปลอดภัยในโฟลเดอร์อื่นเนื่องจาก / opt มักจะถูกใช้เป็นตำแหน่งการติดตั้งสำหรับโปรแกรมที่ไม่เป็นไปตาม FHS


ถูกต้องและสมควร upvotes O
Rinzwind

1
อย่างไรก็ตามมันยังไม่เสร็จสมบูรณ์เนื่องจากฉันไม่ได้อธิบายรายละเอียดเกี่ยวกับสิ่งที่จะต้องมีในการติดตั้งแพคเกจ ณ ตำแหน่งที่กำหนดเองซึ่งไฟล์ใดไฟล์หนึ่งจะต้องแก้ไขและตัวแปรสภาพแวดล้อมใดที่จะต้องตั้งค่า ฉันแค่กลัวว่ามันจะกลายเป็นนวนิยายขนาดกลาง ...
Soulsource

1
ฉันจะไม่รบกวน เพียงติดตั้ง / etc / ที่อื่น ใช้ 90% ของโหลดดิสก์จาก ssd
Rinzwind

5

TL; DR

  1. บูตดิสก์ USB ภายนอกด้วยอูบุนตูเวอร์ชันที่คุณเพิ่งติดตั้งและฉันคาดว่า/dev/sdaเป็น SSD และ/dev/sdbHDD ของคุณ

  2. สร้างพาร์ติชันบน HDD เพื่อเก็บแอปพลิเคชันทั้งหมดที่คุณต้องการติดตั้ง (สมมติว่า 64 GB) โดยใช้gpartedและฉันถือว่านี่เป็นพาร์ติชั่นที่สามที่คุณจะสร้างบน HDD ของคุณ ( /dev/sbd3)

  3. รันคำสั่งต่อไปนี้:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nanofstabบน/dev/sda1/etc/จะรวมที่เหมาะสมต่อไปหลังจากที่/รายการ (ไดเรกทอรีราก)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. รีบูตและทดสอบ

รุ่นยาว:

Unix / Linux / Ubuntu ถูกมองว่าเป็นระบบปฏิบัติการเซิร์ฟเวอร์ที่มีเดสก์ท็อปเป็นส่วนหลังในขณะที่ Windows คิดว่าเป็น Desktop OS และเซิร์ฟเวอร์มาเป็นภายหลัง

ดังนั้นลำดับชั้นของระบบไฟล์ลินุกซ์ช่วยให้คุณมีไดรฟ์ / พาร์ติชันจำนวนไม่ จำกัดที่จะอยู่ที่ใดก็ได้และผูกไว้ในไดรฟ์หรือพาร์ทิชันที่ถูกต้องด้วยความโปร่งใสทั้งหมดให้กับผู้ใช้ในขณะที่ระบบปฏิบัติการ Windows พาร์ติชัน ( C:ผ่านZ:เป็นA:และB:ถูกสงวนไว้สำหรับฟลอปปีดิสก์)

แอพพลิเคชั่นส่วนใหญ่ที่คุณติดตั้งด้วยตัวคุณเองได้รับการติดตั้ง/opt/และ/usr/binดังนั้นจึงควรติดตั้ง Ubuntu ตามปกติจากนั้นใช้ขั้นตอนด้านล่างที่ฉันประเมินว่า/dev/sdaเป็น SSD /dev/sdbของคุณคือ HDD ของคุณและ/dev/sddติด USB ของคุณ:

  1. บู๊ตดิสก์ USB ภายนอกด้วยอูบุนตูเวอร์ชันที่คุณเพิ่งติดตั้ง
  2. สร้างพาร์ติชันบน HDD เพื่อเก็บแอปพลิเคชันทั้งหมดที่คุณต้องการติดตั้ง (สมมติว่า 64 GB) โดยใช้gpartedและฉันถือว่านี่เป็นพาร์ติชั่นที่สามที่คุณจะสร้างบน HDD ของคุณ ( /dev/sbd3)
  3. เมาท์พาร์ติชันนั้นในไดเรกทอรีชั่วคราว:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. คัดลอกที่มีอยู่/optและ/usr/binไปที่นั่น:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanofstabบน/dev/sda1/etc/จะรวมที่เหมาะสมต่อไปหลังจากที่/รายการ (ไดเรกทอรีราก)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. รีบูตและทดสอบ

  7. หากทุกอย่างทำงานอย่างถูกต้องให้รีบูตอุปกรณ์ USB อีกครั้งและลบทุกอย่างใน/dev/sda1/optและ/dev/sda1/usr/binเพื่อเรียกคืนพื้นที่ว่างในดิสก์ที่ยังคงใช้งานอยู่โดยไดเรกทอรีล้าสมัยที่ติดตั้งแล้วที่อื่น

คำเตือน:คำสั่งสุดท้ายอาจทำให้ระบบของคุณเสียหายในกรณีที่ไม่น่าจะ/dev/sbd3ติดตั้งได้เนื่องจากความล้มเหลวของ HW


Windows มีการสนับสนุนเดียวกันในการเมานต์ไดรฟ์บนเส้นทางที่ไม่ใช่รูทเป็นเวลาประมาณหนึ่งทศวรรษแล้ว และตัวอักษรไดรฟ์เหล่านั้นก็อาจถูกแมปต่อผู้ใช้ดังนั้น H: \ อาจเป็นไดเรกทอรีบ้านต่อผู้ใช้ ไม่แปลกใจเลยที่: Windows NT line ได้รับแรงบันดาลใจจาก VMS ซึ่งเป็นระบบที่มีผู้ใช้หลายคน Unix ไม่ได้คิดว่าเป็นเซิร์ฟเวอร์ OS: AT&T ทำสวิตช์โทรศัพท์ และยูนิกซ์แตกต่างจากแรงบันดาลใจโดยเฉพาะ Multics ในการมุ่งเน้นผู้ใช้หลายคนน้อยกว่าในตอนแรก - ไม่จำเป็นต้องทำในสวิตช์โทรศัพท์
MSalters

@Malters Wow ไม่ทราบว่า AT&T โทรศัพท์เปลี่ยนบิต ... ฉันจำส่วน VMS / NT และ M $ ว่าจ้างวิศวกรหลักของ DEC $ และส่วน OS / 2 ด้วย แต่ก่อนหน้านั้นมันเป็น Single- เชลล์เดสก์ท็อปแบบมัลติทาสกิ้ผู้ใช้งานล่วงหน้า > :-) อัพเดทแล้ว!
Fabby

1
Windows ยังรองรับไดรฟ์ที่ไม่ใช่ตัวอักษร ( 1:และ!:อื่น ๆ ) เช่นเดียวกับ DOS บางรุ่น (พร้อมอักขระอื่น ๆ[:เป็นต้น) Windows ไม่จำกัด เพียง 24 พาร์ติชั่น (ค้นหาจุดเชื่อมต่อระดับเสียง) Windows เวอร์ชันก่อนหน้า (ก่อน 95) ใช้การทำงานแบบมัลติทาสก์แบบร่วมมือกันซึ่งไม่ได้ถูกจองล่วงหน้าระหว่างกระบวนการ Windows เฉพาะ DOS VMs มีการทำงานแบบหลายหน้าที่ล่วงหน้า (ในโหมดขั้นสูง)
Stephen Kitt

1
ฉันเคยทำงานที่ AT&T ในกลุ่ม UNIX มันไม่ได้เริ่มต้นชีวิตเหมือนสวิตช์โทรศัพท์
stevegt

@MSalters Unix ดูเหมือนจะไม่มีอะไรเกี่ยวข้องกับสวิตช์โทรศัพท์นอกเหนือจากที่ บริษัท ผู้รับผิดชอบพัฒนาทั้งสอง; และดูเหมือนว่าจะมีผู้ใช้หลายคนก่อนหน้านี้ในช่วงเวลาที่ชื่อประกาศเกียรติคุณ ดูคำตอบนี้ใน SE RC
Peter - Reinstate Monica

2

โซลูชันที่ฉันใช้สำหรับ Chromebook ของฉันคือไม่ติดตั้งแพ็คเกจ แต่ควรดาวน์โหลด. tar.gz

นี่อาจไม่ใช่สิ่งที่คุณกำลังมองหา แต่ถ้าคุณมีไดรฟ์ขนาดเล็กมากและต้องการแยกซอฟต์แวร์ที่สำคัญของคุณ (เดสก์ท็อป GNOME, เว็บเบราว์เซอร์) จากซอฟต์แวร์เพิ่มเติมของคุณ (GIMP, IDE, เกม) เพื่อประหยัดพื้นที่ ทำให้คอมพิวเตอร์ของคุณทำงานได้โดยไม่ต้องใช้ไดรฟ์ภายนอกนี่เป็นทางออกที่ดีที่สุดสำหรับ IMO

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