রুবি-সুইচ ছাড়াই রুবি 2.0 ইনস্টল করবেন?


23

আমি হতাশ হয়ে সর্বশেষ উবুন্টু 14.04 এ রুবি 2.0 ইনস্টল করার কাজটি সন্ধান করছি। আমি সচেতন যে আমি প্যাকেজগুলি এড়িয়ে যেতে এবং উত্স থেকে ইনস্টল করতে পারি - তবে যদি সম্ভব হয় তবে আমি একটি প্যাকেজ ইনস্টল করব।

রুবি সম্পর্কে এই প্রশ্ন / উত্তরটি আমি ১৩.১০-তে পেয়েছি - যা দেখতে চেয়েছিল এমন দেখায়।

রুবি কীভাবে ইনস্টল করবেন?

দুর্ভাগ্যক্রমে, কৌশলটি কার্যকর বলে মনে হচ্ছে না - রুবি-সুইচ প্যাকেজটি 14.04 এ মুছে ফেলা হয়েছে।

http://www.ubuntuupdates.org/package/core/trusty/universe/base/ruby-switch

প্যাকেজ মোছার ফলে একটি বাগ উল্লেখ করা হয়েছে যা আমার কাছে সম্পূর্ণ সম্পর্কিত নয়।

আমি কেন এপি-গেট ইনস্টল করে রুবি ১.৯ ব্যবহার করে রুবি ২.০ ইনস্টল করা এবং এটিকে ডিফল্ট রুবি ইন্টারপ্রেটার বানিয়েছি সে সম্পর্কে আমি বিস্মিত। আমি একটি রুবি ২.০ বাইনারি পেয়েছি - তবে স্ক্রিপ্টগুলি (যা রুবি সম্পাদন করার সময় ২.০ ইন্টারপ্রেটারের উপর নির্ভরশীল) এটিকে গ্রহণ করবেন না। তদ্ব্যতীত, আমি যখন রত্ন ইত্যাদি ব্যবহার করি। অল। রুবি প্যাকেজ ইনস্টল করতে - এগুলি 2.0 এর পরিবর্তে রুবি 1.9 এর জন্য ইনস্টল করা আছে বলে মনে হয়। খুব অসন্তুষ্টিহীন।

মানক রুবি ইন্টারপ্রেটার হিসাবে রুবি ২.০ ইনস্টল করার জন্য সবচেয়ে সহজ উপায়ের জন্য কি কেউ ইঙ্গিত দিতে পারে? রুবি-সুইচ ছাড়াই আমি রুবি ১.৯ থেকে ২.০ তে কীভাবে স্যুইচ করব?

উত্তর:


29

14.04 এর জন্য আমি নীচের পিপিএগুলি পেয়েছি যা রুবি ২.x এর সাথে আসে

  • রুবিকে 2.1 উবুন্টুতে 14.04 এ যুক্ত করুন

    sudo add-apt-repository ppa:brightbox/ruby-ng
    

আমি 14.04-এ রুবি ইনস্টল করার জন্য নির্দেশাবলীর গোষ্ঠীগুলিতেও GoRails এ খুঁজে পেয়েছি তবে আমি অনুমান করছি যেহেতু তারা দীর্ঘ হয় আপনি তার পরিবর্তে পিপিএ চাইবেন।

  • রুবিকে 1.9, 2.0 বা 2.1 কে উবুন্টু 14.04 এ যুক্ত করুন

    sudo add-apt-repository ppa:brightbox/ruby-ng-experimental
    

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

sudo apt-get update
sudo apt-get install ruby2.1 # In the case you want 2.1

6
উবুন্টু ১৪.০৪-এ রুবি ২.০ ইনস্টল করার জন্য একটি 'ব্যক্তিগত প্যাকেজ আর্কাইভ' যুক্ত করা কি সত্যিই প্রয়োজনীয় - এই যে "রুবি ২.০" ছাড়া কোনও প্যাকেজ পাওয়া যায়?
এস্টিভ

