অ্যাপ + কেন জি ++ এর পরিবর্তে ভার্চুয়াল বক্স ইনস্টল করলেন?


12

আমি সবেমাত্র এমন কিছু এলাম যা আমি অবাক করেছিলাম লিনাক্স টার্মিনালের সাথে সম্ভবত একটি বড় সুরক্ষা সমস্যা হতে পারে। আমি g ++ 5.0 ইনস্টল করার চেষ্টা করছিলাম। আমি লিনাক্সের নবাগত, তাই আমি টাইপ করেছি sudo apt-get install g++ 5.0। কেবল কোনও ত্রুটি বা কিছু ফিরিয়ে দেওয়ার পরিবর্তে এটি ভার্চুয়াল বক্স ইনস্টল করে!

যদি আমি টার্মিনাল থেকে একটি জিনিস ইনস্টল করার চেষ্টা করি এবং এটি সম্পূর্ণ আলাদা কিছু ইনস্টল করে, এর অর্থ কি এটি অন্য কিছু, সম্ভবত ম্যালওয়ারের সাথে ঘটতে পারে? কেন আমি ভার্চুয়াল বক্স ইনস্টল করব যখন আমি যাইহোক, সম্পূর্ণ ভিন্ন কিছু টাইপ করি?


6
... এএফএআইআইকি apt-getব্যবহারকারীর কাছ থেকে নিশ্চিতকরণ জিজ্ঞাসা করবে, সুতরাং আপনি কেবল nভার্চুয়ালবক্সটি সন্নিবেশ করানো এবং ইনস্টল করা এড়াতে পারবেন ... এছাড়াও উবুন্টুর সংগ্রহস্থলটি চেক করা হয়েছে, সুতরাং এমন কোনও ম্যালওয়্যার প্যাকেজ নেই যা আপনি প্রথম স্থানে ইনস্টল করতে পারেন। আপনি যদি এলোমেলো পিপিএ যুক্ত করেন তবে এটি ঘটতে পারে তবে আপনি উবুন্টুকে একটি অবিশ্বস্ত উত্স থেকে অ্যাপ্লিকেশন ইনস্টল করতে বলেছিলেন that's
বাকুরিউ

1
Fav'd (এবং অবশ্যই +1 করা) কারণ এই প্রশ্নটি সত্যই এটির প্রাপ্য । এটি আপনার ক্রিয়াকলাপের জন্য যথেষ্ট যত্নশীল না হওয়ার (অপরিবর্তনীয়) খারাপ প্রভাবগুলি দেখায় এবং এটি একইরকম, গাফিলতির ভুল না করার অনুপ্রেরণা।
ইকনস

12
a major security issue with the Linux terminalনা, শান্ত হও। এটি ছিল (কোনও অপরাধ!) আপনি সঠিকভাবে পড়ছেন / টাইপ করছেন না - লিনাক্স apt-get, বা উপলব্ধ বিভিন্ন টার্মিনালগুলির কোনওরকম সমস্যা নেই।
আন্ডারস্কোর_১

2
@ ΈρικΚωνσταντόπουλος "অপরিবর্তনীয় খারাপ প্রভাব" কী কী? কোনও ম্যালওয়্যারবিহীন প্রোগ্রাম ইনস্টল করা যা আপনি সহজেই আনইনস্টল করতে পারবেন?
বাকুরিউ

2
আপনি "rm -rf ডিরেক্টরি এ / ডিরেক্টরি বি /" আবিষ্কার না করা পর্যন্ত অপেক্ষা করুন ( এটি চেষ্টা করবেন না! ) আপনি কী টাইপ করেন এবং রুট হিসাবে আটকানো আপনাকে যত্নবান হতে হবে।
pjc50

উত্তর:


29

আদেশ

sudo apt-get install g++ 5.0 

আপনি দুটি প্যাকেজ ইনস্টল করতে চান তা নির্দেশ করে: g++এবং 5.0। (প্যাকেজের নামগুলির ফাঁকা স্থান নেই, এবং এ্যাপ-গেট একাধিক প্যাকেজ নাম গ্রহণ করে, ফাঁক দিয়ে পৃথক করে))

সম্ভবত যা ঘটেছিল তা হ'ল অনুরোধ অনুযায়ী জি ++ ইনস্টল করা হয়েছে, তারপরে সমস্ত প্যাকেজ ইনস্টল করা হয়েছে (সংস্করণ সংখ্যা সহ) যা নিয়মিত প্রকাশের সাথে মেলে 5.0(যেহেতু আসলে কোনও প্যাকেজটির নাম নেই 5.0)। (ধন্যবাদ @ এডউইনকসেল!)

