การติดตั้งแอปพลิเคชันจากแหล่งที่มา


12

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

ใน linux ฉันเข้าใจว่าอาจมีวิธีทั่วไป (ไม่ใช่แบบทั่วไป) ในการติดตั้งแอปพลิเคชันใด ๆ การติดตั้งจากแหล่งอาจจะ? มีวิธีการทีละขั้นตอนที่สามารถใช้ในการติดตั้งแอปพลิเคชันเช่นใน windows หรือไม่?

ฉันกำลังถามเพราะฉันไม่ต้องการถาม google ต่อไปยังไง? ดังนั้นฉันมีการจัดการเพื่อติดตั้งเมื่อเร็ว ๆ นี้จากแหล่ง freecad จากคู่มือนี้ และฉันคิดว่ามันจะเป็นการเริ่มต้นที่ดีมากเป็นวิธีการทั่วไปใช่ไหม?

แต่สิ่งนั้นคือที่ที่จะค้นหาแหล่งที่ถูกต้องและเมื่อแอปพลิเคชันมีวิธีการติดตั้งที่ไม่เหมือนใคร!


มีความซ้ำซ้อนของวิธีการติดตั้งจาก. tar.gz หรือไม่
Tachyons

ไม่คำถามของฉันชัดเจนฉันคิดว่าเป็นเพียงข้อมูลที่ลึกกว่านี้
กาเบรียล

ยอดเยี่ยมยอดเยี่ยม great how how howtogeek.com/105413/ …
Mohammad Reza Rezwani

คำตอบ:


14

คำแนะนำในการติดตั้งจะแตกต่างกันไปในแต่ละโปรแกรมแม้ว่าจะมีเครื่องมือที่ได้รับการยอมรับเช่น autotools (รวมถึง automake และ autoconf) และ cmake

เนื่องจากโปรแกรมสามารถมีภาษาโปรแกรมที่แตกต่างกันจึงยากที่จะให้คำสั่งทั่วไปที่เหมาะกับแพ็คเกจทั้งหมด ตัวอย่างเช่น Python มักจะมีสคริปต์ setup.py ที่โปรแกรม C มักใช้เครื่องมืออัตโนมัติหรืออย่างน้อย Makefile

ฉันมักจะเริ่มต้นด้วยการค้นหาติดตั้ง, README หรือไฟล์ที่คล้ายกัน ถ้าคุณต้องการคอมไพล์โปรแกรมจากซอร์สคุณอาจต้องการbuild-essentialแพ็คเกจที่ขึ้นอยู่กับคอมไพเลอร์และแพ็คเกจการพัฒนาทั่วไปอื่น ๆ

ขึ้นอยู่กับโปรแกรมที่คุณพยายามรวบรวมคุณอาจต้องติดตั้งการพึ่งพาอื่น ๆ ตรวจสอบ README สำหรับสิ่งนั้นหรือผลลัพธ์ของ./configureสคริปต์ (ไฟล์เรียกทำงานที่อยู่ในรูทของแหล่งข้อมูลที่คลายบีบอัด) ตัวอย่างเช่นถ้ามันบอกว่าคุณต้องการ "x11 development headers" ลองค้นหา "x11-dev" หรือ "libx11-dev" ในที่เก็บ (ในกรณีนี้มันคือlibx11-devสิ่งที่คุณกำลังมองหา)

การกระจายแหล่งที่มาที่สร้างขึ้นด้วย autoconf / automake สามารถแยกและกำหนดค่าด้วย:

tar xf foo-1.0.tar.gz
cd foo-1.0
./configure
make
sudo make install

ใช้./configure --helpสำหรับตัวเลือกที่มี โดยค่าเริ่มต้นไฟล์มักจะติดตั้ง/usr/localที่ดีอย่างสมบูรณ์ ยกเว้นว่าคุณกำลังจะจัดแพคเกจไฟล์เป็นไฟล์. deb อย่าเปลี่ยนส่วนนำหน้านี้/usrเนื่องจากอาจขัดแย้งกับระบบการจัดการแพ็กเกจ (dpkg)

