পরিবর্তিত প্যাকেজটি পুনঃনির্মাণের চেষ্টা করার সময় "dpkg- উত্স: উত্সে উপস্থিতযোগ্য পরিবর্তনসমূহ"


8

আমি এটি ব্যবহার করে উত্সটি একটি প্যাকেজে ডাউনলোড করেছি:

$ apt-get source gkrellweather

আমারও কম্পাইল নির্ভরতা ছিল তা নিশ্চিত করেছিলাম:

$ sudo apt-get build-dep gkrellweather

এবং আমি পরীক্ষা করেছি যে এটি জরিমানা তৈরি করতে পারে:

$ cd gkrellweather-2.0.8
$ debuild

এটি .debউপরের ফোল্ডারে একটি প্যাকেজ তৈরি করেছে , যা আমি এটি ব্যবহার করে ইনস্টল করতে পারি:

$ sudo dpkg -i ../gkrellweather*.deb

ঠিক আছে তাই সবকিছু ঠিক আছে। চল শুরু করি!

আমি ভিমে সোর্স কোডটি খুললাম এবং আমি চাই কিছু পরিবর্তন করেছি। তারপরে আমি পুনর্নির্মাণের চেষ্টা করেছি:

$ debuild

তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
 dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files: 
 GrabWeather
 Makefile
 gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

কেন?

উত্তর:


5

জোয়েটউইলালের জবাবের জন্য ধন্যবাদ যেহেতু এটি আমাকে এই সমস্যার সমাধান করার জন্য একটি দুর্দান্ত জায়গা দিয়েছে place

আমার পাইথন প্রকল্পে আমি ডেবিয়ান প্যাকেজ তৈরি করার চেষ্টা করেছি, আমি এটি ব্যবহার করছি:

  • পাইবিল্ড ডেবিড চালানোর আগে ডেবিয়ান প্যাকেজ প্রস্তুত করতে
  • সংস্করণ নিয়ন্ত্রণের জন্য গিট
  • পাইথন বিকাশের জন্য পাইচর্ম আইডিই

গিট একটি .gitডিরেক্টরি তৈরি করে , পাইবাইল্ড একটি .pybuildডিরেক্টরি তৈরি করে এবং পাইচার্ম .ideaআমার প্রকল্পের মূলের মধ্যে একটি ডিরেক্টরি তৈরি করে ।

কারণ জোয়েটউইডল উল্লেখ করেছেন যে ডাবিল্ড একটি নির্দিষ্ট ফাইল পছন্দ করে না (তার ক্ষেত্রে একটি swp ফাইল) তখন আমি অনুভব করেছি যে এটি সম্ভবত লুকানো ডিরেক্টরিগুলি সম্পর্কে উপযুক্ত। আমি খুঁজে পেয়েছি যে debuild -iগিটের জন্য , আপনি এটি করতে পারেন: এবং এটি পাইবিল্ড এবং ধারণা ডিরেক্টরি হিসাবে সংস্করণ নিয়ন্ত্রণ ডিরেক্টরিগুলি উপেক্ষা করে, আমি এখনও অন্য কোনও বিকল্প খুঁজে পাই নি। তাই আমার সমাধান জন্য, আমি একটি ফাঁকা নির্দেশিকাতে আমার প্রকল্প নিয়ে কপি, মুছে ফেলা .git, .ideaএবং .pybuildডিরেক্টরি এবং সাফল্য!


3
-iএর মধ্য দিয়ে debuildযায় dpkg-buildpackageএবং যায় dpkg-source, যার ম্যান পেজ বলে যে একটি রেজিপ্স্প সরবরাহ করা যেতে পারে। পরীক্ষা না করে আমার ধারণা, -i'(^|/)\.(git|idea|pybuild)($|/)'আপনার জন্য কাজ করতে পারে।
জোয়েটউইডল

3

এটি আমাকে একাধিকবার ছাপিয়েছে। কখনও কখনও আমি ভেবেছিলাম উত্সটি পরিবর্তনের পরে ত্রুটিগুলি ত্রুটির কারণ হ'ল উত্সটি পরিবর্তনের পরে প্যাকেজ রক্ষণাবেক্ষণকারীদের স্বাক্ষর (সাইনঅফ) সেই উত্সের জন্য আর বৈধ নয়।

তবে আসলে এই ক্ষেত্রে উত্তরটি সহজ ছিল:

dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed

সমস্যাটি হ'ল ভিম একটি সোফিল ফাইল তৈরি করেছিল এবং debuildএটি পছন্দ করে না!

সমাধানটি সহজ ছিল: সোয়াপ ফাইলটি সরিয়ে ফেলুন এবং তারপরে বিল্ডিং কাজ করতে পারে:

$ rm ./.gkrellweather.c.swp
$ debuild
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.