วิธีติดตั้งไฟล์ tar.gz บน Linux อย่างแท้จริง - วิธีจัดการแอปพลิเคชั่นที่ติดตั้งด้วยตนเอง (หรือสแตนด์อโลน)


12

ฉันเห็นลิงก์เหล่านี้ทั้งหมดอธิบายแพคเกจและ. debbs ... ฉันรู้ว่า ... และมี kludges มากมายที่จะทำให้ไฟล์ tar.gz ทำงาน (เช่น: อัปเดตทางเลือกสำหรับ Javaหรือวางไฟล์ด้วยตนเองใน / usr / local / bin (หรือที่อื่นซึ่งฉันได้อนุมานจากการค้นหาหลายชั่วโมง)) หากแพ็กเกจฉลาดมากแอพพลิเคชั่น Linux บางตัวจึงมีอยู่ในแพ็คเกจหรือ. deb / rpms

ฉันกำลังพูดในฐานะผู้ใช้ใหม่ ฉันรู้ว่าผู้เชี่ยวชาญน่าจะรู้ดีกว่า (ฉันคิดว่าฉันสามารถดาวน์โหลด Eclipse เวอร์ชั่นที่คอมไพล์ได้?) เช่นเดียวกับ netbeans และ chrome .sheclipse เป็นไดเรคทอรีที่สามารถเปิดใช้งานได้ Java ต้องการupdate-alternativesธุรกิจนี้แต่ฉันไม่คิดว่ามันจะลงทะเบียนเองใน "รายการโปรแกรม" ของ Ubuntu / Debian (เพียงแค่ลงทะเบียนเป็นคำสั่ง) และอื่น ๆ บางครั้งมีให้บริการในที่เก็บข้อมูล แต่ฉันสับสนว่าทำไมหน้าดาวน์โหลดไม่มีคำอธิบายที่เหมาะสม)

เรื่องสั้นสั้น ๆ : หากการดาวน์โหลดหรือรวบรวมไฟล์ tar.gz ฉันจะลงทะเบียนกับระบบได้อย่างไร? update-alternativesดูเหมือนว่าจะลงทะเบียนเป็นคำสั่งใน Ubuntu มันไม่ปรากฏในแถบค้นหา ใน Debian ฉันสามารถเพิ่มทางลัดไปยังตัวเรียกใช้ GNOME 2 ได้ด้วยตนเอง แต่ฉันควรทำยังไงดี?


แก้ไข:

ดังนั้นหลังจากเล่นไปเรื่อย ๆ ด้วยโซลูชันใหม่ฉันสามารถจัดเรียง "แก้ไขปัญหา" ของฉันได้:

ฉันจะจัดการโปรแกรมที่ติดตั้งด้วยตนเองได้อย่างไร Firefox และ Eclipse เป็นเพียงตัวอย่างของฉันจนถึงตอนนี้ (ฉันไม่ได้ดาวน์โหลดอะไรมากมาย) พวกเขาทั้งสองสามารถวิ่งออกจากกล่องซึ่งฉันชอบ ยกเว้นฉันควรติดตั้งที่ใด ฉันเห็น Eclipse มีคำแนะนำเป็นของตัวเอง แต่ฉันอยากจะทำ "แพ็คเกจแบบแมนนวล" ของฉันทั้งหมดด้วยวิธีเดียวกัน

  1. /usr/local/binหลังจากการวิจัยบางอย่างผมตัดสินใจที่จะใส่ลงไปในโปรแกรมเหล่านี้
  2. จากวิธีการติดตั้งคราสฉันคิดที่จะได้รับบางสิ่งบางอย่างที่จะแสดงขึ้นในตัวผมต้องวางแฟ้มในxxx.desktop ~/.local/share/applications/ชื่อไฟล์ .desktop นี้มีความสำคัญหรือไม่
  3. สิ่งที่มีเครื่องมืออัตโนมัติ (ฉันมองหาconfigureหรือunix/configureไฟล์) จะทำงานได้ดี บางประเด็นการวิจัยที่ฉันควรใช้CheckInstallเพื่อติดตามสิ่งเหล่านี้
  4. ฉันควรใช้update-alternativesเพื่อลงทะเบียนเส้นทาง จากนี้ด้าย Javaดูเหมือนว่าฉันจะสร้างการเชื่อมโยงจากไป/usr/bin/java /usr/lib/jvm/jdk...เมื่อฉันติดตั้งแอปพลิเคชัน "สแตนด์อโลน" เหล่านี้เช่น Eclipse หรือ Firefox ฉันควรลิงก์ไปยังทุกครั้ง/usr/bin/[app]หรือไม่ และถ้าการยืนยัน 1 เป็นจริงฉันจะทำสิ่งที่ชอบsudo update-alternatives --install "/usr/bin/[app]" "[app]" "/usr/local/bin/[app]" 1

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


