আমি এখন বেশ কয়েকটি সংস্করণে (6.7.x থেকে ৫.৩.১ পর্যন্ত) রেল for এর জন্য আরও নতুন জিসিসি সংস্করণ তৈরি করেছি।
প্রক্রিয়াটি যথেষ্ট সহজ রেহ্যাটের জাকুব জালিনেক ফেডোরা জিসিসি বিল্ডিংয়ের জন্য কোজি-তে পাওয়া যায় বলে ধন্যবাদ
আপনার প্রয়োজনীয় সংস্করণটির জন্য সর্বশেষতম এসসিআর আরপিএমটি ধরুন (যেমন 5.3.1 ) .1
মূলত আপনি যে rpm -qpR src.rpm
কোনও সংস্করণ প্রয়োজনীয়তা সন্ধান করে বিল্ড প্রয়োজনীয়তাগুলি নির্ধারণ করে শুরু করবেন :
rpm -qpR gcc-5.3.1-4.fc23.src.rpm | grep -E '= [[:digit:]]'
binutils >= 2.24
doxygen >= 1.7.1
elfutils-devel >= 0.147
elfutils-libelf-devel >= 0.147
gcc-gnat >= 3.1
glibc-devel >= 2.4.90-13
gmp-devel >= 4.1.2-8
isl = 0.14
isl-devel = 0.14
libgnat >= 3.1
libmpc-devel >= 0.8.1
mpfr-devel >= 2.2.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
systemtap-sdt-devel >= 1.3
ক্লান্তিকর অংশটি এসেছে - যে কোনও প্যাকেজ যা আপনার ডিস্ট্রো থেকে কোম থেকে ডাউনলোড করা দরকার ইয়ম ফ্রু দ্বারা সরবরাহিত সংস্করণের চেয়ে বেশি সংস্করণ রয়েছে এবং সমস্ত নির্ভরতার প্রয়োজনীয়তা পূরণ না করা পর্যন্ত পুনরাবৃত্তভাবে প্রক্রিয়াটি পুনরাবৃত্তি করুন।
আমি ঠকাই, বিটিডব্লিউ।
আমি সঠিকভাবে স্থাপন করা এবং নামকরণ করা প্রয়োজনীয়তা ব্যবহারের জন্য gnu সুবিধা ব্যবহার করে একটি সঠিক বিল্ড ট্রি রাখার জন্য আরপিএমকে পুনঃস্থাপন করি, তাই জিএমপি / এমপিসি / এমপিএফআর / আইএসএল (ক্লোগ আর প্রয়োজন হয় না) ডাউনলোড করা হয় এবং সঠিক পথে অচিহ্ন হয়ে যায়, এবং নতুন (পুষ্পিত) টারটি তাদের প্যাকেজযুক্ত (আরপিএম) সংস্করণগুলির উপর নির্ভরতা না রেখে একটি নতুন এসসিআর আরপিএম (স্পেক ফাইলে সামান্য পরিবর্তন সহ) পুনর্নির্মাণ করা হয়েছে। যেহেতু আমি কেউ এডিএ ব্যবহার করি না জানি, তাই আমি স্পেসিফিল থেকে গনট সম্পর্কিত অংশগুলি সরিয়ে ফেলি, বিল্ডিং প্রক্রিয়াটিকে আরও সহজ করে, আমাকে চিন্তার জন্য কেবল বিনুটি দিয়ে রেখে।
জিসিসি প্রকৃতপক্ষে পুরানো বাইনুটিলগুলি দিয়ে তৈরি করতে পারে, তাই আপনি যদি তাড়াহুড়ো করেন তবে আপনার সিস্টেমে ইতিমধ্যে উপস্থিত বাইনুটিস সংস্করণটি প্রয়োজনীয় করতে স্পেসফাইলে আরও সম্পাদনা করুন। এর ফলে কিছুটা পঙ্গু জিসিসি হবে তবে বেশিরভাগ ক্ষেত্রে এটি যথেষ্ট ভাল পারফর্ম করবে well
এটি বেশিরভাগ ক্ষেত্রে বেশ ভাল কাজ করে।
আপডেট 1
কোনও এসআরসি আরপিএম খোলার সহজ পদ্ধতিটি হ'ল আপনি আরএমপি ইনস্টল করুন এবং ~ / আরপিএমবাইল্ডের অধীনে সমস্ত কিছু অ্যাক্সেস করুন তবে আমি পছন্দ করি
mkdir gcc-5.3.1-4.fc23
cd gcc-5.3.1-4.fc23
rpm2cpio ../gcc-5.3.1-4.fc23.src.rpm | cpio -id
tar xf gcc-5.3.1-20160212.tar.bz2
cd gcc-5.3.1-20160212
contrib/download_prerequisites
cd ..
tar caf gcc-5.3.1-20160212.tar.bz2 gcc-5.3.1-20160212
rm -rf gcc-5.3.1-20160212
# remove gnat
sed -i '/%global build_ada 1/ s/1/0/' gcc.spec
sed -i '/%if !%{build_ada}/,/%endif/ s/^/#/' gcc.spec
# remove gmp/mpfr/mpc dependencies
sed -i '/BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1/ s/.*//' gcc.spec
# remove isl dependency
sed -i '/BuildRequires: isl = %{isl_version}/,/Requires: isl-devel = %{isl_version}/ s/^/#/' gcc.spec
# Either build binutils as I do, or lower requirements
sed -i '/Requires: binutils/ s/2.24/2.20/' gcc.spec
# Make sure you don't break on gcc-java
sed -i '/gcc-java/ s/^/#/' gcc.spec
আপনার উপসর্গ সেট করার পছন্দও রয়েছে তাই এই আরপিএম ডিস্ট্রো আরপিএম না ভেঙে পাশাপাশি পাশাপাশি ইনস্টল করবে (তবে নাম পরিবর্তন করতে হবে, এবং অভ্যন্তরীণ প্যাকেজ নামগুলিতে কিছু পরিবর্তন প্রয়োজন)। আমি সাধারণত একটি এনভায়রনমেন্ট-মডিউল যুক্ত করি যাতে আমি আরপিএমের অংশ হিসাবে এই জিসিসি প্রয়োজনীয় হিসাবে (সংগ্রহগুলি কীভাবে কাজ করে তার অনুরূপ) লোড এবং আনলোড করতে পারি (তাই আমি একটি নতুন নির্ভরতা যুক্ত করি)।
অবশেষে আরপিএমবাইল্ড ট্রি তৈরি করুন এবং যেখানে ফাইলগুলি তৈরি করতে হবে সেখানে সেগুলি তৈরি করুন:
yum install rpmdevtools rpm-build
rpmdev-setuptree
cp * ~/rpmbuild/SOURCES/
mv ~/rpmbuild/{SOURCES,SPECS}/gcc.spec
rpmbuild -ba ~/rpmbuild/SPECS/gcc.spec
আপডেট 2
সাধারণত উন্নয়নের জন্য কারও একটি "সার্ভার" ওএস ব্যবহার করা উচিত নয় - এজন্য আপনার ফেডোরা রয়েছে যা ইতিমধ্যে সর্বশেষতম সিসিটি নিয়ে আসে। আমার কিছু বিশেষ প্রয়োজনীয়তা রয়েছে তবে কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করা আপনার সত্যই বিবেচনা করা উচিত - উত্পাদন অ্যাপ্লিকেশন চালানোর জন্য রেল / সেন্টোস, সেই অ্যাপ্লিকেশনগুলি বিকাশের জন্য ফেডোরা ইত্যাদি using