मैं preseed का उपयोग करके पैकेज कैसे निकाल सकता हूं?


13

मैं एक स्वचालित "कोई सवाल नहीं पूछा" preseed प्रणाली स्थापित कर रहा हूँ और डस्टिन किर्कलैंड के सर्वर का उपयोग एक उदाहरण के रूप में preseed

वह स्वचालित अधिष्ठापन के भाग के रूप में तीन संकुल स्थापित करने के लिए निम्न पंक्ति का उपयोग करता है:

d-i pkgsel/include string byobu vim openssh-server

मैं इसके व्युत्क्रम की तलाश कर रहा हूं , मूल रूप से स्वचालित इंस्टॉल के हिस्से के रूप में संकुल को निकालने में सक्षम हो सकता हूं ।

मुझे लगता है कि मुझे उस d-i preseed/late_command string apt-remove packagenameसामान को साफ करने के लिए उपयोग करने की आवश्यकता है जिसे मैं स्थापित नहीं करना चाहता हूं, लेकिन मुझे यकीन नहीं है


निश्चित रूप से मैं इसके बारे में कैसे जाऊंगा। हालांकि preseed पर बड़ा नहीं है। मैं pseudopackages का उपयोग करता हूं और एक बेस इंस्टॉल से शुरू करता हूं जिसमें कुछ भी नहीं है जो मुझे नहीं चाहिए।
रोबॉटहैंस

डेस्कटॉप टीम या सर्वर टीम में से किसी ने भी इस प्रश्न को नहीं देखा?
मनीष सिन्हा

मैं पैकेज निकालना इस दृष्टिकोण की कोशिश की है, लेकिन यह मेरे लिए :( काम नहीं कर रहा। Gist.github.com/lmayorga1980/6d698a5d5425c676ecdd
मेवरिक

जवाबों:


13

वहाँ एक विकल्प को शुद्ध करने के लिए preseed विन्यास स्क्रिप्ट में एक पैकेज को हटाने का विकल्प नहीं है, लेकिन आप इस आदेश का उपयोग कर सकते हैं ...।

di preseed / late_command

This command is run just before the install finishes, but when there is
still a usable /target directory. You can chroot to /target and use it
directly, or use the apt-install and in-target commands to easily install
packages and run commands in the target system.
"in-target" means: chroot /target
d-i preseed/late_command string [in-target] foo

उदाहरण :

d-i preseed/late_command string \
            in-target apt-get remove packagename

आप एक स्क्रिप्ट भी चला सकते हैं:

d-i preseed/late_command string \
        in-target wget http://........./postinst.sh -O /root/postinst.sh; \
        in-target /bin/bash /root/postinst.sh

या DEB फ़ाइलों का एक समूह स्थापित करें:

d-i preseed/late_command               string \
    for deb in /hd-media/*.deb; do cp $deb /target/tmp; \
    chroot /target dpkg -i /tmp/$(basename $deb); done

0

दबाया गया उदाहरण केवल एक उदाहरण है; इसमें सभी संभव di संयोजनों को शामिल नहीं किया गया है, लेकिन सिर्फ वे अधिक सामान्य हैं।

व्यक्तिगत रूप से, मैंने कभी भी संकुल को एक संस्थापन से हटाने की कोशिश नहीं की है, इसलिए मुझे यकीन नहीं है कि इसके लिए एक विशिष्ट di कमांड है; ऐसा लगता है कि आपका d-i preseed late_commandकाम करना चाहिए। डि डॉक्स पर एक त्वरित खोज ने कुछ भी उत्पन्न नहीं किया ... लेकिन, निश्चित रूप से, कॉलिन को पता होगा;;;

वैकल्पिक रूप से, आप एक मूल सर्वर से शुरू कर सकते हैं, और फिर जो चाहें जोड़ सकते हैं:

tasksel tasksel/first   multiselect     Basic Ubuntu server
...
d-i preseed/late_command string apt-install whatever else
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.