1
ทำไมไม่ลองหา*.debแพ็คเกจแทนล่ะ
m0nhawk

@ m0nhawk ไม่พบไฟล์. deb เสมอหรือ เช่นเดียวกับในหน้าดาวน์โหลดของ Eclipse มันเป็นแค่ tar.gz นอกจากว่าฉันหายไปหมดแล้ว
Raekye

1
สำหรับ Eclipse มีแพ็กเกจสำหรับ Debian ( สำหรับ Ubuntu ) อยู่แน่นอน และผมคิดว่าวิธีที่ดีที่สุดที่จะจัดการกับ*.tar.gzซอฟแวร์คือการสร้างแพคเกจที่เหมาะสม: *.rpm, *.debฯลฯ
m0nhawk

1
คุณต้องการ.desktopไฟล์เพื่อให้มีบางสิ่งปรากฏขึ้นในเมนู update-alternativesทำงานเพื่อจัดลำดับความสำคัญของคุณPATHเท่านั้น
tripleee

1
คำถามของคุณยังเกี่ยวกับ "ฉันควรทำอย่างไรเพื่อลงทะเบียนซอฟต์แวร์ใหม่ด้วย ______" โดยที่ _____ เป็นสภาพแวดล้อมเดสก์ท็อปเฉพาะและไม่ใช่ "ฉันควรทำอย่างไร WRT linux" โดยทั่วไป นอกจากนี้บางทีความไม่รู้โดยนัยเกี่ยวกับตัวแปรสภาพแวดล้อม $ PATH?
goldilocks

คำตอบ:


15

ทำไมจึงไม่มีแอพจำนวนมากในแพ็คเกจ repos

อาจมีสาเหตุหลายประการ:

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

วิธีการติดตั้ง tarball?

tarball (.tar.gz แพ็คเกจ) อาจมีอะไรก็ได้ จนกว่าคุณจะเปิดมันจริง ๆ คุณไม่มีวิธีคิดว่าจะติดตั้งมันได้อย่างไร อีกครั้งแต่ละแพ็คเกจควรเข้าหาที่แตกต่างกัน

มองหาเอกสาร! แพคเกจที่เหมาะสม (semi-) ใด ๆ จะให้คำแนะนำเกี่ยวกับวิธีการติดตั้งแอปพลิเคชัน รีเฟล็กซ์แรกของคุณควรมองหาไฟล์ข้อความที่ชื่อว่า README, INSTALL หรืออะไรทำนองนี้ การตรวจสอบเว็บไซต์ของผู้เผยแพร่อาจช่วยได้เช่นกัน

เนื่องจากทุกแพ็คเกจนั้นแตกต่างกันจึงไม่มีวิธีที่เป็นสากลในการประมวลผล tarball ทั้งหมดในโลก มันเหมือนกับขอสูตรที่ใช้กับส่วนผสมทั้งหมดในโลก ไม่ได้เกิดขึ้น.

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

กรณีพิเศษ: Autotools

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

ในโลกของลินุกซ์ / Open Source Software / ฟรี, สร้างระบบใดระบบหนึ่งมีการยอมรับในวงกว้าง: GNU Autotools หากคุณเคยจัดการกับแพ็กเกจซอร์ส (เปิด n) มีโอกาสดีที่คุณจะใช้ Autotools

