जवाबों:
आप जो हासिल करना चाहते हैं, उसके आधार पर, इस काम को करने के लिए अलग-अलग तरीके हो सकते हैं (या कम से कम आप चाहते हैं कि कार्यक्षमता की हैकी झलक दे)।
कई तरीकों से सॉफ़्टवेयर की स्थापना संसाधनों को उपलब्ध करने, या सिस्टम पर पहले से मौजूद चीजों तक पहुंच की अनुमति देने के लिए नीचे आती है।
चाहे आप प्रिंटर तक पहुंच प्रदान करने की बात कर रहे हों, या उपयोगकर्ता को किसी निश्चित निर्देशिका में प्रोग्राम निष्पादित करने की अनुमति दे रहे हों, इसे पूरा करने के तरीके हैं, और हालांकि वे उबंटू के मूल निवासी हो सकते हैं, इस प्रकार के समाधान आम तौर पर (निश्चित रूप से) होने जा रहे हैं एक स्थापना स्थापना के तथ्य के बाद जोड़ा जाएगा।
यहां पोस्ट-इंस्टॉलेशन नियंत्रण के दो सामान्य वर्ग हैं जिन्हें जोड़ा जा सकता है। ध्यान दें कि, सही वातावरण को देखते हुए, उदाहरण के लिए जब एक कसकर नियंत्रित समूह नीति लागू होती है, तो एक बार मूल प्रणाली रखने के बाद यह आसान हो सकता है। इस तरह की अनुमति को LDAP या एक समान प्रणाली से भी जोड़ा जा सकता है जो प्रति उपयोगकर्ता या समूह प्रमाणीकरण और प्राधिकरण दे सकता है।
विजिबिलिटी कंट्रोल
मेरे पास शायद कुछ इसी तरह की स्थिति है, लेकिन मेरे मामले में, उपयोगकर्ता बहुत परिष्कृत नहीं थे (सभी 7 साल से कम उम्र के थे)। मेरे लिए, बस गनोम मेनू को छुपाना या डेस्कटॉप लांचर को हटाना काम किया।
निर्देशिकाओं से निष्पादन योग्य बिट को हटाने से उन्हें खोजने या उनकी खोज करने के लिए प्रक्रियाओं की क्षमता समाप्त हो जाती है। यह प्रभावी रूप से उन्हें अदृश्य और उपयोगकर्ता-वार प्रस्तुत कर सकता है, उन्हें अनुपलब्ध बना सकता है। यदि आपके पास एक डिफ़ॉल्ट सिस्टम नीति है जो फ़ाइल एक्सेस के आधार पर मेनू बनाती है, तो उदाहरण के लिए, आप इस तरह का कॉस्मेटिक समाधान प्राप्त कर सकते हैं, और फिर बाद में थोड़े अतिरिक्त प्रयास के साथ इसे स्थापित करने के लिए काम करते हैं।
निष्पादन नियंत्रण
संसाधन का नियंत्रण यूनिक्स अनुमतियों, ऐपमोरर प्रोफाइल, SELinux अनुमतियों, और इसी तरह से किया जा सकता है। नियंत्रण फ़िल्टरिंग के अन्य स्तर हो सकते हैं जो अनुप्रयोग के आधार पर खेल में आ सकते हैं। अधिक लक्षित समाधानों की अनुपस्थिति में, आपको उपयोगकर्ता या प्रक्रिया एक्सेस को नियंत्रित करने के लिए कुछ कार्यक्रमों के आसपास रैपर लिखना पड़ सकता है।
कुंआ dpkg
यह आपकी मदद नहीं करेगा क्योंकि यह इसका डिज़ाइन उद्देश्य नहीं है। यह एक सिस्टम पर स्थापित पैकेजों का मूल स्वामित्व वाली एकमात्र जनगणना बनना चाहता है।
केवल एक चीज जो मन में उछलती है, वह है सिर्फ पैकेज निकालना और फाइलों को होम डायर में मैन्युअल रूप से रखने की कोशिश करना।
हालांकि यह केवल कुछ चीजों के लिए काम करेगा। बहुत सारे पैकेज विखंडू (निष्पादन योग्य या स्क्रिप्ट /usr/bin
, लाइब्रेरी, /lib
और अन्य गारब इन /usr/share
इत्यादि) में विभाजित हैं और ये स्थान बिल्ड स्क्रिप्ट द्वारा हार्ड-कोडित हैं। इस प्रकार यदि आप कोशिश करते हैं और इस तरह से कुछ में खींचते हैं ~
, तो यह टूट जाएगा। आप निर्भरता को कम करने में घंटों बिता सकते हैं लेकिन आप अपने समय के साथ कुछ उपयोगी कर सकते हैं जैसे कि कैंसर का इलाज ढूंढना या दुनिया की कुछ सुंदरता को अवशोषित करना।
जो कोई भी सॉफ्टवेयर लिखता है, उससे आप एक नॉन-पैकेज्ड वर्जन को हथियाने के लिए बेहतर प्रयास करेंगे। लगभग सभी मुफ्त सॉफ्टवेयर किसी न किसी रूप में संपीड़ित संग्रह के स्रोत के रूप में उपलब्ध हैं, इसलिए इसे पकड़ो और बस निर्माण करो। तुम make install
कदम मत करो । आपका ऐप बनाया गया है, बस आप इसे जहां चाहें वहां डाल दें।
/etc/init
, में कॉन्फ़िगर फ़ाइलों की तलाश करता है /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
। इस सवाल में एक अस्पष्टता है कि क्या टेककैट एक बहु-उपयोगकर्ता अनुप्रयोग की पहुंच / दृश्यता को प्रतिबंधित करना चाहता है, या क्या वह एकल-उपयोगकर्ता अनुप्रयोग स्थापित करना चाहता है। आपके और व्यवस्था के प्रश्न पूर्व व्याख्या का उपयोग करते हैं, और बाकी उत्तरार्द्ध मानते हैं।
संदिग्ध।
डिब के मुख्य रूप से अभिलेखागार हैं जो स्थापित होने पर आपके फाइल सिस्टम के मूल में निकाले जाते हैं (साथ ही कुछ कॉन्फिगर)। यदि आप उन्हें केवल एक उपयोगकर्ता के लिए इंस्टॉल करना चाहते हैं, तो आपको किसी तरह उन्हें / होम / उपयोगकर्ता फ़ोल्डर में स्थापित करना होगा। यहां तक कि अगर आपने ऐसा किया है, तो वे काम नहीं करेंगे, क्योंकि फ़े एप्लिकेशन बायनेरिज़ / usr / bin (या sth समान) में नहीं उतरेंगे, और सिस्टम उन्हें नहीं ढूंढेगा यदि आप उन्हें लॉन्च करने का प्रयास करेंगे। इसी तरह पुस्तकालय आदि बेकार होंगे, क्योंकि सिस्टम को नहीं पता होगा कि कहीं / घर हैं। आप ब्रूट-फोर्स एप्रोच की कोशिश कर सकते हैं , और जहाँ भी आपने डीबक आर्काइव से फाइल निकाली है, उसे इंगित करने के लिए पैट वैरिएबल को एडजस्ट कर सकते हैं, लेकिन यह न केवल बहुत असुरक्षित हो सकता है, लेकिन हो सकता है कि संगतता समस्याएं हों (फ़ेन मेनू प्रविष्टियाँ काम नहीं करेंगी, क्योंकि GNOME .desktop फ़ाइलों को / usr / share / एप्लीकेशंस में होने की संभावना है)।
इसके अलावा, यदि आपने कुछ उपयोगकर्ताओं के लिए एक पैकेज स्थापित किया है, तो यह पागल निर्भरता की समस्या पैदा कर सकता है, अगर किसी अन्य उपयोगकर्ता ने पैकेज स्थापित किया है जो किसी अन्य के साथ संघर्ष करता है जिसे आपने अभी अपने लिए स्थापित किया है - और संभवतः अन्य पैकेज प्रबंधन से संबंधित मुद्दों के टन दिखाई देंगे।
इन सभी परेशानियों के कारण उपयोगकर्ताओं के लिए अलग से पैकेजों का प्रबंधन करना बेहद मुश्किल हो जाता है, इसलिए ऐसा लगता है कि उन्हें केवल एक उपयोगकर्ता के लिए इंस्टॉल करना संभव नहीं है, क्योंकि .debs के पीछे का विचार इसे अस्वीकार कर देता है।