এটি এড়াতে, নিশ্চিত করুন যে আপনার ফাঁকা জায়গা ছাড়াই সঠিক প্যাকেজের নাম রয়েছে। আপনি -sবাস্তবের জন্য এটি করার আগে একটি উপযুক্ত-কার্য ক্রিয়া অনুকরণ করার বিকল্পটিও ব্যবহার করতে পারেন :

sudo apt-get -s install g++ 5.0

আপনি কর্ম প্রদর্শন করা হবে যে কমান্ড হবে আসলে কিছু ইনস্টল না করে, সঞ্চালন। যদি এটি ঠিক আছে, আপনি -sইনস্টলেশনটি সম্পাদন করতে অপসারণ করতে পারেন ।

এছাড়াও আপনি যেমন, আরো নবাগত বান্ধব গ্রাফিক্যাল প্যাকেজ ম্যানেজার ব্যবহার করে বিবেচনা করতে পারে synapticবা muon


4
5.0একটি রেজেক্স হিসাবে ব্যবহৃত হচ্ছে, সুতরাং apt"5.0" স্ট্রিংয়ের সাথে মিল রেখেই আরও কিছু করছে।
এডউইনকস্ল

10
যাদের সাথে পরিচিত নয় তাদের জন্য regexএকটি বিন্দু কোনও একক চরিত্রের সাথে মেলে। এবং যেহেতু ডিফল্টরূপে একটি রেজেক্স ম্যাচটি স্ট্রিংয়ের যে কোনও জায়গায় দেখায়, তার "5.0"অর্থ "যে কোনও নাম যা 5 রয়েছে, পরে 0 দ্বারা 2 অক্ষর অনুসরণ করে"। উদাহরণস্বরূপ "FooBar 2.510" বা "AcmeWidgets 5.0" ("যে কোনও একক চরিত্রের মধ্যে একটি আক্ষরিক বিন্দু রয়েছে")
এমএসএলটাররা

8

g++সংস্করণ 5.x ইনস্টল করার সঠিক কমান্ডটি হ'ল:

sudo apt-get install g++-5

এটি g++জেনিয়ালে 5.3 সংস্করণ ইনস্টল করবে যা বর্তমান ডিফল্ট (তাই apt-get install g++এটি ইনস্টল করুন তবে ভবিষ্যতে এটি পরিবর্তন হবে)। প্রকৃতপক্ষে, জিসিসির প্রকাশ্যে কোনও 5.0 প্রকাশ নেই। অন্যান্য g++প্রকাশগুলি প্যাকেজযুক্ত, যেমন g++-4.9বা g++-6, যা একই উপায়ে ইনস্টল করা যেতে পারে।

আপনার যদি কখনও কোনও নির্দিষ্ট (বিদ্যমান) রিলিজ ইনস্টল করতে হয় g++যা আপনার সিস্টেমের জন্য প্যাকেজযুক্ত নয়, আপনাকে উত্স থেকে এটি তৈরি করতে হবে


2
এটি একটি ভালো দিক; sudo apt install g++5.0( g++এবং এর মধ্যে স্থান ব্যতীত 5.0) এখনও ব্যর্থ হত।
এডউইনকস্ল

4

আসুন এটি ভেঙে দিন।