ในกรณีที่ง่ายที่สุดต่อไปนี้เป็นวิธีติดตั้งแอปที่บรรจุด้วยเครื่องมืออัตโนมัติ:

  • ./configure: สคริปต์ที่จะสร้าง Makefiles ที่สอดคล้องกับระบบของคุณ (มันมักจะตรวจสอบความพร้อมในการพึ่งพา)
  • make: การคอมไพล์ซอร์สโค้ดตาม Makefiles ที่สร้างขึ้นก่อนหน้านี้
  • make install: คัดลอกไบนารีไปยังตำแหน่งที่เหมาะสมสร้าง symlink และขั้นตอนอื่น ๆ ที่ผู้พัฒนากำหนดไว้

หมายเหตุ

  • configureสคริปต์มักจะมีตัวเลือกมากมายเช่นคอมไพเลอร์ที่จะใช้หรือวิธีกำหนดไดเรกทอรีเป้าหมาย ./configure --helpหากคุณต้องการความยืดหยุ่นก็คุ้มค่าดูที่
  • แม้ว่าคุณจะแน่ใจว่ามัน Autotools และคุณจะรู้ว่าจริงๆดีเสมอเริ่มต้นจากการอ่านเอกสาร (README ติดตั้ง, ... )

ตอบการอัพเดตในคำถาม

สิ่งที่คุณขอไม่มีคำตอบที่ชัดเจน ทุกคนที่นี่อาจจะมีความเห็นเกี่ยวกับสิ่งที่ถือว่าเป็น "การปฏิบัติที่ดี" แต่ในตอนท้ายของวันที่เดียวที่คุณสามารถค้นหาสิ่งที่เหมาะกับคุณ หากมีคำตอบง่าย ๆ คุณจะไม่ถามคำถาม distro ของคุณจะตอบให้คุณ

นี่เป็นการกล่าวว่านี่เป็นข้อสังเกตส่วนตัวบางประการ

  • ในระบบของฉันฉันจอง/usr/local/binแพ็คเกจที่ติดตั้งโดยผู้จัดการแพ็คเกจ ทุกอย่างที่ฉันรวบรวม / /optติดตั้งด้วยมือไปใน นี่เป็นรายละเอียด แต่ช่วยหลีกเลี่ยงอาการปวดหัวครั้งสำคัญเมื่อต้องรับมือกับโปรแกรมเดียวกันหลายเวอร์ชัน

  • xxx.desktopและปัญหา GUI โดยทั่วไปนั้นขึ้นอยู่กับสภาพแวดล้อมเดสก์ท็อปที่คุณใช้ ถ้ามันใช้งานได้กับระบบของคุณ แต่มันไม่สามารถนำไปใช้กับสภาพแวดล้อมทั้งหมดที่มีใน Unix ได้

  • /usr/local/binมีข้อได้เปรียบของการอยู่ในPATHของคุณอยู่แล้ว หากคุณต้องการใช้ไดเรกทอรีอื่น (เหมือน/optที่ฉันแนะนำ) ให้แน่ใจว่าได้รวมไว้ใน PATH ของคุณ หากคุณไม่ทราบวิธีการใช้งานให้เปิดเทอร์มินัลแล้วดำเนินการดังต่อไปนี้ในเทอร์มินัล (ไม่ใช่วิธีที่สวยที่สุดในการทำ แต่ไม่ทราบอะไรเกี่ยวกับระบบของคุณฉันไม่สามารถแนะนำอะไรได้อีก)echo 'export PATH=$PATH:/opt' >> ~/.bashrc


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

ยินดีต้อนรับฉันหวังว่าจะช่วย :) ฉันแก้ไขคำตอบของฉันเพื่อแก้ไขการปรับปรุงของคุณ โปรดทราบว่าไม่มี "One True Way" ในการทำสิ่งต่าง ๆ (ยกเว้นถ้าคุณเป็นemacsผู้ใช้) คุณต้องผ่านการทดลองและข้อผิดพลาดเพื่อเรียนรู้กับเวลาผลประโยชน์และข้อเสียของแต่ละวิธีที่แตกต่างกัน
rahmu

