আপডেট-বিকল্প ব্যবহার করে বিকল্প যুক্ত করার আরও ভাল উপায়?


16

আমি update-alternativesবেশ কয়েকবার ম্যানুয়ালটি সন্ধান করেছি কিন্তু বর্তমান লিঙ্কটি নির্দিষ্ট বিকল্পের দিকে কীভাবে দেখানো যায় তা আমি খুঁজে বের করতে পারি না এবং নতুন বিকল্প যুক্ত করার সময় সেই তথ্যের প্রয়োজন হয়।

update-alternativesম্যানুয়াল থেকে :

--install <link> <name> <path> <priority>

ধরা যাক আমি জাভা রানটাইম সংস্করণের একটি নতুন সংস্করণ যুক্ত করতে চাই, তবে আমি বর্তমান সিমলিংকটি জানি না যা বিকল্পটির সাথে সংযোগ দেয় ( <link>প্যারামিটার)। আমি বর্তমানে যা করছি তা হ'ল:

sudo update-alternatives --install /tmp/randomStuff java /usr/local/java/jre1.7.0_25/bin/java 0

এই কমান্ড আউটপুট হবে:

update-alternatives: renaming java link from /usr/local/bin/java to /tmp/randomStuff.

আউটপুটটি পড়তে আমি পুরানো লিঙ্কটি খুঁজে পাই যা বিকল্পটির দিকে ইঙ্গিত করছিল, তাই আমি অবশেষে আমার কমান্ডটি আবার সঠিক <link>পরামিতি দিয়ে চালাতে পারি , এতে পরিবর্তিত /tmp/randomStuffহয়ে /usr/local/bin/java:

sudo update-alternatives --install /usr/local/bin/java java /usr/local/java/jre1.7.0_25/bin/java 0

এটি দুর্দান্ত কাজ করে, তবে আপনি যেমন দেখতে পরামিতি /tmp/randomStuffহিসাবে কমান্ডটি চালাচ্ছেন <link>তা খুব বিশ্রী।

সুতরাং, এখানে প্রশ্নগুলি আসে: (1) এমন কোনও update-alternativeযুক্তি রয়েছে যা বর্তমান লিঙ্কটি নির্দিষ্ট বিকল্পের দিকে নির্দেশ করছে বা আউটপুট করতে পারে বা (২) নতুন প্যারামিটার সরবরাহ না করেই কোনও নতুন বিকল্প ইনস্টল করার উপায় রয়েছে? স্রোত রাখছি <link>?

উত্তর:


13

আপনার প্রথম প্রশ্নের উত্তর দিতে আমি আপনাকে ইঙ্গিত করতে চাই --query:

   --query name
          Display information about the link group like --display does, but in a machine parseable way (see section QUERY FORMAT below).

এটি সজ্জিত আপনি লিঙ্ক উত্স পাবেন, যেমন জাভা জন্য আমার ক্ষেত্রে:

usr@srv % update-alternatives --query java
Name: java
Link: /usr/bin/java
[...]

সুতরাং, আপনি আমার শৃঙ্খল দেখতে পায় /usr/bin/java -> /etc/alternatives/java -> ...

দুর্ভাগ্যক্রমে, আপনার দ্বিতীয় প্রশ্নের উত্তর আমার কাছে নেই। আমি কিছুদিন আগে এর জন্য একটি সমাধান অনুসন্ধান করেছিলাম, তবে মনে হয় এখনও কোনও সহজ কাজ হয়নি। আপনি যা করতে পারছেন তা --queryকলটির আউটপুট বিশ্লেষণ করার জন্য কিছু হ্যাক লেখা , সম্ভবত এটির মতো:

update-alternatives --query java | /bin/grep Link | cut -f 2 -d " "

যা আপনি --installকলটির জন্য ইনপুট হিসাবে ব্যবহার করতে পারেন । তবে যেহেতু এটি আমার মতে বেশ অগোছালো তাই আমি এটির প্রস্তাব দেব না। পরিবর্তে আপনি দেখতে চান galternatives, বিকল্প সিস্টেমের একটি ফ্রন্ট-এন্ড। এমনকি যদি আমি এই জাতীয় বেসিক কাজের জন্য গ্রাফিকাল স্টাফ ব্যবহার করতে পছন্দ না করি তবে এটি বেশ সুবিধাজনক এবং আমি কমান্ড লাইন সরঞ্জামগুলির পরিবর্তে এই সরঞ্জামটি ব্যবহার করে শেষ করেছি।