প্রথমত, apt-get install(এবং অন্যান্য অন্যান্য apt-getআর্গুমেন্টগুলি) কীভাবে কাজ করে সে সম্পর্কে কয়েকটি নোট :

  • আপনি একাধিক প্যাকেজ নাম ইনপুট করতে পারেন:

    sudo apt-get install foobar spamegg 
    
  • প্যাকেজের নাম আসলে রেগুলার এক্সপ্রেশন (ere) (চেক সম্প্রসারিত হয় man 7 regex) নিদর্শন তাই একটি প্যাকেজের নাম foo.barকোনো প্যাকেজের নাম যে দিয়ে শুরু হয় একটি সাবস্ট্রিং হয়েছে তার মানে fooও প্রান্ত barমধ্যে কোনো একক অক্ষর দিয়ে fooএবং bar। সম্ভবত এর f.*rঅর্থ যে কোনও প্যাকেজের নাম যা একটি স্ট্রিং রয়েছে fএবং rএর মধ্যে বেশ কয়েকটি সংখ্যক অক্ষর রয়েছে যার মধ্যে কিছু রয়েছে। পুরো প্যাকেজের নামের সাথে মিল রাখতে, শুরু এবং শেষ টোকেনগুলি ব্যবহার করুন উদাহরণস্বরূপ ^foo.bar$। আপনি আক্ষরিক যেকোনো Regex টোকেন আচরণ হতে চান আপনার সাথে টোকেন অব্যাহতি প্রয়োজন \চিকিত্সার জন্য যেমন foo.barআক্ষরিক, আপনি প্রয়োজন:

    sudo apt-get install 'foo\.bar'
    

    এখানে একক উদ্ধৃতি হ'ল গ্লোব্বিং প্যাটার্ন হিসাবে প্যাটার্নটির শেল ব্যাখ্যা প্রতিরোধ করা, এই ক্ষেত্রে প্রয়োজনীয় নয় তবে প্রয়োজন হবে যেমন প্যাটার্নের জন্য foo.*barযদি আপনার বর্তমান ডিরেক্টরিতে ডিরেক্টরিতে কোনও ফাইল থাকে যেমন foo.bar

  • প্যাকেজের নাম বিবেচনায় একটি ধরা আছে। যদি প্যাটার্নটির সাথে মিলে কোনও প্যাকেজ থাকে তবে প্যাটার্নটি আক্ষরিক অর্থে বিবেচনা করা হবে এবং কোনও রেজেক্স ব্যাখ্যা করা হবে না। উদাহরণস্বরূপ, একটি প্যাকেজ প্যাটার্নের জন্য g++, এটি g++রিজেক্স টোকেন নির্বিশেষে প্যাকেজটির সাথে আক্ষরিক মিলবে +। যদি g++সংজ্ঞায়িত ভান্ডারগুলিতে নামের কোনও প্যাকেজ না থাকে, তবে এটি একটি পূর্ব প্যাটার্ন হিসাবে বিবেচিত হবে।

এখন, আপনি আদেশটি দিয়েছেন:

sudo apt-get install g++ 5.0

এর অর্থ:

  • আপনি দুটি নিদর্শন সরবরাহিত প্যাকেজগুলি ইনস্টল করতে চান যথা g++এবং5.0

  • g++g++উপরে উল্লিখিত হিসাবে আক্ষরিক মেটা-প্যাকেজের সাথে মেলে

  • বাকি অংশে, 5.0একটি রেজেক্স টোকেন রয়েছে, .অর্থাত্ কোনও একক অক্ষর। সুতরাং এটি যে কোনও প্যাকেজের নামের সাথে মিলবে 5<any_character>0। সুতরাং ম্যাচের সমস্ত প্যাকেজ ইনস্টল করার জন্য বেছে নেওয়া হয়েছে এবং সম্ভবত virtualbox-5.0প্রক্রিয়াটিতেও নির্বাচন করা হয়েছে।

সম্ভবত আপনি g++সংস্করণ ইনস্টল করতে চান 5, সুতরাং নিম্নলিখিত কাজগুলি করতে হবে ( ইতিমধ্যে এই উত্তরে উল্লিখিত ); মেটা-প্যাকেজটি, সংস্করণ 5 g++-5এর সর্বশেষ উপলব্ধ ছোট ছোট প্রকাশিত প্যাকেজটি উল্লেখ করবে g++:

sudo apt-get install g++-5

কনফিগার করা সংগ্রহস্থলগুলির মধ্যে যে কোনও প্যাকেজ অনুসন্ধান করতে, ব্যবহার করুন apt-cache(ERE এর মতো ব্যবহার করুন apt-get):

apt-cache search 'g\+\+-[0-9]+'

আপনি যদি এটি রিজেক্স-ইফাই করতে না চান lessতবে বরং আরও বড় তালিকাতে স্ক্রোল করতে ব্যবহার করুন :

apt-cache search g++ | less

এছাড়াও আপনি যে বিষয়ে নিশ্চিত নন এমন কোনও কিছু ইনস্টল করার আগে -y( --assume-yes) বিকল্পটি ব্যবহার করবেন না এবং এটি প্রথমে -s( --simulate/ --dry-run) দিয়ে পরীক্ষা করুন :

sudo apt-get install --dry-run foobar

1
+1 সর্বাধিক সম্পূর্ণ এবং সংগঠিত উত্তর। আরইএসে ফিরে যাওয়ার আগে আক্ষরিক মিলের চেষ্টা করা; বর্ধিত আরই (প্লেইন আরইসের বিপরীতে) ব্যবহার; ক্ষমতা apt-cache searchসচেতন হওয়া গুরুত্বপূর্ণ।
আরিফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.