ขอบคุณสำหรับการอัพเดท! ไม่แน่นอน ฉันเดาว่าxxx.desktopโดยทั่วไปแล้วใช้ได้กับ GNome คุณรู้อะไรเกี่ยวกับการใช้update-alternativesเพื่อกำหนดเส้นทาง
Raekye

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

คำตอบที่ดี สิ่งหนึ่งที่บ่อยครั้งที่จำเป็น (หรือที่ต้องการอย่างน้อย) คือทำการติดตั้ง sudo เป็นขั้นตอนสุดท้าย (ด้วยแพ็คเกจที่คุณเชื่อถือ) ที่ให้กระบวนการที่จำเป็นต้องใช้เพื่อวางสิ่งต่าง ๆ ในไดเรกทอรีระบบที่ผู้ใช้ของคุณไม่ได้เป็นเจ้าของ (เช่น / usr / bin)
โจ

8

ผมคิดว่าคุณต้องชี้แจงกับตัวเองสิ่งที่คุณต้องการ "สมัคร" มันมี

เพื่ออธิบาย - และฉันไม่ได้พยายามที่จะฉลาด - แน่นอน "ลินุกซ์" คือเคอร์เนลและเคอร์เนลที่ไม่รู้และไม่มีความสนใจในซอฟต์แวร์ userspace ใด ๆ ในระบบของคุณเกิน init แล้วเรากำลังพูดถึงอะไรที่นี่?

คุณพูดถึง distros ที่แตกต่างกันจำนวนหนึ่ง บางครั้งฉันสร้างซอฟต์แวร์จากแหล่งที่มาแม้ว่าจะมีอยู่ในที่เก็บเพราะฉันต้องการตั้งค่าตัวเลือกการกำหนดค่าบางอย่างที่ไม่ได้ตั้งค่าในไบนารี distro ปัญหาเดียวที่ฉันมีคือถ้าแพคเกจนั้นเป็นสิ่งที่จำเป็นสำหรับสิ่งอื่นฉันต้องลงทะเบียนกับระบบบรรจุภัณฑ์เพื่อหลีกเลี่ยงการติดตั้ง distro โดยไม่ตั้งใจจากด้านบนของแพคเกจที่ฉันสร้างขึ้น บนระบบที่ทำงานบน fedora / rpm จะทำเช่นrpm -i --justdb <package>นี้ ฉันไม่ได้ทำสิ่งนี้กับระบบที่ใช้เดเบียน / apt แต่ฉันเพิ่งบังคับให้ติดตั้งตามต้องการซึ่งอาจจะขี้เกียจ - ดูเหมือนว่าจะมีวิธีที่ดีกว่าในการทำโดยการสร้างแพ็คเกจจำลองที่แกล้งเติมเต็มสิ่งที่จำเป็นต้องมี นั่นคือการเรียงลำดับตามคำแนะนำของ m0nhawk ในการสร้างแพคเกจจากแหล่งที่มา. tar.gz - ยกเว้นค่อนข้างง่ายกว่าเล็กน้อย (ฉันจะซื่อสัตย์และพูดว่าฉันไม่ชอบคำแนะนำของ m0nhawk)