1
আপনি সবচেয়ে সোজা উপায় জিজ্ঞাসা করেছেন। এটি হ'ল রুবির অফিসিয়াল ২.x সংস্করণটি সফ্টওয়্যার সেন্টারে উপস্থিত না হওয়া অবধি বা রুবি ২.০.x সংস্করণটি আসল সংখ্যায় আপডেট হয় এবং এটি আপনার যে বাগটি পেয়েছিল তার মতো নয়।
লুইস আলভারাডো

হুম ... ubuntuupdates.org/package/core/trusty/main/base/ruby2.0 পরামর্শ দেয় যে 2.0 ইতিমধ্যে "মূল" ভাণ্ডারের অন্তর্ভুক্ত রয়েছে?
এস্টিভ

3
হ্যাঁ তবে আপনি যেমনটি উল্লেখ করেছেন এটি 2.x শাখা নয় তবে 1.9। সুতরাং তাদের এটি ঠিক করা উচিত।
লুইস আলভারাডো

2
দেখে মনে হচ্ছে 2.0 এবং 1.9 উভয় অনুবাদকই মূল ভান্ডারে রয়েছেন (একটি অদ্ভুত নির্ভরতার সাথে) - তবে রুবি-সুইচটি কোনও অদ্ভুত কারণে মুছে ফেলা হয়েছে।
এস্টিভ

8

রুবির ডেবিয়ান সংস্করণ একই সিস্টেমে বেশ কয়েকটি রুবি ইনস্টলেশন সমর্থন করে না। দেবিয়ান প্যাকেজটি অচল করে দিয়েছিল এবং উবুন্টু এটি সঞ্চিতাগুলি থেকে সরিয়ে ফেলল। আপনার rbenvবিভিন্ন রুবি সংস্করণগুলির মধ্যে স্যুইচ করতে ব্যবহার করা উচিত । এটি রুবি-স্যুইচ প্যাকেজ বিবরণ দ্বারা প্রস্তাবিত উপায় এবং এটি সেই পদ্ধতিটি ছিল যা বাগ হিসাবে 78৩77878২ তে অগ্রাধিকার হিসাবে আলোচনা করা হয়েছিল , যার মাধ্যমে বলা হয়েছে যে সংগ্রহস্থলগুলিতে কেবল রুবির এক সংস্করণের বেশি হওয়া উচিত নয়।

ruby2.0প্যাকেজ ইনস্টল করার সময় রুবি ২.০ ডিফল্টরূপে ইনস্টল করা হয় এবং অন্য কোনও ক্রিয়াকলাপের প্রয়োজন হয় না। যদি প্যাকেজটি rubyইনস্টল করা থাকে তবে এটি সরিয়ে দেওয়ার পরামর্শ দেওয়া হচ্ছে। /usr/bin/ruby2.0আপনার সিস্টেমে বাইনারি পাওয়া উচিত ।


2
হুমম ... আমি যখন রুবি ২.০ প্যাকেজটি ইনস্টল করেছি, তখন আমি একটি রুবি ২.০ এক্সিকিউটেবল এবং একটি রুবি ১.৯ এক্সিকিউটেবল পেয়েছি। রত্নের সাথে ইন্টারঅ্যাক্ট করার সময়, রুবি 1.9 সিস্টেম রুবি সংস্করণ হিসাবে ধরে নেওয়া হয়েছিল বলে মনে হয়েছিল। আরও তদন্তের পরে, আমি আবিষ্কার করেছি যে স্ক্রিপ্টগুলি (রুবি ২.০ প্রয়োজন বলে দাবি করা) আসলে রুবি ১.৯ দিয়ে জরিমানা - তাই আমি রুবি ২.০ প্যাকেজটি ত্যাগ করেছি। আমি কেবল একটি রুবি সংস্করণ চেয়েছিলাম - অর্থাত্ চালিত ২.০ - তবে উবুন্টু ১৪.০৪ প্যাকেজগুলি এটির অনুমতি দেয় বলে মনে হয় না।
এস্টিভ