makeควรเริ่มรวบรวมทุกสิ่งที่make installติดตั้งไฟล์ไปยังตำแหน่งที่กำหนด ( sudoจำเป็นสำหรับการเขียนไปยังตำแหน่งที่มีสิทธิพิเศษเช่น/usr/local) หากต้องการถอนการติดตั้งในภายหลังให้เรียกใช้จากไดเรกทอรีต้นทางsudo make uninstall(โดยมีเงื่อนไขว่าแพ็คเกจสร้างอย่างถูกต้องด้วย autoconf / automake ซึ่งเป็นความรับผิดชอบของนักพัฒนาไม่ใช่คุณผู้ใช้!

หากคุณเพียงแค่ต้องการรวบรวมแพ็คเกจจากศูนย์ซอฟต์แวร์ในคอมพิวเตอร์ของคุณให้ดำเนินการต่อ (แทนที่packageและรุ่นตาม):

sudo apt-get build-dep package
apt-get source package
cd package-1.0
dpkg-buildpackage -b -uc -us

ดูหน้าคู่มือ respecxtive สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับคำสั่ง (เช่นทำงานman dpkg-buildpackageในอาคารผู้โดยสาร) หลังจากดำเนินการคำสั่งเหล่านี้คุณจะมีไฟล์. deb ในไดเรกทอรีหลัก แนะนำให้ใช้แพ็คเกจจากที่เก็บของ Ubuntu หากเป็นไปได้ ขั้นตอนข้างต้นแสดงขึ้นเพื่อเหตุผลทางการศึกษา แต่โดยทั่วไปคุณต้องการแก้ไขไฟล์บางไฟล์ก่อนสร้างแพ็คเกจ


มีประโยชน์มากจริง ๆ ดังนั้นวิธีการทั่วไปเพียงอย่างเดียวคือการดาวน์โหลดแพคเกจ (tar ??) จากนั้นแตกไฟล์เพื่อดูเนื้อหาของมัน! ต่อมาฉันต้องถามว่าฉันกำลังแตกไฟล์แล้วจึงเรียกใช้คำสั่งทั้งหมดที่คุณกล่าวถึงข้างต้น ดังนั้นไฟล์ติดตั้งคือคำสั่งที่ฉันใช้งานทั้งหมดหรือไฟล์ไดเรกทอรีของแอพพลิเคชั่นนั้นมีเฉพาะการติดตั้งจากกึ่งกลางหรือติดตั้งจากแหล่งที่มาเพื่อให้ชัดเจนฉันแค่ต้องการติดตั้งแอปพลิเคชัน เลือกหรือ / usr ขอบคุณ
gabriel

ดูโพสต์ที่อัปเดต สารสกัดและเปลี่ยนไดเรกทอรีเป็น 99% ของทุกกรณี คุณอาจเห็นส่วนขยายที่แตกต่างกันหลังจาก. tar เช่น. gz, .bz2, .xz สิ่งเหล่านี้อ้างถึงรูปแบบการบีบอัด .zip พบได้น้อยเนื่องจากไม่สามารถจัดเก็บการอนุญาตไฟล์ได้ แต่จะเห็นได้อย่างน้อย 7-zip หมายเหตุ: คำแนะนำของฉันเป็นคำทั่วไปสำหรับ "รวบรวมจากแหล่งที่มา" พา ธ และการกำหนดค่านั้นไม่เหมือนกับของ Ubuntu Software Center
Lekensteyn

ดังนั้นไม่สำคัญว่าไดเรกทอรีใดที่ฉันทำงานด้วย. / กำหนดค่าสร้างและติดตั้งตัวอย่างเช่น id i ดาวน์โหลดและแตกไฟล์ในโฮมไดเร็กตอรี่จากนั้นฉันควรเรียกใช้คำสั่งเหล่านี้และคำสั่ง make ติดตั้งโดยอัตโนมัติจะวางไฟล์ติดตั้ง ไดเรกทอรีเฉพาะใช่มั้ย
กาเบรียล

ไม่เช่นนั้นไดเรกทอรีเฉพาะเช่น windows "Program Files" ใช่ไหม?
กาเบรียล

หลังจากแตก tarball ให้เปลี่ยนไดเรกทอรีของคุณเป็นไดเรกทอรีที่แยกออกมา ตำแหน่งที่แน่นอนไม่สำคัญคุณสามารถทำได้ในโฮมไดเร็กตอรี่ของคุณหรือ ~ / ดาวน์โหลดให้แน่ใจว่าพา ธ ไม่มีช่องว่างขณะที่มันแบ่งเครื่องมือส่วนใหญ่ ตัวอย่างเช่น~/Downloaded Sourcesเป็นความคิดที่ไม่ดีที่~/Downloaded-sourcesดีอย่างสมบูรณ์ สำหรับคำถามสุดท้ายของคุณดูaskubuntu.com/q/27213/6969
Lekensteyn

7

FreeCAD มีอยู่ใน Ubuntu Software Center ดังนั้นจึงไม่จำเป็นต้องสร้างและติดตั้งจากซอร์สโค้ด

ศูนย์ซอฟต์แวร์ Ubuntu เป็นที่แรกที่คุณควรมองหา การติดตั้งเป็นเพียงเรื่องของการคลิกปุ่ม

มีไอคอนสำหรับ Ubuntu Software Center ในแถบด้านซ้ายของหน้าจอ

หากคุณต้องการสร้างและติดตั้งโปรแกรมจากแหล่งที่มาจริงๆให้มองหาไฟล์ README หรือคำแนะนำอื่น ๆ ที่มาพร้อมกับโปรแกรม

ชุดซอฟต์แวร์จำนวนมากใช้ GNU autotools เป็นระบบ build และสามารถสร้างและติดตั้งได้ด้วยคำสั่งต่อไปนี้:

./configure
make
sudo make install

ก่อนที่จะสร้างโปรแกรมคุณจะต้องตรวจสอบว่าไลบรารีที่จำเป็นและการพึ่งพาอื่น ๆ คืออะไร (ซึ่งควรจะกล่าวถึงในเอกสารประกอบของโปรแกรมด้วย) บนpackages.ubuntu.comคุณสามารถค้นหาแพ็คเกจ Ubuntu ที่มีไลบรารีที่จำเป็น

สมมติว่าโปรแกรมต้องการไลบรารีที่เรียกว่าblahจากนั้นคุณอาจต้องติดตั้งแพคเกจlibblah-dev(ค้นหาชื่อที่ถูกต้องในหน้าแพคเกจ Ubuntu ที่ฉันกล่าวถึงข้างต้น)

sudo apt-get install libblah-dev

ฮ่า ๆ ใช่ฉันรู้ไอคอนนี้ แต่ถ้าคุณเคยสังเกตเห็นว่ามีคำอธิบายในศูนย์ซอฟต์แวร์ในแอปพลิเคชันใด ๆ ที่ระบุว่า "canonical ไม่ได้ให้การปรับปรุงที่สำคัญ" และรุ่น freecad คือ 0.8 และฉันติดตั้ง freecad v0.13.I เพียงแค่ต้องการความรู้ที่ลึกซึ้งยิ่งขึ้นในระบบ linux ไม่ใช่คำตอบที่ชี้ว่าศูนย์ซอฟต์แวร์เป็นอย่างไรขอบคุณ :-)
gabriel

