ซอฟต์แวร์ที่ติดตั้งเก็บไว้ใน Linux อยู่ที่ไหน [ซ้ำ]


11

ซ้ำได้:
ติดตั้งโปรแกรม Linux ทั่วไปที่ไหน

ฉันยังใหม่กับ Linux และฉันต้องการถามเพิ่มเติมเกี่ยวกับแพ็คเกจ

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

อย่างไรก็ตามเมื่อฉันติดตั้งแพ็คเกจใน Linux โดยใช้yumหรือapt-getฉันไม่รู้ว่าติดตั้งแพคเกจไว้ที่ไหนและเก็บไฟล์ที่จำเป็นสำหรับแอปพลิเคชันนั้นไว้ที่ไหน ฉันได้เห็นว่าการกำหนดค่าส่วนใหญ่อยู่ใน/etcไดเรกทอรี แต่ทำไมลีนุกซ์จึงจัดเก็บไฟล์ที่จำเป็นสำหรับแอปพลิเคชั่นในไดเรกทอรีต่าง ๆ ?

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


หากการแจกจ่ายของคุณใช้rpmคุณสามารถใช้rpm -q --whatprovidesเพื่อค้นหาชื่อแพ็กเกจสำหรับไฟล์เฉพาะจากนั้นrpm -q -aค้นหาไฟล์ที่ติดตั้งแพ็กเกจ
David Schwartz

ด้วยapt-getถ้าแพคเกจการติดตั้งการใช้งานถ้ามันไม่ได้ใช้งานdpkg -L PKGNAME apt-file list
ธ.ค.

คำตอบ:


15

หลายโปรแกรม (ไบนารี / สคริปต์) จบลงด้วย/binหรือ/usr/binส่วนอื่น ๆ ในไดเรกทอรีการกำหนดค่าต่างๆ (มักจะอยู่ใน / ภายใต้etc) ตามที่คุณระบุไว้แล้ว

สำหรับคำสั่งที่เฉพาะเจาะจงใด ๆ ที่คุณสามารถเช็คเอาwhereis

whereis prog_name

และจะให้ข้อมูลบางอย่างเกี่ยวกับตำแหน่งที่จะพบคำสั่งนี้ นอกจากนี้คุณยังสามารถลองที่

which prog_name

นอกจากนี้กราฟิกและคำอธิบาย / ตัวอย่างอาจมีประโยชน์เช่นกัน


1
+1 สำหรับที่ - มีประโยชน์มากสำหรับผู้ที่เพิ่งเริ่มต้นกับ linux

แต่ทำไมการกำหนดค่าที่บันทึกไว้ในไดเรกทอรีแยกต่างหาก

@KOU ฉันไม่ทราบประวัติของสิ่งนี้ แต่อาจเป็นไปได้ว่าโปรแกรมจะได้รับการอัปเดตโดยไม่ทำให้ข้อมูลการกำหนดค่าสับสนเพราะมันจะอยู่ในไดเรกทอรีอื่น วิธีนี้เวอร์ชันที่ต่างกันสามารถใช้ข้อมูลการกำหนดค่าเดียวกันได้ (สมมติว่ารูปแบบและอื่น ๆ ไม่ได้เปลี่ยนนั่นคือเข้ากันได้) ฉันแค่คิดว่าที่นี่ คุณต้องศึกษาประวัติของระบบไฟล์ Unix / Linux เพื่อหาคำตอบที่ชัดเจน
Levon

1
ฉันไม่แน่ใจเกี่ยวกับประวัติของการตัดสินใจที่จะวางไฟล์ปรับแต่งทั้งระบบ/etc/แต่การมีตำแหน่งศูนย์กลางเพียงตำแหน่งเดียวสำหรับไฟล์กำหนดค่าทำให้ง่ายต่อการสำรองข้อมูล (ลองนึกภาพสำรองไฟล์กำหนดค่าทั่วทั้งระบบใน Windows ที่พวกมันกระจัดกระจายไปทั่วทั้งระบบไฟล์และรีจิสตรี ... )
Li-aung Yip