উবুন্টু সেই পদ্ধতিটি ব্যবহার করে ডেবিয়ানে @ এসস্টেভ আমার যে সমস্যা আছে বলে মনে হয় না। আপনি যদি পছন্দ করেন তবে পরিবর্তে নিরাপদ দিকে থাকার জন্য, রুবেনভ দিয়ে রুবি ২.০ এর জন্য একটি ভার্চুয়াল পরিবেশ তৈরি করার চেষ্টা করুন।
ব্রায়াম

2
আমি অবশ্যই এটি দেখতে পাচ্ছি, এবং এটির কোনও মানে হয় না। অ্যাপটি-রাইটিং ইনস্টল করুন রুবি ২.০ আমি পেয়েছি: নিম্নলিখিত নতুন প্যাকেজগুলি ইনস্টল করা হবে: libjs-jquery libruby1.9.1 রুবি রুবি 1.9.1 রুবি 2.0 রুবিজেমস-ইন্টিগ্রেশন
জোশ


1
@jla না, আসলে ডেবিয়ান না রুবি বিভিন্ন সংস্করণ সমর্থন করার জন্য বেছে নেয় , আপনি দেখতে পাবেন পরিবর্তণের । দেবিয়ান বলেছে যে এটি কেবল একটি সংস্করণকে সমর্থন করবে এবং সংস্করণগুলি স্যুইচ করার সরঞ্জামগুলি কোনওভাবে ভেঙে গেছে, এটি দেবিয়ানের পরিস্থিতি কমবেশি অবস্থিত। উবুন্টু সিদ্ধান্ত নিয়েছিল সেই সময় ২.০-তে লিপ না করা।
ব্রায়াম

8
sudo apt-get install ruby2.0
sudo rm /usr/bin/ruby && sudo ln -s /usr/bin/ruby2.0 /usr/bin/ruby
sudo rm -fr /usr/bin/gem && sudo ln -s /usr/bin/gem2.0 /usr/bin/gem

আপনি ln -fsআপডেটটি জোর করতে এবং সর্বদা ভীতিকর ব্যবহার rm -rf
এড়াতেও পারেন

5