সম্পাদনা

কৌতূহল ছিলাম কীভাবে কীভাবে update-alternativesজানে কমান্ড সিমলিংক এবং উত্সগুলিতে একটি সংক্ষিপ্ত বিবরণ গ্রহণ করেছে। অবশ্যই বিকল্প সিস্টেমে প্রতিটি গ্রুপের জন্য কনফিগারেশন সংরক্ষণ করতে হয় এবং দেখা যায় যে এটি প্রশাসনিক ডিরেক্টরি এবং ম্যান পৃষ্ঠায় লিখিত ;-)

আপনি এই তথ্যটি /var/lib/dpkg/alternatives(ডিফল্ট অনুসারে) পেয়ে যাবেন । এই ফাইলগুলির প্রত্যেকের দ্বিতীয় লাইনটি আপনি সন্ধান করছেন এমন মাস্টার লিঙ্কটি সংজ্ঞায়িত করে । আপনি এটির মতো এটি বের করতে পারেন:

usr@srv $ sed -ne 2p /var/lib/dpkg/alternatives/java
/usr/bin/java

যাইহোক, এটির পুরানো সংস্করণ রয়েছে তাদের জন্য এটি কেবল একটি কাজ update-alternatives


উত্তর দেওয়ার জন্য ধন্যবাদ, তবে আপডেট-বিকল্পগুলির যে সংস্করণটি আমি চালিয়ে যাচ্ছি (1.16.1.2) --query বা --display ব্যবহার করে লিঙ্কের তথ্য প্রদর্শন করে না। আপনি কি সংস্করণ ব্যবহার করছেন? sudo update-alternatives --query java Link: java Status: auto Best: /usr/local/java/jre1.6.0_45/bin/java Value: /usr/local/java/jre1.6.0_45/bin/java Alternative: /usr/local/java/jre1.6.0_45/bin/java Priority: 0
পাগলিচ

আমি 1.16.10ইনস্টল করেছি । আপনি কি আপনার সংস্করণ আপডেট করতে পারবেন না?
বিনফালস

তুমি আসল পুরুষ! উভয় সমাধানই দুর্দান্ত!
পাগলিচ

6

সিম্পলটন এখানে প্রশ্ন: সিস্টেমটি কমান্ড-লাইনের মাধ্যমে কোনও প্রোগ্রামকে কল করতে যে লিঙ্কটি ব্যবহার করে তা হ'ল <link>সর্বদা কি সরল সাধারণের দ্বারা পুনরুদ্ধার করা which [program]যায় না?

উদাহরণস্বরূপ, পাইচার্মের জন্য যে লিঙ্কগুলি পেয়েছি সেগুলি অনুসরণ করে:

user@computer:~$ which pycharm
/usr/bin/pycharm
user@computer:~$ ll /usr/bin/pycharm
lrwxrwxrwx 1 root root 25 Mar 12  2015 /usr/bin/pycharm -> /etc/alternatives/pycharm*
user@computer:~$ ll /etc/alternatives/pycharm 
lrwxrwxrwx 1 root root 43 Mar 12  2015 /etc/alternatives/pycharm -> /opt/pycharm-community-4.0.5/bin/pycharm.sh*

এবং আমি তখন ব্যবহার করতে পারি:

sudo update-alternatives --install /usr/bin/pycharm pycharm /opt/pycharm-community-4.5.0/bin/pycharm.sh 0

আমার নতুন পাইচার্ম ইনস্টল করার জন্য।

তারপরে আপনি আউটপুটটি ব্যবহার করতে কোনও স্ক্রিপ্ট তৈরি করতে পারেন which


টিপটির জন্য ধন্যবাদ, তবে এমন সময় রয়েছে যখন তা সহায়ক হবে না। আমি update-alternativesফায়ারফক্সের জন্য জাভা এবং ফ্ল্যাশ প্লাগইনগুলি ট্র্যাক রাখতেও ব্যবহার করি এবং আমি "/ usr / lib / mozilla / plugins" পথটি সর্বদা ভুলে যাই যেখানে এই প্লাগইনগুলি আমার রাখা উচিত। সেই পাথটি ব্যবহার করে whichবা whereisআমার মনে আসা কোনও কমান্ড আমি খুঁজে পাচ্ছি না, যখনই @ বিফালসির উত্তর আমার মেশিনে সঠিকভাবে ফিরে আসে যখন আমি দৌড়ব update-alternatives --query java-plugin
প্যাগলিউচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.