ตอนนี้คุณพูดถูกแล้วและขอบคุณมากนั่นคือความรู้ที่ลึกซึ้งยิ่งขึ้นที่ฉันต้องการ!
กาเบรียล

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

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

ดังนั้นนี่คือเหตุผลว่าทำไมแอพ windows ส่วนใหญ่จึงไม่สามารถติดตั้งได้ใน linux ใช่มั้ย
กาเบรียล

2

มีเพียงสองวิธีพื้นฐานคือ

  1. ใช้ Software Center หรือเครื่องมือที่เกี่ยวข้อง (Synaptic apt-get, ฯลฯ ) นี่เป็นตัวเลือกที่ดีที่สุด การออกไปข้างนอกวิธีนี้อาจนำไปสู่ปัญหาเช่นการสรุปและปัญหาเกี่ยวกับการอัปเดตดังนั้นคุณควรทำสิ่งอื่นถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่
  2. อ่านเอกสารและใช้เพื่อติดตั้ง คุณอาจพบมันในเว็บไซต์ของโครงการหรือใน tarball หรือจากสถานที่ที่คุณได้รับไฟล์ของคุณ หรืออาจไม่มีเอกสารในกรณีนี้คุณต้องไปที่ Google หรือคาดเดา มีหลายวิธีในการติดตั้งซอฟต์แวร์ หากเกิดความสับสนให้กลับไปที่หมายเลข 1

    หากแพ็คเกจของคุณใช้มาตรฐาน./configure; make; sudo make installคุณสามารถใช้checkinstallเพื่อรับ. deb จากสิ่งที่คุณสร้างขึ้น ด้วยวิธีนี้คุณไม่ต้องเสียสละการจัดการบรรจุภัณฑ์


ตกลงฉันถามคำถามนี้เพราะฉันมีปัญหาบางอย่างกับศูนย์ซอฟต์แวร์และไฟล์. deb ตัวอย่างเช่นฉันต้องการติดตั้ง draftsight โปรแกรม CAD และเป็น 32 บิตเท่านั้นดังนั้นฉันพยายามละเว้นการขึ้นต่อกันและคำสั่งสถาปัตยกรรม แต่ไม่มีอะไรมา on.So สามารถทำการแยกไฟล์. deb และทำการติดตั้งแบบแมนนวลด้วย make และ sudo make etc ได้อย่างไรขอบคุณ
gabriel

หากไม่มี. deb สำหรับสถาปัตยกรรมของคุณคุณจะต้องติดตั้งโปรแกรมของคุณด้วยวิธีอื่น คุณสามารถ Google หาวิธีที่คนอื่นทำหรือค้นหา. .dev ด้วย arch ที่เหมาะสมหรือสร้างจากแหล่ง ดูการแก้ไขที่กำลังจะมาถึงสำหรับสิ่งที่สำคัญ
Scott Severance

