RedHat और SUSE दोनों की लंबी उद्यम लिनक्स परंपरा है और उन पैकेजों का उत्पादन करने और उनके लिए परीक्षण करने में कामयाब रहे। समय बीतने के साथ, उबंटू पर काम करने के लिए परीक्षण किए गए पैकेजों के अधिक उदाहरण होंगे। वास्तव में, पिछले साल से ऐसे कई पैकेज उबंटू के साथ काम करने के लिए परीक्षण किए गए हैं। जैसा कि कैननिकल अधिक विक्रेताओं के साथ समझौते करता है, अधिक उबंटू-प्रमाणित पैकेज होंगे।
अपने पहले प्रश्न के लिए: यदि आप एक ऐसा प्रोग्राम बनाना चाहते हैं जो सभी वितरणों पर चलता है, तो एक स्थिर (गतिशील की तुलना में) निष्पादन योग्य बनाएं। एक statically-linked
निष्पादन योग्य सिस्टम पुस्तकालयों पर निर्भर नहीं करता है, इसलिए वितरण के बीच काम कर सकता है, जब तक कि आर्किटेक्चर (जैसे इंटेल / एएमडी) समान है।
यहाँ एक कार्यक्रम है,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
सामान्य रूप से संकलित करते हैं,
$ gcc helloworld.c -o helloworld
$ ./helloworld
Hello, World!
$ ldd helloworld
libc.so.6 => /lib/libc.so.6 (0x00007f3cc3481000)
...
$
$ gcc helloworld.c -static -o helloworld_static
$ ./helloworld
Hello, World!
$ ldd helloworld_static
not a dynamic executable
$
तो, आप उस वीएचडीएल कार्यक्रम के साथ क्या कर सकते हैं? .Rpm फ़ाइल प्राप्त करें और इसे .deb में विदेशी का उपयोग करके परिवर्तित करें । फिर, स्थापित करें। यदि यह काम किया है, तो आप ठीक हैं। यदि यह काम नहीं करता है, तो यह ldd
पता लगाने के लिए उपयोग करें कि कौन सी लाइब्रेरी फ़ाइल गायब है। सबसे खराब स्थिति में, उन अन्य लिनक्स वितरणों के लिए एक वर्चुअल मशीन बनाएं और वहां प्रोग्राम चलाएं।