2011-10-16 13 views
5

मैं एक डेबैन .deb पैकेज बनाने की कोशिश कर रहा हूं। पैकेज सफलतापूर्वक बनाया जा रहा है, लेकिन मैं जब मैं इसे स्थापित करने का प्रयास निम्न त्रुटि हो रही है:डीपीकेजी त्रुटि दे रहा है "एक निर्देशिका है"

unable to open file '/var/lib/dpkg/tmp.ci//opt': Is a directory 

पैकेज निर्देशिका संरचना है:

. 
└── DEBIAN 
    ├── control 
    ├── opt 
    │   └── myDir 
    │    └── myfile 
    ├── postinst 
    └── preinst 

preinst में मैंने - mkdir -p /opt/myDir postinst खाली है

अगर मैं एक अलग मेजबान पर पैकेज स्थापित करने का प्रयास, मैं त्रुटि नीचे मिल:

package control info rmdir of `opt' didn't say not a dir: Directory not empty

कोई विचार?

+1

सबसे पहले, आप preinst में निर्देशिका बनाना नहीं चाहते हैं। डीपीकेजी इसे आवश्यकतानुसार बना देगा। दूसरा, आप डेबियन पैकेज को/opt में इंस्टॉल नहीं करना चाहते हैं। यह डेबियन नीति और एफएचएस का उल्लंघन है। ऐसा कहकर, मुझे नहीं पता कि आप वास्तव में त्रुटि क्यों देख रहे हैं। –

+0

कृपया अपनी संपूर्ण 'preinst' स्क्रिप्ट पोस्ट करें। – Flimzy

उत्तर

4

आपकी निर्देशिका लेआउट गलत है। यह इस तरह से होना चाहिए:

. 
├── opt 
│ └── myDir 
│  └── myfile 
└── DEBIAN 
    ├── control 
    ├── postinst 
    └── preinst 

आप अपने पैकेज निर्माण के बाद आप lintian के साथ अपने प्रारूप का परीक्षण कर सकते हैं:

lintian my-package.deb 

मैं एक ही समस्या थी के रूप में आप और lintian इसे सुधारने में मेरी मदद की।

संबंधित मुद्दे