ฉันจะรู้ได้อย่างไรว่าจะวางสิ่งต่าง ๆ ใน linux ได้อย่างไร?


58

การติดตั้งบางอย่างใน windows นั้นเพียงแค่คลิกปุ่ม แต่ทุกครั้งที่ฉันพยายามติดตั้งบางอย่างใน linux ซึ่งไม่พบใน APT ฉันสับสนมาก

คุณดาวน์โหลดโฟลเดอร์ซิปแล้วอะไรนะ หากคุณโชคดีมี README อ้างอิงเอกสารบางอย่างซึ่งอาจช่วยคุณถ้าคุณโชคดี

เคล็ดลับเวทมนต์คืออะไรเมื่อ "ติดตั้ง" ส่วนขยายและแอปพลิเคชันซึ่งไม่พบใน APT

ฉันรัก linux แต่ปัญหานี้หลอกหลอนฉันทุกวัน



8
offtopic แต่เคล็ดลับง่ายๆคือการไม่ติดตั้งอะไรนอกระบบการจัดการบรรจุภัณฑ์
Let_Me_Be

1
หากไม่ใช่จาก APT อาจไม่ใช่สิ่งที่คุณสามารถติดตั้งได้คุณจะต้องรวบรวมและติดตั้งด้วยตัวเอง แล้วมันจะเริ่มสับสนกับแพ็คเกจที่ใช้ APT มันง่ายที่สุดที่จะหา APT / .debs สำหรับสิ่งที่คุณต้องการเท่าที่คุณจะทำได้
เปียห์

2
@Rup Plus หากซอฟต์แวร์ไม่มีแพ็คเกจ deb คุณอาจไม่ควรติดตั้งเพราะอาจเป็นสิ่งที่คัดค้านหรือมีเลือดออกหรือไม่สามารถใช้ร่วมกับ apt-based distributions ได้
Let_Me_Be

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

คำตอบ:


32

ถ้ามันเป็นซอฟต์แวร์ที่เชื่อฟังเป็นระบบแฟ้มลำดับชั้นมาตรฐานกว่าที่คุณควรวางไว้ใน/usr/localและไดเรกทอรีที่เหมาะสม (เช่นbin, lib, share, ... )

ควรวางซอฟต์แวร์อื่นไว้ในไดเรกทอรีของตัวเองด้าน/optล่าง จากนั้นตั้งค่าของPATHตัวแปรที่จะรวมbinไดเรกทอรีหรือสิ่งที่ไดเรกทอรีซึ่งถือ executables /usr/local/binหรือสร้างการเชื่อมโยงสัญลักษณ์


1
คำตอบที่ดีจริง ๆ แต่ไม่ควรทำทุกวัน
phunehehe

1
@phunehehe - คุณต้องทำมันทุกวัน?
Rob

3
ไม่ฉันหมายถึง OP ของ "ปัญหานี้หลอกหลอนฉันทุกวัน"
phunehehe

1
นอกจากนี้ยังมีการเชื่อมโยงไปยังวิกิพีเดีย FHS อ่านอันนี้เกินไป: pathname.com/fhs/pub/fhs-2.3.html อ่านหัวข้อที่ระบุว่า "วัตถุประสงค์"
yasouser

27

ไม่มีคำตอบง่ายๆสำหรับคำถามนี้ แต่ฉันสามารถให้รายละเอียดทั่วไปเกี่ยวกับการทำงาน:

ซอฟต์แวร์ Linux ส่วนใหญ่จัดทำโดยผู้แต่ง ("upstream") ในรูปแบบซอร์สโค้ด สิ่งนี้อนุญาตให้ทุกคนที่มีคอมไพเลอร์สำหรับแพลตฟอร์มและการกำหนดค่าระบบของพวกเขาเพื่อดาวน์โหลดซอร์สโค้ดและรวบรวมมันเอง น่าเสียดายสำหรับคุณหลาย ๆ โปรแกรมพึ่งพาฟังก์ชั่นที่มีให้โดยโปรแกรมอื่นและไลบรารีซอฟต์แวร์ (การอ้างอิง)

ซอฟต์แวร์ Windows มักจะมาในรูปแบบที่คอมไพล์แล้ว นั่นหมายความว่ามีไฟล์เรียกทำงานทั่วไปหนึ่งไฟล์สำหรับคอมพิวเตอร์ Windows ทั้งหมดและการอ้างอิงมักมาพร้อมกับไฟล์ในแพ็คเกจการติดตั้ง

ลีนุกซ์ลีนุกซ์ใช้ซอร์สโค้ด, คอมไพล์มันให้คุณแล้วนำเสนอเป็นแพ็คเกจด้วย. แพ็คเกจนี้ไม่รวมถึงการพึ่งพา แต่มันหมายถึงพวกเขาและบังคับให้ระบบแพคเกจติดตั้งพวกเขาเช่นกัน

ถ้าไม่มีแพ็คเกจที่คอมไพล์แล้วคุณสามารถดาวน์โหลดซอร์สโค้ดและคอมไพล์มันเองได้เสมอ ส่วนใหญ่เวลาต่อไปนี้จะใช้งานได้:

