จะตัดระบบ Linux ได้อย่างไร


24

ฉันกำลังสร้างดิสทริบิวเตอร์ลินุกซ์และฉันได้ปลดอาวุธไบนารี ฯลฯ ระบบจะไม่ใช้ GCC หรือเครื่องมือในการพัฒนาเนื่องจากมันจะเป็นคีออสก์ Chrome ...

ฉันสงสัยว่ามีวิธีที่ฉันสามารถลบไฟล์ระบบที่ไม่ได้ใช้ทั้งหมด (เช่นไบนารี ฯลฯ ) โดยดูไฟล์ / ไลบรารีใดบ้างที่ใช้ในระหว่างรันไทม์? อาจจะใช้วิธีการอื่นมากกว่า แต่มีวิธีการทำสิ่งนี้หรือไม่


3
อันที่จริงคุณอยู่ในตำแหน่งที่ถูกต้องในเวลานี้ :)
phunehehe

2
ตอนนี้ฉันอาจถามว่าทำไมจึงมีเว็บไซต์ Stack Exchange ที่ใช้ Ubuntu แยกต่างหาก ฉันคิดว่าพวกเขาควรรวมเข้ากับเว็บไซต์นี้เพราะ AFAICT, Ubuntu ควรได้รับการพิจารณาว่าเป็น Linux / Unix แต่ฉันก็ไม่แน่ใจเหมือนกัน;) ถ้าไม่ให้เตรียมพร้อมสำหรับ GentooOverflow และ FedoraOverflow!
เครื่องปั่น

3
@Blender: การผสานนี้ได้รับการพิจารณาและปฏิเสธ ดูใน Meta ของทั้งสองไซต์เพื่อดูประวัติ
Gilles 'หยุดชั่วร้าย'

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

2
ความเข้าใจของฉันคือ AskUbuntu คือ Unix และ Linux เช่นเดียวกับ Unix และ Linux คือ SuperUser: ถ้าเป็นคำถามเฉพาะของ ubuntu มันจะไปที่ AU; ถ้ามันเป็นอย่างอื่นn x-ish, มันจะไปที่นี่; ไม่เช่นนั้นจะไปที่ SU หรือ ServerFault
intuited

คำตอบ:


11

มีโปรแกรมเช่นBootchartที่สามารถใช้แสดงโปรแกรมที่คุณรันในระหว่างการเริ่มต้น - คุณอาจจะยังคงทำงานต่อไปหลังจากการบู๊ตเพื่อดูว่ามีการเรียกใช้อะไรในระหว่างเซสชัน

ทางออกที่ดีกว่าอาจใช้เครื่องมือสร้างใหม่

มีเครื่องมือสร้างใหม่สำหรับFedora , Ubuntuและอื่น ๆ คุณสามารถใช้สิ่งเหล่านี้เพื่อปรับแต่งการกระจาย

คุณอาจต้องการที่จะดูเล็ก ๆ คอลินุกซ์ มีผู้ชายคนหนึ่งที่ทำงานกับสคริปต์ remasterสำหรับสิ่งนั้นเช่นกัน


เมื่อฉันกลับถึงบ้านฉันจะลอง Bootchart อย่างแน่นอน ฉันโกหก แต่เป็นระบบเพิ่งเสร็จสิ้นการรวบรวมคืนที่ผ่านมาดังนั้นฉันจะต้องจริงๆได้รับมันทำงานในไม่กี่วันข้างหน้า ฉันพบ TinyX (ซึ่งเป็นสิ่งที่ฉันกำลังมองหาเพราะฉันไม่สามารถหาโมดูล XOrg ที่ฉันต้องการได้) แต่เว็บไซต์ไม่ทำงาน ... โอ้ดี แต่ขอบคุณมาก!
เครื่องปั่น

Bootchart มันเป็น! ฉันรวบรวมมันวิ่งแล้วมันให้ผลลัพธ์ที่มีประโยชน์อย่างมากกับฉัน ฉันยังไม่ได้ตัดระบบเพียงเพราะฉันจะใช้ตัวจัดการแพคเกจตามแหล่งที่มา (Gentoo?) แต่ฉันจะใช้สิ่งนี้อย่างแน่นอน ขอบคุณ!
เครื่องปั่น

6

