เมื่อทำการติดตั้งแอพพลิเคชั่นผ่านศูนย์ซอฟต์แวร์หรือไฟล์ DEB พวกเขามักจะได้รับการติดตั้งทั้งระบบสำหรับผู้ใช้
มีวิธีติดตั้งแอพพลิเคชั่นสำหรับผู้ใช้คนเดียวหรือไม่?
เมื่อทำการติดตั้งแอพพลิเคชั่นผ่านศูนย์ซอฟต์แวร์หรือไฟล์ DEB พวกเขามักจะได้รับการติดตั้งทั้งระบบสำหรับผู้ใช้
มีวิธีติดตั้งแอพพลิเคชั่นสำหรับผู้ใช้คนเดียวหรือไม่?
คำตอบ:
ขึ้นอยู่กับสิ่งที่คุณต้องการทำให้สำเร็จอาจมีวิธีที่แตกต่างกันในการทำให้งานนี้ (หรืออย่างน้อยก็ให้ลักษณะการทำงานที่คุณต้องการ)
การติดตั้งซอฟต์แวร์ในหลาย ๆ ทางเกิดขึ้นเพื่อทำให้ทรัพยากรพร้อมใช้งานหรืออนุญาตให้เข้าถึงสิ่งที่มีอยู่แล้วในระบบ
ไม่ว่าคุณจะพูดถึงการให้สิทธิ์การเข้าถึงเครื่องพิมพ์หรือการอนุญาตให้ผู้ใช้เรียกใช้งานโปรแกรมในไดเรกทอรีใดก็ตามมีวิธีที่จะทำให้สำเร็จและแม้ว่าพวกเขาจะเป็นเจ้าของ Ubuntu แต่ก็มีวิธีแก้ปัญหาเหล่านี้โดยทั่วไป (แน่นอน) ถูกเพิ่มหลังจากข้อเท็จจริงของการติดตั้ง. deb
นี่คือคลาสทั่วไปสองคลาสของการควบคุมหลังการติดตั้งที่สามารถเพิ่มได้ โปรดทราบว่าในสภาพแวดล้อมที่เหมาะสมเช่นเมื่อมีการควบคุมนโยบายกลุ่มอย่างแน่นหนาสิ่งนี้อาจจะง่ายขึ้นเมื่อคุณมีระบบพื้นฐานอยู่แล้ว การอนุญาตประเภทนี้สามารถเชื่อมโยงกับ LDAP หรือระบบที่คล้ายกันซึ่งสามารถให้การรับรองความถูกต้องและการอนุญาตต่อผู้ใช้หรือกลุ่ม
การควบคุมการเปิดเผย
ฉันอาจมีสถานการณ์ที่ค่อนข้างคล้ายตัวฉันเอง แต่ในกรณีของฉันผู้ใช้ยังไม่ซับซ้อน (ทุกคนอายุต่ำกว่า 7 ปี) สำหรับฉันเพียงซ่อนเมนู Gnome และหรือเอาตัวเรียกใช้งานเดสก์ท็อปออก
การลบบิตที่เรียกใช้งานได้ออกจากไดเรกทอรีจะช่วยลดความสามารถของกระบวนการในการค้นหาหรือสำรวจพวกมัน มันสามารถทำให้มองไม่เห็นและผู้ใช้ฉลาดทำให้ไม่สามารถใช้งานได้ หากคุณมีนโยบายระบบเริ่มต้นซึ่งสร้างเมนูโดยอ้างอิงจากการเข้าถึงไฟล์คุณสามารถขอรับโซลูชันเครื่องสำอางประเภทนี้ได้จากนั้นให้ใช้งานได้สำหรับการติดตั้งในภายหลังด้วยความพยายามเพิ่มเติมเล็กน้อย
การควบคุมการดำเนินการการ
ควบคุมทรัพยากรสามารถทำได้ผ่านการอนุญาต Unix โปรไฟล์ apparmor สิทธิ์ SELinux และอื่น ๆ อาจมีระดับอื่น ๆ ของตัวกรองควบคุมซึ่งอาจเข้ามาเล่นขึ้นอยู่กับแอปพลิเคชัน ในกรณีที่ไม่มีโซลูชันที่ตรงเป้าหมายมากขึ้นคุณอาจต้องเขียนโปรแกรมล้อมรอบโปรแกรมบางโปรแกรมเพื่อควบคุมการเข้าถึงของผู้ใช้หรือกระบวนการ
ดีdpkg
จะไม่ช่วยคุณได้เช่นนี้ไม่ได้เป็นจุดมุ่งหมายของการออกแบบ มันต้องการที่จะเป็นสำมะโนประชากรของแพ็คเกจที่ติดตั้งบนระบบ
สิ่งเดียวที่ข้ามไปยังใจเป็นเพียงการแยกแพคเกจและพยายามที่จะวางไฟล์ด้วยตนเองในบ้าน dir
อย่างไรก็ตามสิ่งนี้จะใช้ได้กับบางสิ่งเท่านั้น แพ็คเกจจำนวนมากแบ่งออกเป็นชิ้น ๆ (ไฟล์เรียกทำงานหรือสคริปต์ใน/usr/bin
, ไลบรารีใน/lib
และ garb ใน/usr/share
อื่น ๆ ) และตำแหน่งเหล่านี้ถูกเขียนโค้ดแบบยากโดยสคริปต์บิลด์ ดังนั้นหากคุณลองทำอะไรแบบนี้~
มันจะพัง คุณสามารถใช้เวลาหลายชั่วโมงในการคลี่คลายการอ้างอิง แต่คุณสามารถทำสิ่งที่มีประโยชน์กับเวลาของคุณเช่นการหาวิธีรักษาโรคมะเร็งหรือดูดซับความงามบางส่วนในโลก
คุณทำได้ดีกว่าเพื่อคว้าเวอร์ชันที่ไม่ใช่แพ็คเกจจากใครก็ตามที่เขียนซอฟต์แวร์ ซอฟต์แวร์เสรีเกือบทั้งหมดมีอยู่ในรูปแบบของการบีบอัดไฟล์บีบอัดในรูปแบบของแหล่งที่มาดังนั้นให้จับและสร้างมันขึ้นมา คุณไม่ทำตามmake install
ขั้นตอน แอปของคุณถูกสร้างขึ้นเพียงแค่วางไว้ตามที่คุณต้องการ
/etc/init
, ค้นหาไฟล์ config /etc
หรือมีเส้นทางอื่นฮาร์ดโค้ด
./configure --prefix=$HOME/local
ผ่าน
ฉันไม่รู้มากเกินไปเกี่ยวกับเรื่องนี้ แต่ดูเหมือนว่าจากคำตอบอื่น ๆ ที่คุณอาจจะสามารถติดตั้งแพคเกจไปยังไดเรกทอรีอื่นแทน/
ด้วยdpkg
ใช้--root
พารามิเตอร์แล้วทำchroot
กับ dir ที่แพคเกจ " ติดตั้ง "ใน (ซึ่งสามารถเป็นไดเร็กตอรี่ในโฮมไดเร็กตอรี่ของผู้ใช้).
การติดตั้งแพคเกจสำหรับผู้ใช้อื่น ๆ กว่าroot
มันอาจจะเป็นไปได้ที่จะใช้ขั้นตอนข้างต้นด้วยแทนfakechroot
chroot
การปฏิเสธความรับผิดชอบ : ผมไม่ได้ลองนี้และไม่ได้มีประสบการณ์มากในขณะที่เขียนด้วยdpkg
หรือchroot
แต่จากสิ่งที่ฉันไม่ทราบเกี่ยวกับเครื่องมือเหล่านี้กระบวนการนี้ก็อาจจะทำงาน
ลิงค์ที่มีข้อมูลซึ่งอาจเป็นประโยชน์สำหรับผู้ที่ต้องการบรรลุผลของการchroot
ไม่มีroot
ความสามารถ:
chroot
fakechroot
)ตอนนี้ฉันได้ทำสิ่งเล็กน้อยที่สัมผัสกับเรื่องนี้และเรียนรู้เพิ่มเติม ...
แฟรกเมนต์ (การสร้างสภาพแวดล้อมท้องถิ่น):
chroot(1)
เต็ม (ผู้ให้บริการสภาพแวดล้อมในท้องถิ่นที่สมบูรณ์):
chroot(1)
, mount --bind
, binfmt_misc
และทำงานไบนารีจากสถาปัตยกรรมอื่น ๆ ที่ใช้ qemu-ผู้ใช้พื้นที่สรุป : โดยการลอกเลียนแบบหรือมีสิทธิ์รูทแบบโลคัลแพ็กเกจ DEB สามารถติดตั้งสำหรับสภาวะแวดล้อมโลคัล
คุณอาจใช้--root
ตัวเลือกในdpkg
การติดตั้งไปยังไดเรกทอรีอื่น /etc
แต่อาจจะทำงานเป็นปัญหาหากโปรแกรมประยุกต์ที่จะมองหาสิ่งที่อยู่ในสถานที่ที่คงที่เช่น
ในระยะสั้นฉันไม่คิดว่าจะมีวิธีที่ง่าย
คุณสามารถเปลี่ยนความเป็นเจ้าของไฟล์ปฏิบัติการได้เพื่อให้มีผู้ใช้เพียงคนเดียวเท่านั้นที่สามารถเรียกใช้ได้ จากนั้นหากจำเป็นคุณสามารถลบแอปพลิเคชันออกจากเมนูของผู้ใช้รายอื่น
~/bin
ตัวอย่างเช่นผมบ่อยโปรแกรมสำหรับติดตั้งเพียงตัวเองโดยการวางไว้ใน มีข้อสงสัยในคำถามนี้เกี่ยวกับว่า Takkat ต้องการ จำกัด การเข้าถึง / การเปิดเผยแอปพลิเคชันที่มีผู้ใช้หลายคนหรือไม่หรือเขาต้องการติดตั้งแอปพลิเคชันผู้ใช้รายเดียว คำถามและข้อตกลงของคุณใช้การตีความในอดีตและส่วนที่เหลือถือว่าเป็นคำถามสุดท้าย
น่าสงสัย
เดบิตส่วนใหญ่จะเป็นไฟล์เก็บถาวรที่ถูกแยกไปยังรูทของระบบไฟล์ของคุณเมื่อติดตั้ง (รวมถึงการปรับแต่งบางอย่าง) หากคุณต้องการติดตั้งสำหรับผู้ใช้เพียงคนเดียวคุณจะต้องติดตั้งลงในโฟลเดอร์ / home / user แม้ว่าคุณจะทำเช่นนั้น แต่ก็ไม่ได้ผลเนื่องจาก fe แอปพลิเคชันไบนารีจะไม่ลงจอดใน / usr / bin (หรือ sth ที่คล้ายกัน) และระบบจะไม่พบพวกเขาหากคุณพยายามเปิดใช้งาน ในทำนองเดียวกันห้องสมุด ฯลฯ จะไร้ประโยชน์เนื่องจากระบบไม่ทราบว่ามีบางแห่งใน / home คุณสามารถลองวิธี brute-forceและปรับตัวแปร PATH ให้ชี้ไปที่ใดก็ได้ที่คุณคลายบีบอัดไฟล์จากไฟล์เก็บถาวร deb แต่นั่นจะไม่ใช่แค่VERY ไม่ปลอดภัย แต่อาจทำให้เกิดปัญหาความเข้ากันได้ (รายการเมนู fe ใช้งานไม่ได้เนื่องจาก GNOME ขยายไฟล์. desktop ให้อยู่ใน / usr / share / applications)
ยิ่งไปกว่านั้นหากคุณติดตั้งแพคเกจสำหรับผู้ใช้บางคนอาจทำให้เกิดปัญหาการพึ่งพาอย่างบ้าคลั่งหากผู้ใช้รายอื่นติดตั้งแพคเกจที่ขัดแย้งกับอีกรายการที่คุณติดตั้งด้วยตัวคุณเอง - และอาจมีปัญหาอื่น ๆ
ปัญหาทั้งหมดเหล่านี้ทำให้การจัดการแพคเกจแยกต่างหากสำหรับผู้ใช้เป็นเรื่องยากมากดังนั้นจึงดูเหมือนว่าเป็นไปไม่ได้ที่จะติดตั้งแพ็กเกจสำหรับผู้ใช้เพียงคนเดียวเนื่องจากความคิดที่อยู่เบื้องหลัง