การติดตั้งแพ็คเกจ. deb ในโฮมไดเร็กตอรี่


31

เป็นไปได้หรือไม่ที่จะติดตั้ง.debแพคเกจอย่างสมบูรณ์ภายใต้โฮมไดเร็กตอรี่ของฉันที่เดเบียน?


คุณสามารถสร้างแพ็คเกจ deb ที่ติดตั้งได้ทุกที่ แต่ทำไมคุณต้องการที่จะ? ควรจะติดตั้งแพคเกจลงในระบบ
Faheem Mitha

5
@Faheem Mitha - เราไม่มีสิทธิ์เข้าถึงกล่อง Unix ของเราทุกคนแน่นอนฉันไม่ได้ทำงานที่ไหน ถ้าเราต้องการแพคเกจ (RPM ในกรณีของฉัน) เพื่อใช้ซอฟต์แวร์บางส่วนมันจะดีถ้าเราสามารถติดตั้งในพื้นที่ผู้ใช้แทนที่จะต้องพูดกับไอทีและให้พวกเขาติดตั้งแพคเกจในระบบสำหรับเรา
Mark Booth

@FaheemMitha อีกสิ่งหนึ่งคือการทดสอบแพ็คเกจรุ่นใหม่ หากฉันต้องการให้ผู้ใช้รายหนึ่งสามารถใช้งานแพ็คเกจนี้ได้ฉันจะไม่ติดตั้งทั้งระบบ
Erathiel

@Erathiel นั่นเป็นกรณีการใช้งานเครื่องเสมือนจริง ๆ
Faheem Mitha

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

คำตอบ:


19

มันขึ้นอยู่กับสิ่งที่คุณหมายถึงโดย "ติดตั้ง" เป็นไปได้ที่จะแตกเนื้อหาไฟล์ของไฟล์. deb โดยใช้dpkg-deb -x <filename.deb>แต่ไม่ว่าคุณจะสามารถใช้ซอฟต์แวร์ได้จริงหรือไม่หลังจากแตกไฟล์นั้นขึ้นอยู่กับว่ามันถูกเขียนขึ้นมาหรือไม่ ซอฟต์แวร์ลีนุกซ์จำนวนมากคาดว่าจะพบไฟล์ทรัพยากรในตำแหน่งที่ตั้งมาตรฐานที่ระบุในเวลาคอมไพล์เช่น/usr/shareหรือ/usr/libซึ่งจะล้มเหลวหากซอฟต์แวร์ไม่ได้ติดตั้งในตำแหน่งปกติ นอกจากนี้ไฟล์คอนฟิกูเรชันทั่วทั้งระบบที่ติดตั้งโดยแพ็คเกจเช่น.desktopไฟล์ที่สร้างรายการในเมนูเริ่มจะไม่ทำงานตามที่ตั้งใจหากติดตั้งในตำแหน่งที่ไม่ถูกต้อง


3
มันควรจะเป็นdpkg-deb -x app.deb /path/to/target/dir/
QED

หรือเพียงแค่ dpkg -x app.deb / path / to / target / dir /
Erik Aronesty

5

ขอบคุณสำหรับความคิดเห็นทั้งหมดของคุณคำตอบ มันเป็นซอฟต์แวร์ที่บรรจุตัวเองซึ่งฉันต้องการตรวจสอบเบื้องต้นว่าบรรจุภัณฑ์ของฉันถูกต้องหรือไม่ ฉันหยั่งรากในคอมพิวเตอร์ของฉัน แต่ไม่ต้องการทำการติดตั้งจริงหรือไม่ต้องการใช้อิมเมจเสมือนในตอนนี้ ฉันมาด้วยวิธีนี้https://serverfault.com/questions/23734/is-there-any-way-to-get-apt-to-install-packages-to-my-home-directoryซึ่งทำงานอย่างสมบูรณ์แบบสำหรับ ฉันตู้เอทีเอ็ม


5
@Ivogel ถาม "หน้าเว็บที่คุณเชื่อมโยงไปถึงมีหลายบทความและฉันไม่สามารถบอกได้ว่าอันไหนเป็นทางออกที่เหมาะกับคุณคุณช่วยระบุได้ไหม?"
drs

4

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

หากคุณไม่มีสิทธิ์เข้าถึงรูทคุณไม่สามารถใช้ระบบบรรจุภัณฑ์ Debian แน่นอนคุณสามารถคลายไฟล์ deb ลงในชิ้นส่วนและติดไว้ในไดเรกทอรีบ้านของคุณ ฉันแนะนำให้คุณไปกับการติดตั้งท้องถิ่น ซอฟต์แวร์อาจมีระบบการจัดการแพคเกจภายในบางประเภทที่คุณสามารถใช้ได้ทั้งนี้ขึ้นอยู่กับซอฟต์แวร์ที่คุณติดตั้ง


ฉันไม่รู้ว่ามันถูกเพิ่มเข้าไปหรือไม่คำตอบนี้ถูกสร้างขึ้น แต่ dpkg มีตัวเลือก --force-non-root ซึ่งสามารถใช้แก้ปัญหานี้ได้
Bruce Adams

@BruceAdams ฉันไม่เห็นตัวเลือกนี้ปรากฏในหน้าคน คุณสามารถให้การอ้างอิงได้หรือไม่?
Faheem Mitha

ถ้าคุณเรียกใช้ dpkg - ช่วยมันระบุ --force-things หากคุณเรียกใช้ dpkg --force-help มันจะให้รายละเอียดเพิ่มเติม ดูตัวอย่างaskubuntu.com/questions/193695/…
Bruce Adams

@BruceAdams ตกลงฉันเห็นแล้ว แต่ฉันไม่รู้ว่ามันจะทำงานอย่างไร: not-root Try to (de)install things even when not root.
Faheem Mitha

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