यह कमांड गेस्टएफएस-हैकिंग है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
गेस्टफ़्स-हैकिंग - libguestfs का विस्तार और योगदान
वर्णन
यह मैनुअल पेज उन हैकर्स के लिए है जो libguestfs को ही विस्तारित करना चाहते हैं।
अवलोकन OF THE स्रोत कोड
Libguestfs स्रोत github रिपॉजिटरी में स्थित है
https://github.com/libguestfs/libguestfs
libguestfs (RPC, बाइंडिंग, दस्तावेज़ीकरण) में बड़ी मात्रा में बॉयलरप्लेट कोड हैं
उत्पन्न. इसका मतलब यह है कि कई स्रोत फ़ाइलें गायब दिखाई देंगी
सीधा गिट चेकआउट। आपको जनरेटर चलाना होगा (''/autogen.sh && make -C
जनरेटर") उन फ़ाइलों को बनाने के लिए।
Libguestfs एक ऑटोटूल-आधारित बिल्ड सिस्टम का उपयोग करता है, जिसमें मुख्य फ़ाइलें हैं config.ac
और Makefile.am। जनक उपनिर्देशिका में जनरेटर, प्लस वर्णन करने वाली फ़ाइलें शामिल हैं
एपीआई. " उपनिर्देशिका में लाइब्रेरी के लिए स्रोत शामिल है। उपकरण और डेमॉन
उपनिर्देशिकाओं में उस कोड का स्रोत होता है जो उपकरण बनाता है, और कोड
जो क्रमशः उपकरण में चलता है। अन्य निर्देशिकाएँ अनुभाग में शामिल हैं
नीचे "स्रोत कोड उपनिर्देशिकाएँ"।
इस तथ्य के अलावा कि सभी एपीआई प्रवेश बिंदु कुछ जेनरेट किए गए कोड के माध्यम से जाते हैं, लाइब्रेरी है
सीधा। (वास्तव में, यहां तक कि जेनरेट किया गया कोड भी पढ़ने योग्य होने के लिए डिज़ाइन किया गया है, और होना भी चाहिए
सामान्य कोड के रूप में पढ़ा जाए)। कुछ क्रियाएँ पूरी तरह से लाइब्रेरी में चलती हैं, और C के रूप में लिखी जाती हैं
के अंतर्गत फ़ाइलों में कार्य करता है ". दूसरों को डेमॉन में भेज दिया जाता है जहां (कुछ के बाद)
उत्पन्न आरपीसी मार्शलिंग) वे फाइलों में सी फ़ंक्शन के रूप में दिखाई देते हैं डेमॉन.
स्रोत से निर्माण करने के लिए, पहले "README" फ़ाइल पढ़ें।
स्थानीय* फ़ाइलें
शीर्ष स्रोत निर्देशिका में फ़ाइलें जो उपसर्ग से शुरू होती हैं स्थानीय* गिट द्वारा नजरअंदाज कर दिया जाता है।
इन फ़ाइलों में स्थानीय कॉन्फ़िगरेशन या स्क्रिप्ट हो सकती हैं जिनकी आपको libguestfs बनाने के लिए आवश्यकता होती है।
परंपरा के अनुसार, मेरे पास एक फ़ाइल है जिसका नाम है स्थानीयकॉन्फ़िगर जो चारों ओर एक साधारण आवरण है
ऑटोजेन.श इसमें स्थानीय कॉन्फ़िगर अनुकूलन शामिल हैं जिनकी मुझे आवश्यकता है:
. localenv
./autogen.sh \
--डिफ़ॉल्ट-बैकएंड के साथ=libvirt \
--सक्षम-जीसीसी-चेतावनी \
--सक्षम-gtk-doc \
-सी \
"$@"
इसलिए मैं इसका उपयोग libguestfs बनाने के लिए कर सकता हूं:
./localconfigure && बनाएं
यदि शीर्ष बिल्ड निर्देशिका में कोई फ़ाइल है तो उसे कहा जाता है localenv, तो इसे स्रोत बनाया जाएगा
"निर्माण"। इस फ़ाइल में कोई भी आवश्यक स्थानीय पर्यावरण चर शामिल हो सकता है, उदाहरण के लिए। छोड़ने के लिए
परीक्षण:
# एक वैकल्पिक पायथन बाइनरी का उपयोग करें।
निर्यात Python=python3
# इस परीक्षण को छोड़ें, यह टूटा हुआ है।
SKIP_TEST_BTRFS_FSCK=1 निर्यात करें
ध्यान दें कि localenv शीर्ष मेकफ़ाइल द्वारा शामिल किया गया है (इसलिए यह मेकफ़ाइल टुकड़ा है)। लेकिन अगर
यह भी आपके द्वारा स्रोतित है स्थानीयकॉन्फ़िगर स्क्रिप्ट तो इसे शेल स्क्रिप्ट के रूप में उपयोग किया जाता है।
जोड़ना A नया API कार्य
क्योंकि libguestfs में बड़ी मात्रा में बॉयलरप्लेट कोड उत्पन्न होता है, इससे यह आसान हो जाता है
libguestfs API का विस्तार करने के लिए।
नई API क्रिया जोड़ने के लिए दो परिवर्तन हैं:
1. आपको कॉल का विवरण (नाम, पैरामीटर, रिटर्न प्रकार, परीक्षण,) जोड़ना होगा
दस्तावेज़ीकरण) से जनरेटर/क्रियाएं.एमएल.
एपीआई कार्रवाई दो प्रकार की होती है, यह इस बात पर निर्भर करता है कि कॉल वहां से गुजरती है या नहीं
उपकरण में डेमॉन, या पूरी तरह से लाइब्रेरी द्वारा सेवित है (देखें "आर्किटेक्चर"
Guestfs-internals(3)). "guestfs_sync" में Guestfs(3) पूर्व का एक उदाहरण है,
चूँकि उपकरण में सिंक किया गया है। "guestfs_set_trace" में Guestfs(3) एक है
उत्तरार्द्ध का उदाहरण, चूंकि हैंडल और सभी ट्रेसिंग में एक ट्रेस ध्वज बनाए रखा जाता है
पुस्तकालय की ओर किया जाता है।
अधिकांश नई क्रियाएँ पहले प्रकार की होती हैं, और "daemon_functions" सूची में जुड़ जाती हैं।
प्रत्येक फ़ंक्शन में RPC प्रोटोकॉल में उपयोग की जाने वाली एक अद्वितीय प्रक्रिया संख्या होती है जिसे असाइन किया जाता है
उस कार्रवाई के लिए जब हम libguestfs प्रकाशित करते हैं और उसका पुन: उपयोग नहीं किया जा सकता है। नवीनतम ले लो
प्रक्रिया संख्या और इसे बढ़ाएँ।
दूसरे प्रकार की केवल लाइब्रेरी क्रियाओं के लिए, "non_daemon_functions" सूची में जोड़ें।
चूंकि ये कार्य पुस्तकालय द्वारा सेवित हैं और आरपीसी पर यात्रा नहीं करते हैं
डेमॉन के लिए तंत्र, इन कार्यों को प्रक्रिया संख्या की आवश्यकता नहीं है, और इसी तरह
प्रक्रिया संख्या "-1" पर सेट है।
2. कार्रवाई लागू करें (सी में):
डेमॉन क्रियाओं के लिए, फ़ंक्शन "do_" लागू करें "डेमन/" निर्देशिका में।
लाइब्रेरी क्रियाओं के लिए, फ़ंक्शन "guestfs_impl_ लागू करें "src/" में
निर्देशिका.
किसी भी स्थिति में, क्या करना है इसके उदाहरण के रूप में किसी अन्य फ़ंक्शन का उपयोग करें।
ये परिवर्तन करने के बाद, संकलन करने के लिए "make" का उपयोग करें।
ध्यान दें कि आपको आरपीसी, भाषा बाइंडिंग, मैनुअल पेज या कुछ भी लागू करने की आवश्यकता नहीं है
अन्यथा। यह सब OCaml विवरण से स्वचालित रूप से उत्पन्न होता है।
जोड़ना परीक्षण के लिए AN API कार्य
आप प्रति एपीआई कॉल शून्य या जितने चाहें उतने परीक्षण प्रदान कर सकते हैं। परीक्षण या तो हो सकते हैं
एपीआई विवरण के भाग के रूप में जोड़ा गया (जनरेटर/क्रियाएं.एमएल), या कुछ दुर्लभ मामलों में आप
हो सकता है कि आप किसी स्क्रिप्ट को "परीक्षण/*/" में छोड़ना चाहें। ध्यान दें कि "परीक्षण/*/" में एक स्क्रिप्ट जोड़ना है
धीमा, इसलिए यदि संभव हो तो पहली विधि का उपयोग करें।
जब आप एपीआई परीक्षण जोड़ते हैं तो निम्नलिखित परीक्षण वातावरण का वर्णन करता है क्रियाएँ.एमएल.
परीक्षण वातावरण में 4 ब्लॉक डिवाइस हैं:
देव / / sda 500MB
परीक्षण के लिए सामान्य ब्लॉक डिवाइस।
/ Dev / SDB 500MB
/ Dev / sdb1 एक ext2 फ़ाइल सिस्टम है जिसका उपयोग फ़ाइल सिस्टम लिखने के संचालन के परीक्षण के लिए किया जाता है।
/ Dev / एसडीसी 10MB
कुछ परीक्षणों में उपयोग किया जाता है जहां दो ब्लॉक उपकरणों की आवश्यकता होती है।
/dev/sdd
निश्चित सामग्री के साथ आईएसओ (देखें) छवियाँ/test.iso).
उचित समय में परीक्षण चलाने में सक्षम होने के लिए, libguestfs उपकरण और
परीक्षणों के बीच ब्लॉक उपकरणों का पुन: उपयोग किया जाता है। इसलिए "guestfs_kill_subprocess" का परीक्षण करने का प्रयास न करें
Guestfs(3) :-एक्स
प्रत्येक परीक्षण एक प्रारंभिक परिदृश्य से शुरू होता है, जिसे "Init*" अभिव्यक्तियों में से किसी एक का उपयोग करके चुना जाता है,
में वर्णित जेनरेटर/प्रकार.एमएल. ये ऊपर उल्लिखित डिस्क को इनिशियलाइज़ करते हैं
विशेष तरीके से जैसा कि प्रलेखित है प्रकार.एमएल. आपको इसके बारे में कुछ भी अनुमान नहीं लगाना चाहिए
अन्य डिस्क की पिछली सामग्री जो प्रारंभ नहीं की गई है।
आप किसी भी व्यक्तिगत परीक्षण में एक पूर्वावश्यक खंड जोड़ सकते हैं। यह एक रन-टाइम चेक है,
जो असफल होने पर परीक्षा छोड़ दी जाती है। किसी कमांड का परीक्षण करते समय उपयोगी
libguestfs बिल्ड की सभी विविधताओं पर काम नहीं कर सकता। एक परीक्षण जिसकी पूर्व शर्त है
"हमेशा" का अर्थ है बिना किसी शर्त के चलना।
इसके अलावा, पैकेजर्स पहले पर्यावरण चर सेट करके व्यक्तिगत परीक्षणों को छोड़ सकते हैं
"चेक करें" चला रहा है।
SKIP_TEST_ _ =1
उदाहरण के लिए: "SKIP_TEST_COMMAND_3=1" "guestfs_command" के परीक्षण #3 को छोड़ देता है Guestfs(3).
या:
SKIP_TEST_ =1
उदाहरण के लिए: "SKIP_TEST_ZEROFREE=1" सभी "guestfs_zerofree" को छोड़ देता है Guestfs(3) परीक्षण.
पैकेजर्स उदाहरण के लिए सेटिंग करके केवल कुछ परीक्षण चला सकते हैं:
TEST_ONLY='vfs_type जीरोफ्री'
देख परीक्षण/सी-एपीआई/परीक्षण.सी ये पर्यावरण चर कैसे काम करते हैं इसके बारे में अधिक जानकारी के लिए।
डिबगिंग नया API कार्रवाई
नई कार्रवाइयों को सबमिट करने से पहले उनका परीक्षण करें।
आप नए कमांड आज़माने के लिए गेस्टफ़िश का उपयोग कर सकते हैं।
डेमॉन को डीबग करना एक समस्या है क्योंकि यह न्यूनतम वातावरण में चलता है। हालाँकि
आप डेमॉन से stderr तक संदेशों को fprintf कर सकते हैं, और यदि आप उपयोग करते हैं तो वे दिखाई देंगे
"अतिथिमछली -v"।
जोड़ना A नया भाषा बंधन
सभी भाषा बाइंडिंग जनरेटर द्वारा उत्पन्न की जानी चाहिए (देखें)। जनक उपनिर्देशिका)।
इसके लिए अभी तक कोई दस्तावेज नहीं है. हमारा सुझाव है कि आप मौजूदा बाइंडिंग को देखें, उदाहरण के लिए।
जनरेटर/ocaml.ml or जेनरेटर/perl.ml.
जोड़ना परीक्षण के लिए भाषा बाइंडिंग्स
भाषा बंधन परीक्षणों के साथ आना चाहिए। पहले भाषा बाइंडिंग का परीक्षण होता था
बल्कि तदर्थ, लेकिन हम हर भाषा में परीक्षणों के सेट को औपचारिक बनाने की कोशिश कर रहे हैं
बाइंडिंग का उपयोग करना चाहिए.
वर्तमान में केवल OCaml और Perl बाइंडिंग ही वास्तव में परीक्षणों के पूरे सेट को लागू करते हैं, और
OCaml बाइंडिंग विहित हैं, इसलिए आपको OCaml परीक्षण का अनुकरण करना चाहिए।
यह परीक्षणों द्वारा उपयोग की जाने वाली क्रमांकन योजना है:
- 000+ बुनियादी परीक्षण:
010 लाइब्रेरी लोड करें
020 बनाएं
030 सृजन-झंडे
040 एकाधिक हैंडल बनाएं
050 परीक्षण सेटिंग और कॉन्फ़िगरेशन गुण प्राप्त करना
060 स्पष्ट रूप से बंद करें
065 अंतर्निहित बंद (जीसी'डी भाषाओं में)
070 ऑप्टार्ग्स
- 100 लॉन्च, विभाजन और एलवी और फ़ाइल सिस्टम बनाएं
- 400+ इवेंट:
410 समापन घटना
420 लॉग संदेश
430 प्रगति संदेश
- 800+ प्रतिगमन परीक्षण (भाषा के लिए विशिष्ट)
- भाषा के लिए 900+ कोई अन्य कस्टम परीक्षण
परीक्षण चलाते समय समय बचाने के लिए, केवल 100, 430, 800+, 900+ पर हैंडल लॉन्च करना चाहिए।
स्वरूपण कोड
हमारा सी स्रोत कोड आम तौर पर कुछ बुनियादी कोड-फ़ॉर्मेटिंग परंपराओं का पालन करता है।
मौजूदा कोड आधार इस मोर्चे पर पूरी तरह सुसंगत नहीं है, लेकिन हम इसे पसंद करते हैं
योगदान किए गए कोड को समान रूप से स्वरूपित किया जाना चाहिए। संक्षेप में, इंडेंटेशन के लिए स्पेस-नॉट-टीएबी का उपयोग करें,
प्रत्येक इंडेंटेशन स्तर के लिए 2 रिक्त स्थान का उपयोग करें, और इसके अलावा, K&R शैली का पालन करें।
यदि आप Emacs का उपयोग करते हैं, तो अपनी स्टार्ट-अप फ़ाइलों में से किसी एक में निम्नलिखित जोड़ें (उदाहरण के लिए, ~/.emacs),
यह सुनिश्चित करने में सहायता के लिए कि आपको इंडेंटेशन सही मिले:
;;; Libguestfs में, हर जगह रिक्त स्थान के साथ इंडेंट करें (TABs नहीं)।
;;; अपवाद: मेकफ़ाइल और चेंजलॉग मोड।
(ऐड-हुक 'फाइंड-फ़ाइल-हुक
'(लैम्ब्डा () (यदि (और बफर-फ़ाइल-नाम
(स्ट्रिंग-मैच "/libguestfs\\>"
(बफ़र-फ़ाइल-नाम))
(नहीं (स्ट्रिंग-बराबर मोड-नाम "लॉग बदलें"))
(नहीं (स्ट्रिंग-बराबर मोड-नाम "मेकफ़ाइल")))
(सेटक्यू इंडेंट-टैब-मोड शून्य))))
;;; Libguestfs में C स्रोतों को संपादित करते समय, इस शैली का उपयोग करें।
(डिफन libguestfs-सी-मोड ()
"Libguestfs के साथ उपयोग के लिए समायोजित डिफ़ॉल्ट के साथ सी मोड।"
(इंटरैक्टिव)
(सी-सेट-शैली "के एंड आर")
(सेटक्यू सी-इंडेंट-लेवल 2)
(सेटक्यू सी-बेसिक-ऑफ़सेट 2))
(ऐड-हुक 'सी-मोड-हुक
'(लैम्ब्डा () (यदि (स्ट्रिंग-मैच "/libguestfs\\>"
(बफ़र-फ़ाइल-नाम))
(libguestfs-सी-मोड))))
परीक्षण तुंहारे परिवर्तन
संकलन करते समय चेतावनियाँ सक्षम करें (और इसमें मिलने वाली किसी भी समस्या को ठीक करें):
./configure --enable-gcc-warnings
उपयोगी लक्ष्य हैं:
"चेक करें"
नियमित परीक्षण सूट चलाता है।
इसे नियमित ऑटोमेक "TESTS" लक्ष्य का उपयोग करके कार्यान्वित किया जाता है। ऑटोमेक देखें
विवरण के लिए दस्तावेज।
"चेक-वेलग्रिंड बनाएं"
वैलग्रिंड के अंतर्गत परीक्षण सूट का एक सबसेट चलाता है।
कोई Makefile.am जिस पेड़ में "चेक-वालग्रिंड:" लक्ष्य है, वह इसके द्वारा चलाया जाएगा
राज करते हैं।
"चेक-वालग्रिंड-स्थानीय-अतिथि बनाएं"
स्थानीय रूप से स्थापित libvirt मेहमानों का उपयोग करके वैलग्रिंड के अंतर्गत परीक्षण सूट का एक सबसेट चलाता है
(सिफ़ पढ़िये)।
"चेक-डायरेक्ट करें"
डिफ़ॉल्ट उपकरण बैक-एंड का उपयोग करके सभी परीक्षण चलाता है। इसका कोई प्रभाव तभी पड़ता है जब कोई गैर-
डिफ़ॉल्ट बैकएंड का चयन "./configure --with-default-backend=..." का उपयोग करके किया गया था
"चेक-वालग्रिंड-डायरेक्ट बनाएं"
डिफ़ॉल्ट उपकरण बैक-एंड का उपयोग करके वेलग्रिंड के अंतर्गत परीक्षण सूट का एक सबसेट चलाएँ।
"चेक-यूएमएल बनाएं"
उपयोगकर्ता-मोड लिनक्स बैकएंड का उपयोग करके सभी परीक्षण चलाता है।
चूँकि यूजर-मोड लिनक्स कर्नेल के लिए कोई मानक स्थान नहीं है, आप है सेट करने के लिए
कर्नेल छवि को इंगित करने के लिए "LIBGUESTFS_HV", उदाहरण के लिए:
चेक-uml LIBGUESTFS_HV= बनाएं~/d/linux-um/vmlinux
"चेक-वालग्रिंड-यूएमएल बनाएं"
वेलग्रिंड के अंतर्गत यूजर-मोड लिनक्स बैकएंड का उपयोग करके सभी परीक्षण चलाता है।
जैसा कि ऊपर बताया गया है, आपको कर्नेल को इंगित करने के लिए "LIBGUESTFS_HV" सेट करना होगा।
"चेक-विथ-अपस्ट्रीम-क्यूमू बनाएं"
स्थानीय क्यूमू बाइनरी का उपयोग करके सभी परीक्षण चलाता है। यह QEMUDIR में qemu बाइनरी की तलाश करता है
(डिफ़ॉल्ट करने के लिए $HOME/d/qemu), लेकिन आप इसे कमांड पर किसी अन्य निर्देशिका में सेट कर सकते हैं
पंक्ति, उदाहरण के लिए:
चेक-विथ-अपस्ट्रीम-क्यूएमयू बनाएं QEMUDIR=/usr/src/qemu
"चेक-विथ-अपस्ट्रीम-libvirt बनाएं"
स्थानीय libvirt का उपयोग करके सभी परीक्षण चलाता है। इसका कोई प्रभाव तभी पड़ता है जब libvirt बैकएंड हो
"./configure --with-default-backend=libvirt" का उपयोग करके चयन किया गया था
यह LIBVIRTDIR में libvirt की तलाश करता है (डिफ़ॉल्ट रूप से)। $HOME/d/libvirt), लेकिन आप इसे सेट कर सकते हैं
कमांड लाइन पर किसी अन्य निर्देशिका में, उदाहरण के लिए:
चेक-विथ-अपस्ट्रीम-libvirt बनाएं LIBVIRTDIR=/usr/src/libvirt
"चेक-धीमा करो"
कुछ धीमे/लंबे समय तक चलने वाले परीक्षण चलाता है जो डिफ़ॉल्ट रूप से नहीं चलते हैं।
कोई Makefile.am उस पेड़ में जिसमें "चेक-स्लो:" लक्ष्य है, इस नियम द्वारा चलाया जाएगा।
"सभी की जांच करें"
सभी "चेक करें*" नियमों को चलाने के बराबर।
"चेक-रिलीज़ करें"
"चेक करें*" नियमों का एक उपसमूह चलाता है जिसे टारबॉल होने से पहले पारित करना आवश्यक है
मुक्त। वर्तमान में यह है:
· जाँच करना
· चेक-वेलग्रिंड
· चेक-डायरेक्ट
· चेक-वेलग्रिंड-डायरेक्ट
· जाँच-धीमा
"इंस्टॉलचेक करें"
Libguestfs की स्थापित प्रति पर "चेक करें" चलाएँ।
स्थापित libguestfs के संस्करण का परीक्षण किया जा रहा है, और libguestfs के संस्करण का
स्रोत वृक्ष समान होना चाहिए.
कार्य करें:
./autogen.sh
साफ़ करो ||:
बनाना
इंस्टॉलचेक करें
डेमोन कस्टम printf फॉर्मेटर्स
डेमॉन कोड में हमने कस्टम प्रिंटफ फॉर्मेटर %Q और %R बनाए हैं, जिनका उपयोग किया जाता है
शैल उद्धरण करो.
%Q सरल शेल उद्धृत स्ट्रिंग. कोई भी रिक्त स्थान या अन्य शेल वर्ण आपके लिए बच गए हैं।
%R, %Q के समान है सिवाय इसके कि स्ट्रिंग को एक पथ के रूप में माना जाता है जिसे sysroot द्वारा उपसर्ग किया जाता है।
उदाहरण के लिए:
asprintf (&cmd, "cat %R", पथ);
"cat /sysroot/some\ path\ with\ spaces" उत्पन्न करेगा
नोट: Do नहीं जब आप "कमांड{,r,v,rv}()" पर पैरामीटर पास कर रहे हों तो इनका उपयोग करें
कार्य. इन मापदंडों को उद्धृत करने की आवश्यकता नहीं है क्योंकि वे इसके माध्यम से पारित नहीं होते हैं
शेल (इसके बजाय, सीधे निष्पादित करने के लिए)। आप संभवतः "sysroot_path()" फ़ंक्शन का उपयोग करना चाहेंगे
तथापि।
प्रस्तुत करने तुंहारे नया API कार्रवाई
मेलिंग सूची में पैच सबमिट करें: http://www.redhat.com/mailman/listinfo/libguestfs और
सीसी टू [ईमेल संरक्षित].
अंतर्राष्ट्रीयकरण (I18N) समर्थन
हम लाइब्रेरी में i18n (किसी भी तरह से टेक्स्ट प्राप्त करें) का समर्थन करते हैं।
हालाँकि, डेमॉन से कई संदेश आते हैं, और हम फिलहाल उनका अनुवाद नहीं करते हैं।
एक कारण यह है कि उपकरण में आम तौर पर सभी स्थानीय फ़ाइलें हटा दी जाती हैं, क्योंकि
वे बहुत अधिक जगह घेरते हैं। इसलिए हमें उनमें से कुछ को पढ़ना होगा, साथ ही अपनी प्रतिलिपि भी बनानी होगी
पीओ उपकरण में फ़ाइलें डालता है।
डिबगिंग संदेशों का कभी अनुवाद नहीं किया जाता, क्योंकि वे प्रोग्रामर के लिए होते हैं।
स्रोत कोड उप-निर्देशिकाएं
संरेखित करें
पुण्य-संरेखण-स्कैन(1) आदेश और दस्तावेज़ीकरण।
उपकरण
libguestfs उपकरण, स्क्रिप्ट बनाना इत्यादि।
खूब जोर से पीटना
बैश टैब-समापन स्क्रिप्ट।
बिल्ड-ऑक्स
ऑटोटूल्स द्वारा उपयोग की जाने वाली विभिन्न बिल्ड स्क्रिप्ट।
निर्माता
virt-बिल्डर(1) आदेश और दस्तावेज़ीकरण।
बिल्ली RSI पुण्य-बिल्ली(1) गुण-फ़ाइल सिस्टम(1) virt-लॉग(1) और पुण्य-ls(1) आदेश और
प्रलेखन।
योगदान
बाहरी योगदान, प्रायोगिक भाग।
अनुकूलित
virt-अनुकूलित(1) आदेश और दस्तावेज़ीकरण।
डेमॉन
डेमॉन जो libguestfs उपकरण के अंदर चलता है और क्रियाएं करता है।
df पुण्य-डीएफ(1) आदेश और दस्तावेज़ीकरण।
डीआईबी पुण्य-डिब(1) आदेश और दस्तावेज़ीकरण।
diff
गुण-अंतर(1) आदेश और दस्तावेज़ीकरण।
डॉक्टर विविध मैनुअल पृष्ठ.
संपादित
गुण-संपादन(1) आदेश और दस्तावेज़ीकरण।
उदाहरण
सी एपीआई उदाहरण कोड।
मछली
अतिथि मछली(1), कमांड-लाइन शेल, और शीर्ष पर निर्मित विभिन्न शेल स्क्रिप्ट जैसे
गुण-प्रतिलिपि(1) पुण्य-प्रतिलिपि(1) पुण्य-तार-में(1) पुण्य-टार-आउट(1).
प्रारूप
गुण-प्रारूप(1) आदेश और दस्तावेज़ीकरण।
फ्यूज
गेस्टमाउंट(1), FUSE (यूजरस्पेस फाइलसिस्टम) libguestfs के शीर्ष पर बनाया गया है।
जनक
अत्यंत महत्वपूर्ण जनरेटर, जिसका उपयोग बड़ी मात्रा में स्वचालित रूप से उत्पन्न करने के लिए किया जाता है
आरपीसी और बाइंडिंग जैसी चीजों के लिए बॉयलरप्लेट सी कोड।
प्राप्त-कर्नेल
पुण्य-प्राप्त-कर्नेल(1) आदेश और दस्तावेज़ीकरण।
gnulib
Gnulib का उपयोग पोर्टेबिलिटी लाइब्रेरी के रूप में किया जाता है। गनुलिब की एक प्रति यहां शामिल है।
इंस्पेक्टर
गुण निरीक्षक(1), वर्चुअल मशीन छवि निरीक्षक।
प्रतीक चिन्ह
वेबसाइट पर इस्तेमाल किया गया लोगो. वैसे मछली को आर्थर कहा जाता है।
m4 ऑटोकॉन्फ़ द्वारा उपयोग किया जाने वाला M4 मैक्रोज़।
मेक-एफएस
पुण्य-मेक-एफएस(1) आदेश और दस्तावेज़ीकरण।
एमएललिब
विभिन्न पुस्तकालयों और द्वारा उपयोग किए जाने वाले सामान्य कोड पुण्य-आकार बदलना(1) और अन्य उपकरण जो हैं
OCaml में लिखा गया है।
पी2वी पुण्य-p2v(1) पुण्य-पी2वी आईएसओ या डिस्क के निर्माण के लिए कमांड, दस्तावेज़ीकरण और स्क्रिप्ट
छवि।
po सरल गेटटेक्स्ट स्ट्रिंग्स का अनुवाद।
पीओ-दस्तावेज़
मैनपेजों और पीओडी फाइलों के अनुवाद के लिए बुनियादी ढांचे और पीओ फाइलों का निर्माण।
अंततः इसे इसके साथ जोड़ दिया जाएगा po निर्देशिका, लेकिन वह बल्कि है
उलझा हुआ।
बचाव
पुण्य-बचाव(1) आदेश और दस्तावेज़ीकरण।
आकार बदलें
पुण्य-आकार बदलना(1) आदेश और दस्तावेज़ीकरण।
विरल करना
पुण्य-विरलता(1) आदेश और दस्तावेज़ीकरण।
" सी लाइब्रेरी का स्रोत कोड।
sysprep
पुण्य-सिसप्रेप(1) आदेश और दस्तावेज़ीकरण।
परीक्षण
टेस्ट।
परीक्षण डेटा
परीक्षणों द्वारा उपयोग की जाने वाली फ़ाइलें और अन्य परीक्षण डेटा।
परीक्षण-उपकरण
अंतिम उपयोगकर्ताओं के लिए परीक्षण उपकरण यह परीक्षण करने के लिए कि क्या उनका क्यूमू/कर्नेल संयोजन काम करेगा
libguestfs.
tmp परीक्षण चलाते समय अस्थायी फ़ाइलों के लिए उपयोग किया जाता है (इसके बजाय)। / Tmp वगैरह)। कारण है
ताकि आप एक सेट के बिना libguestfs के कई समानांतर परीक्षण चला सकें
दूसरे द्वारा बनाए गए उपकरण को ओवरराइट करने का परीक्षण।
उपकरण
पर्ल में लिखे कमांड लाइन टूल्स (पुण्य-जीत-reg(1) और कई अन्य)।
v2v पुण्य-v2v(1) आदेश और दस्तावेज़ीकरण।
वेबसाइट
RSI http://libguestfs.org वेबसाइट फ़ाइलें.
सी तेज
Erlang
gobject
golang
Haskell
जावा
चंद्रमा
ओकैमली
पीएचपी
पर्ल
अजगर
माणिक
भाषा बंधन.
रायः A स्थिर रिहाई
जब हम एक स्थिर रिलीज़ करते हैं, तो यहां कई चरण प्रलेखित होते हैं। देखें "LIBGUESTFS
संस्करण संख्या" में Guestfs(3) स्थिर शाखा नीति के बारे में सामान्य जानकारी के लिए।
· चेक "मेक && मेक चेक" कम से कम फेडोरा, डेबियन और उबंटू पर काम करता है।
· जांचें कि "./configure --without-libvirt" काम करता है।
· अंतिम रूप देना गेस्टफ़्स-रिलीज़-नोट्स.पॉड
· ज़ानाटा से धक्का दें और खींचें।
चलाएँ:
ज़नाटा पुश
नवीनतम POT फ़ाइलों को ज़ानाटा में भेजने के लिए। तो भागो:
./ज़नाटा-पुल.श
जो नवीनतम अनुवादित को खींचने के लिए एक आवरण है *.पो फाइलें.
· गनुलिब को नवीनतम अपस्ट्रीम संस्करण में अपडेट करने पर विचार करें।
· के अंतर्गत नई स्थिर और विकास निर्देशिकाएँ बनाएँ http://libguestfs.org/download.
· संपादित करें वेबसाइट/index.html.in.
· संस्करण सेट करें (में) config.ac) नए के लिए स्थिर संस्करण, यानी. 1.XX.0, और प्रतिबद्ध
यह:
./localconfigure
डिस्टक्लीन बनाएं -k
./localconfigure
बनाओ && बनाओ जिला
अनुरक्षक-प्रतिबद्ध करें
अनुरक्षक-टैग बनाओ
· गिट में स्थिर शाखा बनाएं:
गिट शाखा स्थिर-1.XX
गिट पुश ओरिजिन स्टेबल-1.XX
· स्थिर शाखा का पूर्ण विमोचन करें।
· संस्करण को अगले विकास संस्करण पर सेट करें और उसे प्रतिबद्ध करें। वैकल्पिक रूप से पूर्ण करें
विकास शाखा का विमोचन.
onworks.net सेवाओं का उपयोग करके ऑनलाइन गेस्टफ़्स-हैकिंग का उपयोग करें