ডেবিয়ান জেসি 8.1 এ কীভাবে জিসিসি 5 ইনস্টল করবেন


21

আমি ডেবিয়ান সার্ভারে আমার জিসিসি সংকলকটির আপডেট ইনস্টল করার জন্য অনেকগুলি সমাধান চেষ্টা করেছি। তাদের কেউই কাজ করেননি। সি ++ 11 এর নতুন বৈশিষ্ট্যগুলি ব্যবহার করার জন্য আমার সংকলক আপডেটের প্রয়োজন, কারণ এটি একটি স্থিতিশীল libcxx11 এবিআই এবং সি ++ 11 ( এখানে উল্লেখ করুন ) এর জন্য স্থিতিশীল সমর্থন সরবরাহ করে । বিশেষত সংস্করণ পাওয়া যাচ্ছে `GLIBCXX_3.4.21 'যা আমার বর্তমান সংকলক জিসিসি সংস্করণ 4.9.2 (ডেবিয়ান 4.9.2-10) এ অন্তর্ভুক্ত নেই।

সমাধানের জন্য কিছু পয়েন্টার সহায়ক হবে। আগাম ধন্যবাদ.

আমার ইস্যু সম্পর্কিত ফোরামের কয়েকটি লিঙ্ক যা আমি ইতিমধ্যে চেষ্টা করেছি:

1 2 3 (পুরোপুরি সম্পর্কিত সমাধান উবুন্টুর জন্য নয়, তবে আমি এখনও ডেবিয়ানের এফটিপি সার্ভারে জিসিসি -5 খুঁজে পাইনি)


এটি ডেবিয়ান / পরীক্ষায় সরবরাহ করা হয়েছে এবং আপনি যেমন দেখছেন, রানটাইম লাইব্রেরিতে পরিবর্তনগুলি জড়িত। কেউ আপনাকে দেবিয়ান প্যাকেজ হিসাবে এটি কীভাবে করতে পারে সে সম্পর্কে পরামর্শ দিতে পারে, তবে প্রভাবিত প্যাকেজগুলির বৃহত সংখ্যার কারণে টেস্টিং কনফিগারেশনে স্যুইচ করা থেকে প্রভাবটি কিছুটা আলাদা হবে।
টমাস ডিকি

আপনার বিশেষত নতুন এবিআই সমর্থন প্রয়োজন কেন ? আপনি ডেবিয়ান 8 এর জিসিসি 4.9.2 দিয়ে সর্বাধিক সি ++ 11 কোড তৈরি করতে পারেন, ডিবিয়ান 9 প্রকাশের সময় আপনাকে কেবল এটি পুনরায় সংকলন করতে হবে। আপনি যদি অপেক্ষা করতে না পারেন, তবে সবচেয়ে সহজ সমাধানটি স্যুইচ করা হবে testingতবে এটি সম্ভবত কোনও সার্ভারে ভাল ধারণা নয় (অবশ্যই সার্ভারের দ্বারা আপনি কী বোঝাতে চাইছেন তার উপর নির্ভর করে)। জিসিসি ৪.৯ থেকে জিসিসি ৫-এ স্যুইচটিতে একটি গ্রন্থাগার স্থানান্তর জড়িত, তাই আপনি যদি নিজেই এটি করার চেষ্টা করেন তবে আপনি ব্যথার জগতে চলেছেন!
স্টিফেন কিট 22'16

থোমাস এবং স্টিফেন যা বলে তার সাথে আমি একমত, ব্যতীত আমি কোনও সার্ভারে টেস্টিং ব্যবহারের ধারণা সম্পর্কে খুব কম চিন্তিত নই। সমস্ত সার্ভারের বাইনারি এবং লাইব্রেরিগুলির দীর্ঘমেয়াদী সমানতা প্রয়োজন হয় না (যা "স্থিতিশীল" যার অর্থ ডেবিয়ান প্রসঙ্গে), কিছু সার্ভারের জন্য ট্র্যাকিং পরীক্ষা করা এমনকি অস্থিরতা আরও দরকারী (যদি বলি, রক্তপাতের বৈশিষ্ট্যগুলি প্রয়োজন হয়, বা কেবল স্ক্রিপ্ট কিডির আগে রাখতে)। যাইহোক, চলমান পরীক্ষামূলক / প্রকাশনা সার্ভারে অস্থির একেবারে প্রয়োজন সঙ্গে দক্ষতা এবং ডেবিয়ান জ্ঞান অনেকটা অনিয়মিত বিচ্ছেদ ঠিক করতে। অন্যান্য মেশিনে বা ভিএমগুলিতে প্রথমে পরীক্ষা আপগ্রেড করুন।
ক্যাস

@ যেহেতু আমি বাইনারিগুলির স্থিতিশীলতার কথা ভাবছিলাম না, বরং এর দুটি প্রধান অসুবিধাগুলি testing(তার নিজেরাই ব্যবহৃত): প্যাকেজগুলি কখনও কখনও অস্থায়ীভাবে অপসারণ করা হয় (যাতে আপনি কেবলমাত্র আপনার পরীক্ষায় যাচাই করেছেন সেটআপ ভিএম আর সহজেই উপলভ্য হবে না) , এবং সুরক্ষা ফিক্সগুলি বিলম্ব হতে পারে (কখনও কখনও দীর্ঘ সময়ের জন্য যদি testingএকটি বড় লাইব্রেরী ট্রানজিশন হয়, যদিও testing-securityএরকম ক্ষেত্রে রয়েছে)।
স্টিফেন কিট

1
আপনি যদি ডেবিয়ান সিস্টেমে আপনার প্রোগ্রামটি পুনরায় সংকলন করেন (এটির অনুলিপি না করে) এটি ঠিকঠাক কাজ করা উচিত।
স্টিফেন কিট

উত্তর:


13

আমার ডিবিয়ান জেসিতে জিসিসি 5+ ইনস্টল করা দরকার ছিল এবং ডেবিয়ান টেস্টিংয়ের জন্য যেমন পাওয়া যায় (কমপক্ষে জুন -16 এ) আপনি সেখানে উপলব্ধ প্যাকেজগুলি ইনস্টল করতে অ্যাপটি পিনিং ব্যবহার করতে পারেন ( https://wiki.debian.org/AptPreferences দেখুন ) ।

অ্যাপেন-পিনিং ব্যবহার করে ডেবিয়ান জেসি পরীক্ষা করা থেকে জিসিসি 5+ ইনস্টল করতে:

  1. ডিরেক্টরির মধ্যে একটি ফাইল তৈরি করে আপনার কার্যক্ষম সূত্র ডেবিয়ান পরীক্ষামূলক রেপো যোগ /etc/apt/sources.list.dলাইন ধারণকারী

    deb http://ftp.us.debian.org/debian testing main contrib non-free

  2. /etc/apt/preferences.dনিম্নলিখিতটি ধারণ করে একটি ফাইল তৈরি করে নির্দিষ্ট প্যাকেজগুলিতে টেস্টিং উত্সগুলি ব্যবহার করতে ডিবিয়ানকে নির্দেশ দিন :

    Package: *
    Pin: release a=testing
    Pin-Priority: 100
    
  3. অ্যাপটি ডাটাবেস আপডেট করুন: sudo apt-get update

  4. পরীক্ষা থেকে জিসিসি ইনস্টল করুন: sudo apt-get install -t testing gcc

    নোট করুন যে -t testingআপনি ব্যবহারের মাধ্যমে পূর্ববর্তী কনফিগার করা হিসাবে পরীক্ষার উত্স থেকে gcc ইনস্টল করতে বলুন pt

আমি দৃ sources়ভাবে যে কোনও সংকলন পরিষ্কার করতে এবং আপনার উত্সগুলি আবার সংকলনের আগে যে কোনও নির্ভরতা পুনরায় সংকলন করার পরামর্শ দিচ্ছি।

আনন্দ কর!


1
আমি কখনই এটি চেষ্টা করি নি (না চেষ্টা করার ইচ্ছাও করি) তবে আপনার পদ্ধতিটি আকর্ষণীয়। অনেকগুলি সফ্টওয়্যার স্যুইট জিসিসির মতো পুরো দেবিয়ান সিস্টেমের সাথে শক্তভাবে আবদ্ধ হয় এবং তার দ্বারা বোনা হয় না। আপনার পদ্ধতি কি সত্যিই কাজ করে? নাকি এটি সমাধানের চেয়ে বেশি সমস্যার সৃষ্টি করে? অদ্ভুত।
thb

1
আমি আসলে ভাল ফলাফল সঙ্গে এটা চেষ্টা: আমি সফলভাবে কম্পাইল সবাই সেটা তৈরী করতে লাগলেন এবং সিস্টেম কোন problems.Nevertheless সঙ্গে কাজ অব্যাহত ডান হতে পারে: জিসিসি সংস্করণ পরিবর্তনটি অন্যান্য প্যাকেজ সংকলন (অর্থাত যখন সঙ্গে প্যাকেজ ইনস্টল উৎস সংকলন ভাঙতে পারে pip) , তবে আমি মনে করি যে এই পদ্ধতিটি সর্বনিম্ন আক্রমণাত্মক কারণ aptকোন প্যাকেজগুলি জিসিসির উপর নির্ভরশীল এবং এটি প্রয়োজনীয় হিসাবে সামঞ্জস্যপূর্ণ সংস্করণ ইনস্টল করবে (যতদূর আমি মনে করতে পারি) তা ট্র্যাক করে রাখে।
llekn

2
পদক্ষেপ 2 এর জন্য দ্রষ্টব্য: /etc/apt/preferences.d/ এ থাকা ফাইলটিতে একটি বিন্দু থাকা উচিত নয় ""। ফাইলের নামতে বা ".প্রিফ" এ শেষ হবে। অন্যথায়, এই ফাইলটিকে উপেক্ষা করা হবে। ১০০ মানের অর্থের ব্যাখ্যা এবং কেন এটি বেছে নেওয়া হয়েছিল তা প্রশংসিত হবে।
লুডভিগ শুলজে

আমি যেমন বুঝতে পেরেছি, Pin-Priorityএকটি প্যাকেজ যত বেশি পাবে তত কম সংখ্যার সাথে অন্য প্যাকেজগুলির চেয়ে বেশি পছন্দ হবে। সুতরাং, যেমন ডিবিয়ানের অ্যাপপ্রেফেন্স পৃষ্ঠায় বলা হয়েছে, testingডিফল্টরূপে Pin-Priority: 900সমস্ত প্যাকেজগুলি testingডিফল্টরূপে ইনস্টল করা হয়ে যায়। সুতরাং, উল্লেখ করা হচ্ছে যে প্যাকেজগুলির অগ্রাধিকার কম testingহবে কেবলমাত্র যদি অনুরোধ করা হয় তবে কেবলমাত্র সেগুলি ইনস্টলযোগ্য হবেPin-Priority: 100testingapt-get install -t testing ...
llekn

1
@ লিকে-বি প্রকৃতপক্ষে, Package: gccপুরো সিস্টেমটিকে পরীক্ষায় উন্নীত করে । ডকুমেন্টেশন সম্পর্কে apt-prefencesতাই আমি এই অনুমান করা বিভ্রান্তিকর কি ঘটছে তা হয়: 1: পরীক্ষার থেকে প্যাকেজ বৃহত্তর সংস্করণ হিসাবে ডিফল্টরূপে, তারা মান বেশী 2 বেশি প্রাধান্য আছে: নির্ধারণ প্যাকেজ: gccসঙ্গে Pin-priority: 100তোলে পরীক্ষা থেকে সমস্ত প্যাকেজ ডিফল্ট অগ্রাধিকার আছে (বেশী মান) বাদে gcc। আমরা চেয়েছিলাম ঠিক এর বিপরীত। এই ভুলটি এড়াতে আমি উত্তর আপডেট করেছি
llekn

6

পূর্ববর্তী 2 টি উত্তরকে কাজ করে এমন একের সাথে সংযুক্ত করতে:

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list
apt-get update
apt-get install -t unstable gcc-5

কিন্তু !!! আপনি অস্থির থেকে প্যাকেজ ইনস্টল করার কারণে এটি আপনার নিজের ঝুঁকিতে ব্যবহার করুন। আপনি /etc/apt/sources.list.d/unstable.listএকবার প্যাকেজ ইনস্টল করার পরে আপনি মুছে ফেলতে চাইবেন ।

যদি সম্ভব হয় তবে ডকারের অধীনে ইনস্টল করুন যাতে আপনি আপনার ওএসকে বিশৃঙ্খলা না করে। আপনার মাইলেজ পরিবর্তিত হতে পারে.


4

2017-02-19 হিসাবে, gcc-5 পরীক্ষা থেকে সরানো হয়েছে :

https://tracker.debian.org/pkg/gcc-5

আপনি apt-get install gcc-5যদি প্রথমে এই লাইনটি মূল হিসাবে চালিত করতে পারেন:

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list

তারপরে, আপনি সম্ভবত /etc/apt/preferences.dllekn এর উত্তর অনুযায়ী সেই উত্সটির অগ্রাধিকারটি পরিবর্তন করতে চান ।


1

আমি গত সপ্তাহে সমস্যা ছিল; দেখে মনে হচ্ছে 2019-01-23-তে gcc-5 সম্পূর্ণভাবে সংগ্রহস্থল থেকে সরানো হয়েছে। ( Https://tracker.debian.org/pkg/gcc-5 দেখুন )

আপনার যদি সত্যিই এটির প্রয়োজন হয় তবে আমি মনে করি আপনি এটি উত্স থেকে সংকলন করতে পারেন। আমি আমার সিস্টেম থেকে নির্ভরতা বাদ দেওয়ার একটি উপায় খুঁজতে যাচ্ছি।

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