@ Li-aungYip จุดดี
Levon

5

ใน Windows โดยเฉพาะรุ่นที่เก่ากว่ามันเป็นเรื่องปกติที่โปรแกรมต่างๆจะเก็บไฟล์การกำหนดค่าและข้อมูลไม่คงที่ในC:\Program Filesไดเรกทอรี สิ่งนี้ได้มาจากวิธีการติดตั้งและเรียกใช้โปรแกรมภายใต้ DOS ผู้ใช้คนเดียวที่ไม่ได้เชื่อมต่อกับเครือข่ายและไม่อนุญาตให้ใช้ไฟล์

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

ด้วยการถือกำเนิดของ Vista และ UAC ทำให้รำคาญในที่สุดประเพณีนี้ก็เริ่มที่จะสูญเสียแรงฉุดอย่างจริงจัง

UNIX และ Linux ซึ่งเป็นระบบที่มีผู้ใช้หลายคนจากก่อนหน้านี้มีแนวโน้มที่จะแยกไดเรกทอรีที่เรียกใช้งานได้จากไดเรกทอรีอื่นก่อนหน้านี้เนื่องจากมีความต้องการที่จะป้องกันผู้ใช้รายอื่นที่ไม่ใช่รูทจากการแก้ไขไบนารีที่ติดตั้ง นอกจากนี้ยังมีเหตุผล/usrและยัง/sbinมีพาร์ทิชันบางครั้งที่แยกต่างหาก - ผู้ดูแลระบบรักษาความปลอดภัยโดยเฉพาะอย่างยิ่งมีสติสามารถติดพาร์ทิชันที่ผู้อ่านได้อย่างเดียวและ remount พวกเขาอ่าน / เขียนเมื่อติดตั้ง / ถอนการติดตั้งความต้องการที่จะเกิดขึ้น

แพคเกจมักจะติดตั้งจากผู้จัดการแพคเกจ มีผู้จัดการแพคเกจต่าง ๆ เช่นaptitude(Debian และดิสทริบิชันที่ได้รับ), yum(Redhat และดิสทริบิวชันที่ได้รับ), pacman(อย่าลืมว่า distro นี่คือ ... ) และอื่น ๆ

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

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

เนื่องจากตัวแพ็คเกจเองไม่ใช่ไฟล์ที่ปฏิบัติการได้คุณจึงไม่จำเป็นต้องเรียกใช้ไฟล์ปฏิบัติการที่ไม่น่าเชื่อถือซึ่งคุณไม่ทราบว่ามันทำอะไร (ในที่สุด Windows ก็มาพร้อมกับการอัปเดตด้วยการกระจาย.msuแทนที่จะ.exeเป็น - แต่.msiได้ผ่านไประยะหนึ่งแล้ว ... )


1
เรื่อง Pacman ก็สำหรับArch ลินุกซ์

2

คุณสามารถรับรายการไฟล์ที่yumแพ็กเกจที่กำหนดติดตั้งโดยทำดังนี้

yum install yum-utils

จากนั้นคุณสามารถเรียกใช้เช่น:

repoquery --list yum-utils

(เห็นได้ชัดว่าแทนที่ "yum-utils" ในอันที่สองนั้นด้วยชื่อของแพ็คเกจที่มีรายชื่อไฟล์ที่คุณต้องการดู)

สำหรับapt-getคุณสามารถใช้:

dpkg -L package-name

1

ตามปกติแล้ว/usr/binจะขึ้นอยู่กับแอพพลิเคชั่นหรือไลบรารีที่คุณติดตั้ง


1

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


0