ดูเหมือนว่าคุณมีปัญหาอื่นนอกเหนือจากที่มีระบบบรรจุภัณฑ์ ไม่ชัดเจนสำหรับฉันว่าสิ่งเหล่านั้นคืออะไรแม้ว่าคุณจะพูดถึงสภาพแวดล้อมเดสก์ท็อป (เช่น Gnome) สิ่งเหล่านี้ต่างกันดังนั้นจึงไม่มีใครตอบคำถาม "ฉันจะทำอย่างนี้กับ linux" ได้อย่างไร - มันไม่ใช่คำถาม "ฉันจะทำสิ่งนี้บน Ubuntu" หรือ "ฉันจะทำสิ่งนี้ได้อย่างไร gentoo "- มันเป็นคำถามที่ว่า" ฉันจะทำสิ่งนี้ได้อย่างไรกับ gnome desktop "หรือ" วิธีทำบน XFCE desktop "เป็นต้นในใจของฉันปัญหาเดียวที่มีคือเรื่องของ launchers ที่คุณพูดถึงซึ่งฉัน ต้องการเชื่อว่าทุก DE มีวิธีการง่ายๆในการทำสิ่งนี้ (แต่จะไม่เหมือนกันเพราะพวกเขาแตกต่างกัน)

จากนั้นมีบริการที่จัดการโดยระบบเริ่มต้น (เช่น systemd หรือพุ่งพรวด) ดังนั้นคำถามนี้เป็นคำถามที่เกี่ยวข้องซึ่งอาจเกี่ยวข้องกับ:

  • ระบบบรรจุภัณฑ์เช่น apt หรือ yum
  • ระบบ init เช่น systemd หรือพุ่งพรวด
  • สภาพแวดล้อมเดสก์ทอปเช่น KDE หรือความสามัคคี
  • ตัวเรียกดูไฟล์เช่น nautilus หรือ konqueror
  • ?????

เหตุผลส่วนหนึ่งอาจไม่มีวิธีการแก้ปัญหาแบบครบวงจรอย่างง่าย (แม้ว่ามาตรฐาน XDG อาจให้บางส่วนของระบบ) ก็คือ "linux" ไม่ใช่ระบบปฏิบัติการแบบรวมที่เรียบง่ายและฉันจินตนาการว่าผู้ใช้ส่วนใหญ่ต้องการวิธีดังกล่าว ฉันมักจะไม่ใช้ DE เลยและฉันไม่เคยใช้เบราว์เซอร์ไฟล์ที่มาพร้อมกับ ฯลฯ

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


"in the distro binary" <- / me พูดพึมพำบางสิ่งบางอย่างเกี่ยวกับ distros ที่อิงกับซอร์ส
njsg

นอกจากนี้ปัญหาเกี่ยวกับมาตรฐาน XDG อาจเป็นไปได้ว่ามีบางคนที่ไม่สนใจเกี่ยวกับสิ่งนั้นและนักพัฒนา distro ก็เป็นผู้จัดหา.desktopไฟล์ของพวกเขาสำหรับงานประเภทนั้นสิ่งเหล่านี้จำเป็นต้องใช้
njsg

ฉันไม่รู้ว่านักพัฒนาต้นน้ำควรกังวลกับเรื่องนั้นหรือไม่ ฉันเพิ่งพูดถึง XDG เพราะผู้ใช้สามารถใช้งานได้หากคุณต้องการใช้ ราคาของความแตกต่างก็คือมันทำให้เกิดภาระความรับผิดชอบต่อผู้ใช้ที่พวกเขาจะไม่ได้รับเช่น OSX ลินุกซ์ distros บางจุดมุ่งหมายที่จะลดขนาดให้มากกว่านี้และคุณมีอิสระที่จะเลือก แต่ท้ายที่สุดฉันคิดว่าคนที่อึดอัดกับรุ่นนั้นควรจะไม่ใช้ลินุกซ์เลย - ฉันไม่แน่ใจว่าทำไมพวกเขาถึงต้องการ สถานที่แรกจริง
goldilocks

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

Raekye: มันไม่ได้สร้างความแตกต่างกับประเด็นของฉันซึ่งก็คือคุณไม่ต้องทำอะไรเพื่อจัดการหรือ "ติดตาม" สิ่งที่คุณติดตั้งจากแหล่งใน / usr / local ยกเว้นเท่าที่คุณต้องการ เพื่อวัตถุประสงค์ของคุณคืออะไร นอกเหนือจากการรวบรวมและติดตั้งใน $ PATH ไม่มีการลงทะเบียน universal linux เนื่องจากไม่มีจุดประสงค์สำหรับแนวทางแบบสากล ฉันคิดว่าคุณเป็นกังวลว่าคุณพลาดบางสิ่งบางอย่างไป คุณยกเลิก tar คุณคุณconfigure make installแค่นี้แหละ อะไรก็ตามหลังจากนั้นเป็นเรื่องของการตั้งค่าส่วนตัว
goldilocks

