เป็นไปได้หรือไม่ที่จะคัดลอกแพคเกจ / ซอฟต์แวร์ไปยังเครื่องอื่นใน Linux?


2

นี่คือสถานการณ์ตัวอย่าง:

เริ่มจากไดเรกทอรีใหม่ว่า / myapps ติดตั้งไพ ธ อนแยกต่างหาก (คอมไพล์หรือรวบรวมล่วงหน้า) เพื่อพูด. / usr / bin (สัมพันธ์กับไดเร็กทอรีการติดตั้งไม่ใช่ระบบ / usr / bin) และติดตั้งไข่หลาย ๆ ตัวให้กับ ธ สิ่งนี้สามารถทำได้โดยใช้สิ่งที่ต้องการ buildout

ตอนนี้ผู้ใช้รายอื่นที่มีระบบปฏิบัติการเวอร์ชันเดียวกันเพียงแค่ rsync เป็นโฟลเดอร์ที่มีโครงสร้างโฟลเดอร์ที่แน่นอนเขาจะสามารถใช้งาน python เหมือนกับผู้ใช้รายอื่น เขาต้องติดตั้งสิ่งต่าง ๆ อีกครั้งจริง ๆ หรือไม่?

ฉันคิดว่าตัวจัดการแพ็กเกจ Linux ส่วนใหญ่ทำงานเช่นนี้กับ / myapps คล้ายกับสิ่งที่ / usr คือข้อตกลงเริ่มต้นว่าควรเก็บไฟล์ไว้ที่ไหน การคอมไพล์ไม่ใช่ข้อบังคับยกเว้นว่าคุณต้องการปรับแต่งเช่นเดียวกับการติดตั้ง gentoo ในคำอื่น ๆ ฉันคิดว่าสิ่งที่ผู้จัดการแพคเกจส่วนใหญ่ทำคือ:

1) การตรวจสอบข้อกำหนด

2) คัดลอก / วางข้อมูลที่รวบรวมล่วงหน้าไปยังตำแหน่งมาตรฐานเช่น / usr / lib / usr / bin

3) ทำการอัปเดตเมนู

เงื่อนไขบางอย่างในเครื่องแรก:

ติดตั้งทุกอย่างภายในไดเรกทอรีนี้และไม่อยู่นอกไดเรกทอรี มันทำงานเป็นผู้ใช้ปกติและไม่มี sudo

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


ดูเหมือนว่าชั้น virtualization คือสิ่งที่จะแก้ปัญหานี้ ส่วนใหญ่เป็นวิธีที่เราสามารถหลีกเลี่ยงสิ่งก่อสร้างที่ไม่จำเป็นเมื่อมีอยู่แล้ว
Nishant

Docker.com น่าสนใจ มันแยกการสร้างจากระบบปฏิบัติการ
Nishant

คำตอบ:


3

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

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


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