/optไดเรกทอรีที่สงวนไว้สำหรับ Windows เช่นการติดตั้งที่แต่ละแพคเกจที่มีต้นไม้ไดเรกทอรีของตัวเอง ไม่มีใครใช้มัน ฉันไม่แน่ใจว่าทำไม อาจเป็นได้ว่าการเพิ่ม/opt/PACKAGE/binลงใน$PATHทุกครั้งที่คุณติดตั้งแพคเกจนั้นน่ารำคาญเกินไป


/optดูเหมือนว่าส่วนใหญ่จะใช้โดยแพคเกจซอฟต์แวร์เชิงพาณิชย์ / ไม่ใช่ฟรีเช่น MATLAB
Li-aung Yip

บน Ubuntu 12.04 ของฉัน, Google Chrome ติดตั้งได้ใน/optแต่แล้วเพื่อให้ได้ LibreOffice 3.5 ซึ่งผมติดตั้งโดยตรงจากที่นี่

0

ซอฟต์แวร์ใน Linux นั้นแตกต่างกันเล็กน้อยในกระบวนทัศน์จาก Windows หรือ Mac ในบรรดาปฏิบัติการและไฟล์สนับสนุนทั้งหมดที่ได้รับการติดตั้งลงในโฟลเดอร์เดียว: Windows ตามปกติช่วยให้พวกเขาในแอปเปิ้ลในc:\Program Files\program name /Applications/program.appภายใต้ Linux มีโครงสร้างชุมชนมากกว่า ... ไบนารีที่มีทั่วไปใน/usr/binการกำหนดค่าทั้งระบบอยู่ในการกำหนดค่าเฉพาะของผู้ใช้มักจะเป็นที่/etc ~/.programห้องสมุดอยู่ใน/usr/libไฟล์สนับสนุน (เช่นงานศิลปะ) มักจะอยู่ใน/usr/share/programฯลฯ มีแม้กระทั่งมาตรฐานการแนะนำสิ่งที่ควรไป

โดยทั่วไปโปรแกรมจะถูกติดตั้งโดยผู้จัดการแพ็คเกจrpmและdpkg; พวกเขาจะค้นหาและดึงข้อมูลโดยอัตโนมัติ (รวมถึงการจัดการการพึ่งพา) โดยyumและaptitude/ apt-get, ตามลำดับ ในระดับเทคนิคเพิ่มเติมแพ็คเกจเป็นไฟล์บีบอัดอย่างง่าย (ฉันเชื่อว่า rpm และ deb ทั้งคู่.tar.gz) ไฟล์เก็บถาวรเหล่านี้มีกระจกของชิ้นส่วนของระบบไฟล์จากรากที่ไฟล์ไป (เช่นไฟล์ที่ควรจะติดตั้งที่/usr/bin/programจะอยู่usr/bin/programภายใต้โฟลเดอร์ที่เหมาะสมภายในแพ็คเกจ

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


0

นี่ manpage สามารถให้ข้อมูลเชิงลึกบางส่วน


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

@MaQleod หากคุณกังวลว่าลิงก์อาจไม่ถูกต้องฉันได้ทำการเชื่อมโยงเพื่อความสะดวก ฉันสามารถเขียน "man hier" ในข้อความธรรมดาเนื่องจากคุณสามารถหา manpage นี้ในการกระจาย Linux หลัก ๆ ฉันเดา
AnonymousLurker เมื่อ

2
"ดูคู่มือ" ยังไม่ได้คำตอบที่เหมาะสมมันเป็นความคิดเห็น คำตอบควรตอบคำถามจริง คำถามนี้ตอบคำถามได้อย่างไร ลำดับชั้นมีความสำคัญอย่างไร เหตุใด OP (หรือใคร ๆ ) จึงควรพิจารณาคำตอบนี้ว่าสำคัญ? คัดลอกส่วนที่เกี่ยวข้องของลิงค์ (หรือหน้าคน) และอธิบายว่าทำไมพวกเขาถึงมีความสำคัญในบริบทของคำถามจากนั้นคุณจะได้ตอบคำถามและไม่ได้แสดงความคิดเห็น
MaQleod
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.