5

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

การแจกแจงที่แตกต่างกันของ Linux มีมาตรฐานในรูปแบบระบบแฟ้มและระบบการจัดการบรรจุภัณฑ์ที่หลากหลาย Redhats ใช้rpm , Debians / Ubuntu ใช้แพ็คเกจ deb ซุ้มประตูก็เป็นของตัวเองเช่นกัน จากมุมมองโครงการซอฟต์แวร์เว้นแต่ว่าคุณต้องการรวมไว้ในการกระจายฐานผู้ใช้ของคุณอยู่ใน distro เดียวหรือผลิตภัณฑ์เชิงพาณิชย์ที่มีจุดประสงค์เพื่อความสะดวกในการติดตั้งสำหรับทุกคนพวกเขาอาจเป็นจุดเดียวที่คุณต้องการเริ่มสร้าง แพคเกจต่างๆ

ในความเป็นจริงแหล่ง tar.gz ที่สร้างขึ้นด้วยgccอาจเป็นคำจำกัดความที่ดีที่สุดของ "แพ็คเกจ Linux" ทั่วไป เคอร์เนล Linux ที่มียูทิลิตี้ GNU และ GCC เกี่ยวกับตัวหารร่วมระหว่างระบบปฏิบัติการบน Linux ที่คุณสามารถรับได้

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

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

มีคู่มือต่างๆเว็บเกี่ยวกับการสร้างแพคเกจ Debian เป็นหนึ่งในนั้น

หากสิ่งที่คุณต้องการทำคือเรียกใช้แพคเกจที่คอมไพล์แล้วอาจเพิ่มไบนารีพา ธ ของคุณ$PATH?

หากคุณกำลังทำอย่างอื่นมันคืออะไร


"ถ้าสิ่งที่คุณต้องการทำคือเรียกใช้แพ็คเกจที่คอมไพล์แล้วอาจจะเพิ่มไบนารีพา ธ ไปยัง $ PATH ของคุณก็ได้" <- ผมคิดว่าขั้นตอนใด ๆ ติดตั้งสติ (พูดmake installหรือชอบ) จะอย่างน้อยที่สุดติดตั้ง symlink ภายใต้/usr/bin/หากไม่ได้ติดตั้งสิ่งที่ทั้งภายใต้/)
njsg

ส่วนใหญ่ฉันเดาว่าเป็นเพราะฉันทำหลายอย่าง--prefix=/elsewhereเพื่อให้งานสร้างที่กำหนดเองอยู่ห่างจากต้นไม้ปกติ
แมตต์

1
โดยทั่วไป tarballs ที่ใช้make installจะติดตั้งเพื่อ/usr/local/bin
Shadur

0

ฉันต้องการที่จะเพิ่มที่คุณยังสามารถ symlink ไปแทน~/bin/ ไฟล์ที่สามารถอยู่ในหรือ ฉันเท่านั้นที่ใช้คอมพิวเตอร์ของฉันและฉันชอบหลีกเลี่ยงการสัมผัสไฟล์ระบบ (อะไรก็ตามที่อยู่นอกไดเรกทอรีบ้านของฉัน) ด้วยตัวเองให้มากที่สุด/usr/bin*.desktop~/.local/share/applications//usr/share/applications/

แน่นอนว่าเมื่อคุณใส่เนื้อหาใน "โฮมไดเร็กตอรี่" พวกมันจะไม่ปรากฏสำหรับผู้ใช้รายอื่น

นี่คือสิ่งที่รวมอยู่ในค่าเริ่มต้น~/.profileสำหรับ debian wheezy:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.