অনুপস্থিত সি কোডটি কীভাবে সনাক্ত করা যায়


9

আমি উত্তরাধিকার সূত্রে একটি উত্তরাধিকার বিকাশ ব্যবস্থা পেয়েছি যা খারাপভাবে নথিভুক্ত রয়েছে এবং উত্স কোডটি এখনও উপলব্ধ কিনা তা জানা যায়নি।

এখন আমি কিছু উত্স কোড সনাক্ত করতে পারি এবং প্রকৃতপক্ষে সিস্টেমের একটি অংশ তৈরি করতে পারি।

আমি অবাক হয়েছি যদি আমি বাকী উত্স কোডটি খুঁজে পেতে পারি এবং যদি locate *.cফাইলগুলির থেকে এবং ম্যানুয়ালি ফাইলগুলি পরিদর্শন করার চেয়ে ভাল উপায় থাকে (তবে আমি কোডটির কিছু অংশ খুঁজে পেয়েছি)।

এখানে 3 টি মেশিন রয়েছে এবং কেবলমাত্র একটি যেখানে আমি উত্স কোডটি পেয়েছি যা দেখে মনে হয় এটি একটি ডেভলপমেন্ট মেশিন। এটিতে .debarch১ টি সংরক্ষণাগারও রয়েছে যা প্রকল্পগুলির প্যাকেজভুক্ত সংস্করণ বলে মনে হয়, তবে .debসংরক্ষণাগারগুলি অনুসন্ধান করে দেখা যায় যে উত্সটি সংরক্ষণাগারগুলিতে নেই বা কমপক্ষে আমি কোথায় দেখেছি looked

সোর্স কোডের জন্য একটি সম্পূর্ণ ড্রাইভ "স্ক্যান" করার কি কোনও ভাল উপায় আছে?

উত্তর:


9

এটি আপনার আরও সাধারণ প্রশ্নের উত্তর দেবে না, তবে আপনার নির্দিষ্ট ক্ষেত্রে, যেহেতু আপনার সিস্টেমে প্যাকেজ রয়েছে, তাই সংশ্লিষ্ট উত্স কোডটি সন্ধান করা মূল্যবান:

find / -name \*.orig.tar\* -o -name \*.dsc

এটি দেবিয়ান প্যাকেজ বিল্ডিং সরঞ্জামগুলি যেভাবে প্রত্যাশা করে এবং উত্স প্যাকেজ নিয়ন্ত্রণ ফাইলগুলির নামে নাম উত্স সংরক্ষণাগারগুলি সন্ধান করবে। আপনার জন্য যারা, বর্ণন যদি জানতে .debian.tar*বা .diff.gzতাদের পাশাপাশি ফাইল। এই সমস্ত ফাইল সমন্বিত সমস্ত প্যাকেজ মেটাডেটা সহ আপনাকে উত্স কোড এবং বিল্ড বিধিগুলি দেবে।

আপনি আনপ্যাক করা নিয়ন্ত্রণ ফাইলগুলিও সন্ধান করতে পারেন:

find / -name control

এগুলি সাধারণত debianকোনও প্যাকেজের উত্সের উপ-ডিরেক্টরিতে বাস করবে , যাতে উত্স থেকে প্যাকেজটি পুনঃনির্মাণ করার জন্য আপনার প্রয়োজনীয় সমস্ত কিছু থাকা উচিত।


1
এছাড়াও: find / -wholename '*/debian/rules'। অথবা (দ্রুত, যদি mlocate ইনস্টল করা)locate -r /debian/rules$
CA গুলির

2
@ ক্যাস আমি এটি নিরাপদে এখানে খেলতে চাইছি, আমি দেবিয়ান প্যাকেজগুলি তৈরির জন্য বেশ কয়েকটি অদ্ভুত সেটআপ দেখেছি। locateদ্রুততর হবে, তবে আমি পূর্বে এটি পুনরুদ্ধার করা সিস্টেমগুলিতে চালিত হয়ে হতাশ হয়ে পড়েছি - locateউত্স কোড সম্পর্কে এখনও নতুন যা ডাটাবেস চলে গেছে। (ব্যাকআপগুলি উপলভ্য থাকলে এটি এখনও কার্যকর তথ্য হতে পারে ...)
স্টিফেন কিট


1
@ জেডিবিপি আমি যাচ্ছিলাম "এটিতে 61১ টি .debসংরক্ষণাগারও রয়েছে যা মনে হয় প্রকল্পগুলির প্যাকেজযুক্ত সংস্করণ" (sic)।
স্টিফেন কিট

2
@ ডিজেড্যাক এটি দুর্দান্ত, কেবল findফাইলগুলি পড়ার চেষ্টা করে /procযা সময়ের findসাথে সাথে ফাইলগুলি তালিকা তালিকা তৈরি করে এবং এটি পড়ার সময়টির মধ্যে অদৃশ্য হয়ে যায় । আপনি /procপুরোপুরি এড়িয়ে যেতে পারেন ।
স্টিফেন কিট

1

আমি সাধারণত উত্স ফাইলগুলির সাথে কাজ করার জন্য স্ক্রিপ্টগুলির সংমিশ্রণটি ব্যবহার করি। ঠিক যেমন উপরের উত্তরটি আপনার ক্ষেত্রে ঠিক সমাধান করবে না, তবে প্রতীকগুলি অনুসন্ধান করা উত্স ফাইলগুলি সনাক্ত করতে সহায়তা করতে পারে।

নিম্নলিখিতটিতে যুক্ত করা হয়েছে bashrc:

function list-code-files() {
    find -type f \( \
        -name '*.cpp' -o \
        -name '*.java' -o \
        -name '*.php' -o \
        -name '*.[chS]' -o \
        -name 'Makefile' -o \
        -name '*.mk' \
        \) -print0
}

function csym() {
    list-code-files | xargs -0 grep -ne "$1"
}

তারপরে আমি উত্স ফাইলগুলি ব্যবহার করে তালিকাবদ্ধ করতে পারি list-code-files | xargs -0 echoবা ব্যবহার করে প্রতীক অনুসন্ধান করতে পারিcsym some-symbol-regexeg

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