ตรวจสอบการติดตั้งก่อนที่เราจะเรียกใช้คำสั่งเหล่านั้นหรือไม่และอะไรคือ. deb ปรากฏ ((ฉันต้องถามว่าคุณจะทำให้โพสต์ของคุณดูดีและจัดระเบียบได้อย่างไรด้วยคำสั่งที่เน้นและพนักงาน? a. deb แล้วตรวจสอบการติดตั้งและทำให้มันรันบน 64 บิตตัวอย่างหรือฉันผิดและโง่กับคำถามนี้
กาเบรียล

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

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

0

การติดตั้งจากแหล่งที่มานั้นยากมากที่จะรองรับ

เมื่อใดก็ตามที่เป็นไปได้ให้ติดตั้งจากศูนย์ซอฟต์แวร์ นั่นเท่ากับหน้าต่างถัดไป -> ถัดไป> เสร็จสิ้นความคิด

คุณสามารถติดตั้งสิ่งต่าง ๆ จากแหล่งข้อมูลบน windows ได้เช่นกัน นั่นไม่ได้เป็นเอกลักษณ์ของลินุกซ์ แต่เป็นเพียงแอพพลิเคชั่นที่มีเป้าหมายให้ลินุกซ์


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


นอกจากนี้เมื่อแอปพลิเคชันไม่มี. deb ในอูบุนตูของฉันจะติดตั้งจากศูนย์ซอฟต์แวร์ได้อย่างไรจากนั้นฉันก็พร้อมที่จะถามใน askubuntu.com หรือ google.gr '' 'วิธีการติดตั้งสิ่งนี้ใน Ubuntu 11.10?' '
gabriel

ใช่. แอปพลิเคชันเฉพาะจะดีกว่า พวกเขาสร้างคำตอบที่ทำซ้ำได้สำหรับผู้ใช้ที่เฉพาะเจาะจง ดังนั้นพวกเขามีประโยชน์
RobotHumans

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

0

Ubuntu เสนอวิธีการติดตั้งที่หลากหลาย

  1. ผ่านระบบบรรจุภัณฑ์ส่วนกลาง

    นี่เป็นวิธีการที่ชอบในอูบุนตู (แต่โดยส่วนตัวแล้วฉันไม่ชอบ) ซอฟต์แวร์ที่เป็นศูนย์กลาง, synaptic และความถนัดเป็นสิ่งที่สามารถตรวจสอบได้

  2. แพ็คเกจ deb แบบสแตนด์อโลน: - วิธีนี้ง่ายกว่าในกรณีของ windows เพียงดับเบิลคลิกที่ไฟล์และกดปุ่มติดตั้งเช่น: ตัวจัดการแพคเกจ Gdebi

  3. ซอฟแวร์ไบนารี: สิ่งเหล่านี้คล้ายกับการติดตั้ง windows. exe มันมีความหลากหลายของ gui สำหรับตัวติดตั้งซึ่งโดยปกติจะเป็นไฟล์. bin

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

  4. autopackage และเครื่องมือที่คล้ายกัน: - เหล่านี้เป็นผู้จัดการแพ็คเกจบุคคลที่สามที่สร้างขึ้นเพื่อสนับสนุน distros linux ต่างๆ

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

คำเตือน: - นี่เป็นเพียงการสังเกตของฉันเท่านั้นฉันเป็นมือใหม่ใน linux ดังนั้นอย่าลังเลที่จะแก้ไข / downvote หากมีอะไรผิดปกติ


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

ตัวเลือกที่ 1 นั้นดีกว่า 3 และ 4 เพราะคุณสามารถรับการอัปเดตอัตโนมัติ ตัวเลือก 2 ใช้ได้เมื่อแพ็คเกจหรือรุ่นที่คุณต้องการไม่อยู่ในที่เก็บของคุณ (ตัวเลือก 1) หลีกเลี่ยงหมายเลข 3 และ 4 หากเป็นไปได้เพราะพวกเขาไม่ได้ใช้ประโยชน์จากผลประโยชน์ที่น่าประหลาดใจทั้งหมดของการจัดการบรรจุภัณฑ์และอาจส่งผลให้เกิดความขัดแย้งได้ แม้ว่า Autopackage จะจัดการแพ็คเกจของตัวเอง แต่ก็ยังเป็นระบบแยกต่างหากและมีแนวโน้มที่จะเกิดความขัดแย้งและสิ่งต่าง ๆ ล้าสมัย และถ้าคุณไม่ใช่โปรแกรมเมอร์ให้พยายามหลีกเลี่ยงการสร้างแหล่งที่มา การจัดการแพ็คเกจเป็นสิ่งที่ยอดเยี่ยม!
Scott Severance

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