ท่ามกลางสิ่งอื่น ๆ คุณต้องการลบทุกสิ่งที่คุณไม่ต้องการ ตรวจสอบให้แน่ใจว่าระบบไฟล์atimeเปิดใช้งานอย่างสมบูรณ์ /etc/fstabคุณสามารถตั้งค่านี้ใน เริ่มต้นปัจจุบันแต่คุณต้องการที่จะใช้เพียงแค่relatime atimeทุกครั้งที่มีการเข้าถึงไฟล์การประทับเวลาจะได้รับการอัปเดต จากนั้นทำการใช้งานเป็นเวลาสองสามวันเพื่อดูว่าไฟล์ใดไม่เคยมีการอัปเดต atime ฉันจะทำทั้งหมดนี้ใน VM และอย่างระมัดระวังเพราะฉันคิดว่ามีไฟล์ไม่กี่ไฟล์ที่อ่านเมื่อระบบอยู่ในโหมดอ่านอย่างเดียว หมายเหตุ: ตั้งค่าเป็นnoatimeเมื่อคุณพร้อมสำหรับการผลิตมิฉะนั้นคุณจะเขียนทุกครั้งที่คุณอ่าน สิ่งนี้ไม่มีประสิทธิภาพ

แม้ว่าจะซื่อสัตย์ฉันจะดูDamn Small Linux ; คุณจำเป็นต้องมีขนาดเล็กกว่านั้นจริงหรือ สร้างของคุณเองตาม distro และเพียงแค่ลบตัวจัดการหน้าต่างและโปรแกรมเพิ่มเติมบางอย่าง ปล่อยให้เครื่องมือบรรทัดคำสั่งทั้งหมดด้วยวิธีนี้หากคุณจำเป็นต้องซ่อมแซมหรือโหลดซ้ำคุณมีเชลล์


ขอบคุณ! ฉันพยายามทำด้วยตัวเองเนื่องจากฉันไม่เคยได้รับระบบ LFS ที่ใช้งานได้อย่างเต็มที่ แต่ฉันเคยเล่นกับ DLS มาก่อน ฉันพยายามสร้างโคลน ChromeOS ที่ไม่ได้ทำกับ SuSEStudio (อันหนึ่งจาก chromium.org คือ) และเล็กกว่า 600MB นิดหน่อย) เป้าหมายของฉันคือ> 50MB เนื่องจาก DSL รวมซอฟต์แวร์อื่นอีกมากมาย แต่ฉันแค่ติดตั้ง OpenBox, Chrome และ Thunar ที่สร้างขึ้นเอง (และอื่น ๆ อีกมากมายแน่นอน) ขอบคุณ!
เครื่องปั่น

5

สมมติว่าคุณใช้ Debian อยู่หรือเป็นตราสารอนุพันธ์

หลังจากที่บางวันของการ (หนัก) popularity-contestการใช้งานวิ่ง มันจะแสดงแพ็คเกจที่ไม่ได้ใช้ที่เก่าที่สุดที่ด้านล่าง ถอนการติดตั้งเหล่านั้น แต่ด้วยสายตาที่คอยจับตาดูว่ามีสิ่งใดบ้างหรือไม่ขึ้นอยู่กับการติดตั้ง

นี่เป็นตัวอย่างของผลลัพธ์:

1294222606 1292570417 vlc /usr/lib/vlc/plugins/gui/libqt4_plugin.so
1294222606 1292570109 xulrunner-1.9.2 /usr/share/xulrunner-1.9.2/chrome/classic.jar
1294222606 1292507839 ttf-dejavu-extra /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
1294222606 1292507459 x11-utils /usr/bin/xprop

colums เฉลี่ยatime , ctime , แพคเกจชื่อและไฟล์เข้าถึงได้


1

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

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

ldd /bin/* /usr/bin/* |sed -n 's/^.* => \(.*\) (.*)$/\1/p' |sort |uniq -c

0

คุณเริ่มจากตรงไหน คุณกำลังลอก distro ที่มีอยู่หรือไม่ มีเหตุผลที่คุณต้องเริ่มต้นด้วย distro ใด ๆ ?

คุณอาจต้องการพิจารณาสร้างระบบฝังตัวตั้งแต่เริ่มต้นและโหลดเฉพาะสิ่งที่คุณรู้ว่าคุณต้องการ


ฉันกำลังสร้างการติดตั้ง LFS + Xorg, Python และ Google Chrome ไม่มีอะไรแฟนซี
เครื่องปั่น

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