আপনি যদি রুবিগুলির মধ্যে পরিবর্তন করতে চান তবে আমি rvm ( https://rvm.io ) ব্যবহার করার পরামর্শ দিচ্ছি । এটি একটি প্যাকেজ পরিচালক এবং এটি আপনাকে ব্যবহারকারীর কাছে স্থানীয়ভাবে বা সমস্ত ব্যবহারকারীর জন্য স্থানীয়ভাবে এক মেশিনে অনেকগুলি বিভিন্ন রুবি (কেবল ম্যাটজের নয়) ইনস্টল করতে দেয়।

আমি জানি আপনি একটি "প্যাকেজ" চেয়েছিলেন, সম্ভবত এটি আপনার পক্ষে কাজ করবে না। তবে আমি অনুভব করেছি যে এটি আপনার বিকাশের মেশিন হলে এটি সহায়তা করতে পারে।

এটি এইভাবে করার সুবিধাটি হ'ল আপনি ২.১.১ এর জন্য একটি জেমসেট ইনস্টল করতে পারেন এবং অন্যদের ২.০ বা ১.৯.৩ ইত্যাদির জন্য ইনস্টল করতে পারেন It এটি আপনাকে আপনার সিস্টেমকে একটিতেও কমিট না করেই জুরবি, রুবিনিয়াস ইত্যাদি পরীক্ষা করতে দেয়।

আমি এটি উত্পাদনতে ব্যবহার করছি না, তবে দৃশ্যত এটি এটি সেইসাথে উন্নয়নের জন্য উপযুক্ত।

এখানে কুইকস্টার্ট: https://rvm.io/rvm/install


1

গেমটিতে দেরীতে হলেও আমি মনে করি যে হার্ড-কোডিং update-alternativesসিমলিংকের চেয়ে সম্ভবত আরও একটি সম্পূর্ণ সমাধান হ'ল অন্যরা একই হতাশায় কামড়ায় এবং আরও দেশীয় সমাধান চাইলে ভার্চুয়ালভাবে এখানে পোস্ট করা use এটি সমস্ত বাইনারি এবং ম্যান পৃষ্ঠাগুলি পরিচালনা করে, দ্বন্দ্ব এড়ানোর জন্য প্রথমে রেফারেন্সগুলি প্রিফেরিয়ালি সরিয়ে দেয়।

আদেশ সহকারে:

  • আমি মনে করি / যখন কোনও রুবি সংস্করণ আপডেট হয় তবে এটি পুনরায় চালু করা দরকার।
  • আমি গুরু নই update-alternativesসুতরাং এটি অতিমাত্রার এবং / বা ঘৃণ্যভাবে সম্পন্ন করা সম্ভব।

স্ক্রিপ্ট (আমি নাম দিয়েছি fix-ruby-alternatives.sh):

#!/bin/bash

# Script to insert all potentially alternative-able files within ruby versioned packages
# Bill Evans ("r2evans")
# April 19, 2015

BIN=/usr/bin
MAN=/usr/share/man/man1
MASTER="ruby"
SLAVES=( gem irb rdoc testrb rake erb ri )
VERSIONS=( 1.9.1 2.0 )

DRYRUN="yes"
[[ "$1" = "-y" ]] && unset DRYRUN

PRI=0
for ver in ${VERSIONS[@]} ; do
    PRI=$(( ${PRI} + 1 ))
    REMCMD="update-alternatives --remove ${MASTER} ${BIN}/${MASTER}${ver}"
    CMD="update-alternatives --install ${BIN}/${MASTER} ${MASTER} ${BIN}/${MASTER}${ver} ${PRI}"
    if test -f "${MAN}/${MASTER}${ver}.1.gz" ; then
        CMD="${CMD}    --slave ${MAN}/${MASTER}.1.gz ${MASTER}.1.gz ${MAN}/${MASTER}${ver}.1.gz"
    else
        echo "#  no ${MAN}/${MASTER}${ver}.1.gz" > /dev/stderr
    fi
    for sl in ${SLAVES[@]} ; do
        if test -f "${BIN}/${sl}${ver}" ; then
            CMD="${CMD}    --slave ${BIN}/${sl} ${sl} ${BIN}/${sl}${ver}"
        else
            CMD="${CMD}    --slave ${BIN}/${sl} ${sl} /dev/null"
            echo "#  no ${BIN}/${sl}${ver}" > /dev/stderr
        fi
        if test -f "${MAN}/${sl}${ver}.1.gz" ; then
            CMD="${CMD}    --slave ${MAN}/${sl}.1.gz ${sl}.1.gz ${MAN}/${sl}${ver}.1.gz"
        else
            CMD="${CMD}    --slave ${MAN}/${sl}.1.gz ${sl}.1.gz /dev/null"
            echo "#  no ${MAN}/${sl}${ver}.1.gz" > /dev/stderr
        fi
    done

    if [[ -n ${DRYRUN} ]]; then
        echo -e ${REMCMD}
        echo -e ${CMD} | sed -e 's/\s* --slave/\n    --slave/g'
        echo "# Consider: update-alternatives --auto ruby"
    else
        ${REMCMD}
        ${CMD}
        echo "# Consider: update-alternatives --auto ruby"
    fi
done

আইআইআরসি আপনি কেবল কল করতে পারেন ${RECMD}এবং ${CMD}ব্যবহারের পরিবর্তে কোট ছাড়াই eval। অন্য নোটে: আমি "ক্লজিংলি" bণ নেব। :)
মুরু

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