.Deb থেকে PKGBUILD তৈরি করুন


11

আমার একটি .debডিবিয়ান প্যাকেজ রয়েছে যা মূলত /usr/share/binএকটি সংকোচিত dataফাইলের মধ্যে একটি ফোল্ডার হিসাবে সফ্টওয়্যারটির বাইনারি থাকে এবং অন্য ফাইলগুলির চেকসামযুক্ত আরও একটি মেটাডেটা সংকুচিত ফাইল থাকে।

আমার লক্ষ্যটি PKGBUILDআর্চলিনাক্সে এই জাতীয় .deb প্যাকেজটি সঠিকভাবে ইনস্টল করার জন্য একটি তৈরি করা ।

এটি করার সঠিক উপায় কী?

ফাংশনটি ব্যবহার করে সেই /usr/share/binডিরেক্টরিটির বিষয়বস্তুগুলি pkg /usr/share/binফেকারূট পরিবেশে অনুলিপি করার পক্ষে কি যথেষ্ট build()? /usr/share/binবিল্ড প্যাকেজটি আসলে ইনস্টল হয়ে গেলে ফোল্ডারটি সত্য স্থানে অনুলিপি করা হবে ?


6
মূলত, হ্যাঁ (প্যাকেজ ফাংশন ব্যবহার ব্যতীত)। অন্যান্য প্যাকেজগুলির -bin
সমাপ্তিগুলির জন্য এআরটির

উত্তর:


9

হ্যাঁ, এটি বাইনারি উত্স সহ অন্যান্য পিকেজিইউআইএলডি-র মতো একইভাবে কাজ করবে - এটিকে বের করুন এবং ফাইলগুলি অনুলিপি করুন। একমাত্র জিনিস যা উল্লেখ করা উচিত যে দেবের-সংরক্ষণাগার 3 অন্যান্য ফাইল নিয়ে গঠিত হয় - debian-binary, control.tar.gz, data.tar.gz। Makepkg কেবল প্রথম স্তরের আর্কাইভটি বের করবে এবং তারপরে আপনাকে ম্যানুয়ালি নিষ্কাশন করা উচিত data.tar.gz

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

বিকল্পভাবে, আপনি নো-টেক্সট অ্যারেতে ডেব-সংরক্ষণাগার স্থাপন করতে পারেন এবং তারপরে কেবল ম্যানুয়ালি কেবল নিষ্কাশন করতে পারেন data.tar.gz:

$ ar p source.deb data.tar.gz | tar zx

makepkg$srcdirফাংশনগুলি সম্পাদন করার আগে বর্তমান ডিরেক্টরিটি পরিবর্তিত করে , সুতরাং আপনার আর
এটির

@ জেসনওয়ারিয়ান, বেশ কয়েকটি বিকাশকারী জানিয়েছেন যে এগুলি সত্যই থাকবে তার কোন গ্যারান্টি নেই। দীর্ঘায়ু হওয়ার জন্য, প্রথার রেওয়াজটি cd "${srcdir}"জায়গায় রেখে দেওয়া বোধগম্য হতে পারে ।
HalosGhost

1
@ হ্যালসগোস্ট আমি এটি শুনিনি। একই যুক্তি দিয়ে, এটি মিথ্যা হয়ে উঠবে এমন কোনও গ্যারান্টি নেই ... :)
জেসনওয়ারিয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.