./configure
make
(sudo) make install (or sudo checkinstall)

บรรทัด. / config ตั้งค่าสเตจสำหรับกระบวนการรวบรวม (และคายข้อผิดพลาดออกหากไม่ได้ขึ้นกับการพึ่งพา) สายการผลิตจะดำเนินการ Makefile สคริปต์ที่รวบรวมทุกส่วนของโปรแกรม

ตามเนื้อผ้าคุณจะใช้ทำการติดตั้งแล้วติดตั้งซอฟต์แวร์ สิ่งนี้มักจะทำให้ executables ใน / usr / local / bin

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

โปรดทราบว่ามี sytems การรวบรวมอื่น ๆ จำนวนหนึ่งเช่น cmake และซอฟต์แวร์บางตัวมาพร้อมคอมไพล์แล้ว แต่ไม่ได้แพ็กเกจ (ในกรณีนี้คุณสามารถเริ่มได้จากโฟลเดอร์ที่คลายซิป) และซอฟต์แวร์บางตัวมาเป็นชุดของสคริปต์ที่คุณต้องใช้ด้วยตัวเอง รหัสสดจาก SVN บางครั้งมาโดยไม่มีการกำหนดค่าสคริปต์ดังนั้นคุณต้องเรียกใช้ autoconf toolchain ... ฯลฯ ฯลฯ คุณจะเห็นว่ามีข้อยกเว้นมากมายในกฎ แต่ด้วยประสบการณ์เล็กน้อยคุณจะสามารถ บอกว่าจะทำอย่างไรกับการดาวน์โหลดลึกลับเหล่านั้นส่วนใหญ่ Configure-Make-Checkinstall เป็นการเริ่มต้นที่ดี

PS ใช้วันหยุดสุดสัปดาห์หรือสองวันเพื่อเรียนรู้วิธีการตั้งโปรแกรมด้วยตัวเองและสิ่งต่างๆจะชัดเจนมาก :-)

PPS คุณอาจสงสัยว่าทำไมผู้เขียนซอฟต์แวร์ลีนุกซ์ไม่เพียง แต่จัดเตรียมแพ็คเกจไว้ล่วงหน้าแทนที่จะเป็นซอร์สโค้ด บางครั้งพวกเขาก็ทำ แต่แพลทฟอร์มที่แตกต่างกันและดิสทริบิวชั่นลีนุกซ์ทุกตัวมีรูปแบบแพ็คเกจของตัวเองและกฎของระบบไฟล์ดังนั้นในฐานะนักพัฒนา แพ็คเกจของ Ubuntu นั้นหาได้ง่ายที่สุด - คุณควรตรวจสอบว่า PPA คืออะไรและทำงานอย่างไร!


1
"PS. ใช้เวลาหนึ่งหรือสองวันเพื่อเรียนรู้วิธีการตั้งโปรแกรมด้วยตัวเองและสิ่งต่างๆจะกลายเป็นชัดเจน :-)" คำแนะนำที่ไม่ดีในคำตอบที่ยอดเยี่ยมเป็นอย่างอื่น การขอให้ผู้คนเขียนโปรแกรมเพื่อทำความเข้าใจกับ linux นั้นก็เหมือนกับผู้โดยสารของสายการบินเพื่อซ่อมเครื่องบิน
apoorv020

แทนการเขียนโปรแกรมเพียงแค่เปลี่ยนเป็นการรวบรวม linux ของคุณเองเช่น LFS (linux from scratch) linuxfromscratch.org
jsolarski

@apoorv นำจุด :)
sebastian_k

4

คุณควรตรวจสอบcheckinstall แทน

./configure
make
sudo make install

คุณทำ

./configure
make
sudo make checkinstall

และคุณจะสามารถจัดการแพ็คเกจนั้นได้ราวกับว่าคุณได้ติดตั้งมันผ่าน apt


อ๊ะเพิ่งสังเกตเห็นว่า @sebastian_k พูดถึง checkinstall แล้ว ... ดีมาก!
mgalgs

1

มีเหตุผลที่สมเหตุสมผลเหตุผลที่ทำให้เกิดความสับสน (นอกจากนี้ยังมีเหตุผลประดิษฐ์ที่น่ารำคาญ) ...

Unix มีประวัติว่าเป็นผู้ใช้หลายคนและผู้ใช้ส่วนใหญ่ไม่สามารถเข้าถึงการติดตั้งแอพนอกพื้นที่ที่พวกเขาได้รับสิทธิ์การเข้าถึงเฉพาะ

ดังนั้นทฤษฎีก็คือคุณจะสร้างบางสิ่งในโฮมไดเร็กตอรี่ของคุณ, จากนั้นก็คัดลอกไปยังพื้นที่ที่คุณควบคุม (พื้นที่โปรเจ็กต์ของคุณเอง, หรือพื้นที่แชร์)

พีซี Windows โดยทั่วไปคือระบบผู้ใช้เดี่ยวและไม่มีข้อ จำกัด นี้ทุกอย่างไปใน Program Files ไม่ว่าจะเกิดอะไรขึ้น

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

ระบบเริ่มต้นนั้นแย่ยิ่งกว่าเดิม

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