2.2. होस्ट सिस्टम आवश्यकताएँ
आपके होस्ट सिस्टम में निम्न सॉफ़्टवेयर होना चाहिए, जिसमें न्यूनतम संस्करण दर्शाए गए हों। अधिकांश आधुनिक लिनक्स वितरणों के लिए यह कोई समस्या नहीं होनी चाहिए। यह भी ध्यान रखें कि कई वितरण सॉफ़्टवेयर हेडर को अलग-अलग पैकेजों में रखेंगे, अक्सर “ -devel” या “ -dev"। यदि आपका वितरण उन्हें प्रदान करता है तो उन्हें स्थापित करना सुनिश्चित करें।
सूचीबद्ध सॉफ्टवेयर पैकेजों के पुराने संस्करण काम कर सकते हैं, लेकिन उनका परीक्षण नहीं किया गया है।
• बैश-3.2 (/bin/sh को bash के लिए एक प्रतीकात्मक या हार्ड लिंक होना चाहिए)
• बिन्युटिल्स-2.25 (2.32 से अधिक संस्करण अनुशंसित नहीं हैं क्योंकि उनका परीक्षण नहीं किया गया है)
• बाइसन-2.7 (/usr/bin/yacc बाइसन का लिंक होना चाहिए या बाइसन को निष्पादित करने वाली छोटी स्क्रिप्ट होनी चाहिए)
• बज़िप2-1.0.4
• कोरुटिल्स-6.9
• डिफ्युटिल्स-2.8.1
• फाइंडुटिल्स-4.2.31
• गॉक-4.0.1 (/usr/bin/awk को gawk का लिंक होना चाहिए)
• जीसीसी-6.2 सी++ कम्पाइलर सहित, जी ++ (9.2.0 से अधिक संस्करण अनुशंसित नहीं हैं क्योंकि उनका परीक्षण नहीं किया गया है)
• ग्लिबक-2.11 (2.30 से अधिक संस्करण अनुशंसित नहीं हैं क्योंकि उनका परीक्षण नहीं किया गया है)
• ग्रेप-2.5.1a
• जीज़िप-1.3.12
• लिनक्स कर्नेल-3.2
कर्नेल संस्करण की आवश्यकता का कारण यह है कि हम अध्याय 6 में glibc का निर्माण करते समय डेवलपर्स की सिफारिश पर उस संस्करण को निर्दिष्ट करते हैं। यह udev द्वारा भी आवश्यक है।
यदि होस्ट कर्नेल 3.2 से पहले का है, तो आपको कर्नेल को अधिक अद्यतित संस्करण से बदलना होगा। ऐसा करने के दो तरीके हैं। सबसे पहले, देखें कि क्या आपका लिनक्स विक्रेता 3.2 या बाद का कर्नेल पैकेज प्रदान करता है। यदि ऐसा है, तो आप इसे इंस्टॉल करना चाह सकते हैं। यदि आपका विक्रेता स्वीकार्य कर्नेल पैकेज प्रदान नहीं करता है, या आप ऐसा नहीं करना चाहते हैं
इसे इंस्टॉल करने के बाद, आप खुद ही कर्नेल संकलित कर सकते हैं। कर्नेल संकलित करने और बूट लोडर को कॉन्फ़िगर करने के निर्देश (यह मानते हुए कि होस्ट GRUB का उपयोग करता है) अध्याय 8 में दिए गए हैं।
• M4 - 1.4.10
• मेक-4.0
• पैच-2.5.4
• पर्ल-5.8.8
• पायथन-3.4
• सेड-4.1.5
• टीएआर -1.22
• टेक्सइन्फो-4.7
• Xz-5.0.0
महत्त्वपूर्ण
ध्यान दें कि ऊपर बताए गए सिमलिंक इस पुस्तक में दिए गए निर्देशों का उपयोग करके LFS सिस्टम बनाने के लिए आवश्यक हैं। अन्य सॉफ़्टवेयर (जैसे डैश, मॉक, आदि) की ओर इशारा करने वाले सिमलिंक काम कर सकते हैं, लेकिन LFS विकास टीम द्वारा उनका परीक्षण या समर्थन नहीं किया जाता है, और उन्हें निर्देशों से विचलन या कुछ पैकेजों में अतिरिक्त पैच की आवश्यकता हो सकती है।
महत्त्वपूर्ण
ध्यान दें कि ऊपर बताए गए सिमलिंक इस पुस्तक में दिए गए निर्देशों का उपयोग करके LFS सिस्टम बनाने के लिए आवश्यक हैं। अन्य सॉफ़्टवेयर (जैसे डैश, मॉक, आदि) की ओर इशारा करने वाले सिमलिंक काम कर सकते हैं, लेकिन LFS विकास टीम द्वारा उनका परीक्षण या समर्थन नहीं किया जाता है, और उन्हें निर्देशों से विचलन या कुछ पैकेजों में अतिरिक्त पैच की आवश्यकता हो सकती है।
इको एलिफ [
अन्य प्रतिध्वनि
गूंज
fi
इको एलिफ [
अन्य प्रतिध्वनि
गूंज
fi
-n "कोरयूटिल्स: "; chown --version | head -n1 | cut
-n "कोरयूटिल्स: "; chown --version | head -n1 | cut
--संस्करण
--संस्करण
--संस्करण
--संस्करण
--संस्करण
--संस्करण
|
|
|
|
|
|
सिर
सिर सिर
सिर
सिर सिर
-एन 1
-एन 1
-एन 1
-एन 1
-एन 1
-एन 1
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; फिर
awk है `/usr/bin/awk --version | head -n1`
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; फिर
awk है `/usr/bin/awk --version | head -n1`
"awk नहीं मिला"
"awk नहीं मिला"
यह देखने के लिए कि क्या आपके होस्ट सिस्टम में सभी उपयुक्त संस्करण हैं, और प्रोग्राम संकलित करने की क्षमता है, निम्नलिखित चलाएँ:
बिल्ली > version-check.sh << "EOF"
#! / Bin / bash
# महत्वपूर्ण विकास उपकरणों की संस्करण संख्याओं को सूचीबद्ध करने के लिए सरल स्क्रिप्ट export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
प्रतिध्वनि "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "त्रुटि: /bin/sh bash की ओर इंगित नहीं करता है" unset MYSH
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- bison --version | head -n1
यदि [ -h /usr/bin/yacc ]; तो
बिल्ली > version-check.sh << "EOF"
#! / Bin / bash
# महत्वपूर्ण विकास उपकरणों की संस्करण संख्याओं को सूचीबद्ध करने के लिए सरल स्क्रिप्ट export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
प्रतिध्वनि "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "त्रुटि: /bin/sh bash की ओर इंगित नहीं करता है" unset MYSH
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- bison --version | head -n1
यदि [ -h /usr/bin/yacc ]; तो
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; फिर
yacc है `/usr/bin/yacc --version | head -n1`
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; फिर
yacc है `/usr/bin/yacc --version | head -n1`
"yacc नहीं मिला"
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " इको
diff
खोजो
-फ़1,6-
-d)" -f2
"yacc नहीं मिला"
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " इको
diff
खोजो
यदि [ -h /usr/bin/awk ]; तो
यदि [ -h /usr/bin/awk ]; तो
इको एलिफ [
अन्य प्रतिध्वनि
गूंज
fi
इको एलिफ [
अन्य प्रतिध्वनि
गूंज
fi
जीसीसी --संस्करण | हेड -n1 जी++ --संस्करण | हेड -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc संस्करण grep --version | head -n1
gzip --version | head -n1 cat /proc/version
m4 --version | head -n1 make --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | head -n1
makeinfo --version | head -n1 # texinfo संस्करण xz --version | head -n1
जीसीसी --संस्करण | हेड -n1 जी++ --संस्करण | हेड -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc संस्करण grep --version | head -n1
gzip --version | head -n1 cat /proc/version
m4 --version | head -n1 make --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | head -n1
makeinfo --version | head -n1 # texinfo संस्करण xz --version | head -n1
इको 'int main(){}' > dummy.c && g++ -o dummy dummy.c यदि [ -x dummy ]
फिर प्रतिध्वनि "g++ संकलन ठीक है";
अन्यथा प्रतिध्वनि "g++ संकलन विफल"; fi rm -f dummy.c dummy
EOF
bash संस्करण-check.sh
इको 'int main(){}' > dummy.c && g++ -o dummy dummy.c यदि [ -x dummy ]
फिर प्रतिध्वनि "g++ संकलन ठीक है";
अन्यथा प्रतिध्वनि "g++ संकलन विफल"; fi rm -f dummy.c dummy
EOF
bash संस्करण-check.sh