আপনার কাছে /var/lib/gems/2.3.0 ডিরেক্টরিতে লেখার অনুমতি নেই


112

আমি আমার উবুন্টু 16.04 এ রুবি ইনস্টল করেছি।

$which ruby  

/usr/bin/ruby

$ruby -v 

ruby 2.3.0p0 (2015-12-25) [x86_64-linux-gnu]

$gem install bundler 

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /var/lib/gems/2.3.0 directory.

যে কোন সাহায্য সাদরে গৃহীত হবে!


আপনি আরভিএম ইনস্টল করার চেষ্টা করতে পারেন এবং
২.৩.৩ এর

মন্তব্য 3 এর জন্য: "পাইথন-সফটওয়্যার-প্রোপার্টি" প্যাকেজটি উপলব্ধ নেই আপনার সফ্টওয়্যার-প্রপার্টি-কমন-এর জন্য প্রতিস্থাপন করা উচিত
ফ্রান্সিসকো পেদ্রাজা

4
আরভিএম বিকল্প, এবং ইমো আরও ভাল এবং সহজ একটি খাঁটি "ব্যবহারকারী-ইনস্টল" হিসাবে হিসাবে ইনস্টল করুন (একটি বৈশ্বিক বিরোধী, অধিকার-দাবিদার এক) অধিকারের সাথে ঝুঁকির চেয়ে আরও ভাল জিনিস হতে পারে!
ফ্রাঙ্ক নোক

8
আমি চাই যে এই স্ট্রিমটি ব্যাখ্যা করে যে কেন এই ওপিতে এই সমস্যা ছিল এবং কেন তারা রুবি এবং একাধিক ইনস্টলেশন পরিচালক (আরভিএম বা আরবিইভিএন) উভয়ের পক্ষে রুবির একটি সংস্করণ ত্যাগ করতে হবে। আমি এখানে পরামর্শটি কেবল ব্যক্তিগত পছন্দকে ভিত্তি করে কিনা তা নিশ্চিত করে বলতে অক্ষম to আমি আশা করি এই পরামর্শের পিছনে আরও কিছু আছে।
বাল্ডএগল

উত্তর:


159

আপনাকে প্রথমে উবুন্টু ইনস্টল করা রুবি এর মতো কিছু দিয়ে আনইনস্টল করতে হবে sudo apt-get remove ruby

তারপরে রুবিকে তাদের ডক্স অনুযায়ী rbenv এবং রুবি-বিল্ড ব্যবহার করে পুনরায় ইনস্টল করুন:

cd $HOME
sudo apt-get update 
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.3.1
rbenv global 2.3.1
ruby -v

শেষ পদক্ষেপটি বান্ডিলার ইনস্টল করা:

gem install bundler
rbenv rehash

তারপর ভোগ!

ডেরেক



4
আমি আনইনস্টল করতে একরকম রিটিক্যান্ট, যেহেতু এটি নির্ভরশীল প্রোগ্রামগুলিও আনইনস্টল করা প্রয়োজন ( vim-gnomeউদাহরণস্বরূপ)। আমার ধারণা আমি প্রথমে এটি ব্যবহারকারীর ইনস্টল করার জন্য কেন লিখতে হবে তা জানতে পছন্দ করব /var/lib/...... sudo gem installপ্রয়োজনের পরে আমি কি একটি কাজ করেছি ?
প্লাজমাবিন্টুরং

4
আমি @ অ্যান্টসকোভারডকো এর সাথে একমত, উত্তরটি রুবির আনইনস্টলকে ন্যায়সঙ্গত করতে পারলে ভাল লাগবে
ব্লুং

4
দারুচিনি পরিবেশে রুবি আনইনস্টল করার সময় (সাবধানতা অবলম্বন করুন লিনাক্স মিন্টে 18.2 এ হয়েছিল), রিবুট করার পরে আমি গ্রাফিক মোডে সিস্টেম চালাতে পারিনি। যখন এটি আপনার হয়ে থাকে, তখন সিএলআই-এ যান Ctrl+Alt+F1এবং নিম্নলিখিত কমান্ডগুলি চালান (আনইনস্টল করুন এবং আবার sudo apt purge cinnamon && sudo apt install cinnamon
কাউট

4
এই উত্তর বয়সের হিসাবে, আপনি সম্ভবত সর্বশেষতম উপলব্ধগুলি কী তা জানতে চাইবেন: rbenv install -lএকটি তালিকা জন্য সমস্ত উপলভ্য সংস্করণ এবং তারপরে rbenv install 2.5.12.5.1 সংস্করণ বা যা আপনি চান তার জন্য।
পল স্টার্ম

67

আপনি যদি rb-env / rvm এর পরিবর্তে রুবি ব্যবহার করতে চান তবে আপনি GEM_HOMEআপনার বর্তমান ব্যবহারকারীর জন্য একটি সেট আপ করতে পারেন । আপনার ব্যবহারকারীর জন্য রুবি রত্ন সংরক্ষণের জন্য একটি ডিরেক্টরি তৈরি করে শুরু করুন:

$ mkdir ~/.ruby

তারপরে রুবি রত্ন বিন ডিরেক্টরি অন্তর্ভুক্ত করতে সেই ডিরেক্টরিটি ব্যবহার করতে GEM_HOMEএবং আপনার PATHপরিবর্তনশীল আপডেট করার জন্য আপনার শেলটি আপডেট করুন ।

$ echo 'export GEM_HOME=~/.ruby/' >> ~/.bashrc
$ echo 'export PATH="$PATH:~/.ruby/bin"' >> ~/.bashrc
$ source ~/.bashrc

(এই শেষ লাইনটি আপনার বর্তমান শেলের পরিবেশ পরিবর্তনশীলগুলি পুনরায় লোড করবে))

এখন আপনার gemকমান্ডটি ব্যবহার করে আপনার ব্যবহারকারীর অধীনে রুবি রত্ন ইনস্টল করতে সক্ষম হওয়া উচিত । আমি উবুন্টু 18.04 এর আওতায় রুবি 2.5.1 এর সাথে এই কাজটি করতে সক্ষম হয়েছি। আপনি যদি শেল ব্যবহার করছেন যা বাশ নয়, তবে আপনাকে সেই শেলের পরিবর্তে প্রারম্ভিক স্ক্রিপ্টটি সম্পাদনা করতে হবে bashrc


4
আমি এটি করেছি, তারপরে " রুবির জন্য শিরোনামের ফাইলগুলি খুঁজে পাচ্ছি না" সম্পর্কে একটি ত্রুটি পেয়েছে, তারপরে আমি এটি পড়েছি: stackoverflow.com/a/4502672/2245874 , এবং এর সবগুলি অনুসরণ করি নি তবে সুডো ইনস্টল রুবি করেনি -জেমস, এবং তারপরে এটি আমার পক্ষে কাজ করেছিল।
র‌্যাব

4
আমি বিশ্বাস করি @robm এর অর্থ রুবি-দেব রুবি-রত্ন নয়
আল্ট্রেয়াস

4
এটি সম্ভবত রুবি ব্যবহারকারীদের জন্য আরও উপযুক্ত যা একাধিক সংস্করণের বিপরীতে বিকাশ করার প্রয়োজন নেই।
ড্যানিয়েলকোপার্সিজিজ

4
কোনও অতিরিক্ত সরঞ্জাম ছাড়াই আমার রুবি ইনস্টল ঠিক করার জন্য আপনি একটি দুর্দান্ত লিনাক্স উপায়টি প্রকাশ করেছেন, কেবল ভাল পুরাতন বাশ :)
ডেনিস ট্রফিমভ

32

(জানুয়ারী 2019) রুবেনভ স্ক্রিপ্ট ব্যবহার করে ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

১. প্রথমে প্যাকেজ সূচক আপডেট করুন এবং রুবি উত্স থেকে তৈরি করতে রুবি-বিল্ড সরঞ্জামের জন্য প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করুন:

sudo apt-get remove ruby
sudo apt update
sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev

2. এরপরে, rbenv এবং রুবি-বিল্ড উভয়ই ইনস্টল করতে নিম্নলিখিত কার্ল কমান্ডটি চালান:

curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -

৩. সিস্টেম PATH এ OME HOME / .rbenv / bin যুক্ত করুন।

আপনি যদি ব্যাশ ব্যবহার করে থাকেন তবে চালান:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

আপনি যদি Zsh রান ব্যবহার করেন:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc

৪. রুবির সর্বশেষতম স্থিতিশীল সংস্করণ ইনস্টল করুন এবং এটির সাথে একটি ডিফল্ট সংস্করণ হিসাবে সেট করুন:

rbenv install 2.5.1
rbenv global 2.5.1

সমস্ত উপলভ্য রুবি সংস্করণ তালিকা করতে আপনি ব্যবহার করতে পারেন: rbenv install -l

৫. রুবি সংস্করণ নম্বর প্রিন্ট করে সঠিকভাবে ইনস্টল করেছেন তা যাচাই করুন:

ruby -v

# Output
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

উত্স: উবুন্টুতে রুবি কীভাবে ইনস্টল করবেন 18.04

সম্পাদনা: রুবিজেম ইনস্টল করুন:

sudo apt-get install rubygems

4
এটা অসাধারণ! সুন্দর এবং সংক্ষিপ্ত আমি একেবারে অনুসরণ করেছি ( .zshrcআমি হাতে যে পরিবর্তনগুলি করেছি তা ব্যতীত ) এবং এটি পুরোপুরি কার্যকর হয়েছিল। একই ভাবে জুড়েছে ইনস্টল করতে কিভাবে rubygems, আমি হয়তো করার সুপারিশ করছি কিভাবে পরে ইনস্টল রুবি সংস্করণ আপডেট করতে (আমি শুধু দৌড়াবে অনুমান করছি যোগ rbenv installএবং rbenv globalকমান্ড আবার এবং হয়ত rbenv uninstallসেকেলে সংস্করণ আলুবোখারা করার জন্য)
gMale

4
এটা চমৎকার! উবুন্টু 18.04 ডাব্লুএসএলে পুরোপুরি কাজ করে।
robe007

4
এটি আরও মার্জিত উত্তর।
রাশেদকস

15

পরিবর্তে মালিকদের পরিবর্তে, যা অন্য স্থানীয় ব্যবহারকারীদের লক আউট করতে পারে, বা – কিছুদিন– আপনার নিজের রুবি সার্ভার / স্থাপনা-জিনিসগুলি ... অন্য কোনও ব্যবহারকারীর অধীনে চলছে ...

আমি বরং সেই নির্দিষ্ট ফোল্ডারের অধিকারগুলি কেবল ... প্রসারিত করতে চাই:

cd /var/lib
sudo chmod -R a+w gems/

(আমি আপনার ত্রুটিটিরও মুখোমুখি হয়েছি So সুতরাং এটি মোটামুটি যাচাই করা হয়েছে))


4
আমার কাছে / ইউএসআর / স্থানীয় / বিন ফোল্ডারটি সম্বোধন করার দরকার ছিল, তবে এই সমাধানটি কার্যকর হয়েছিল: "ত্রুটি: রত্ন সম্পাদন করার সময় ... (রত্ন :: ফাইলপিরমিশন এরির) আপনার / usr / স্থানীয় / বিন ডিরেক্টরিটির জন্য লেখার অনুমতি নেই "
eb80

10

ডিরেক্টরিতে ব্যবহার chown -Rকরার চেষ্টা করুন var/lib/gems, ব্যবহারকারীর মালিকানা নির্ধারণ করুন [ rubyusername] উদাহরণস্বরূপ, যে ব্যবহারকারী ইনস্টল এবং রত্নগুলির সাথে বিকাশ করবে।

 # chown -R rubyusername:rubyusername /var/lib/gems 

এটি রত্ন ডিরেক্টরিতে পুনরাবৃত্তভাবে সমস্ত কিছু পরিবর্তন করে । মাল্টি-ইউজার সিস্টেমে অতিরিক্ত সুরক্ষার জন্য, আপনি পৃথক রুবুইসারনাম ছাঁটাইয়ের পরিবর্তে একটি গোষ্ঠী তৈরি করতে এবং ব্যবহারকারীদের সেই গোষ্ঠীতে যুক্ত করতে পারেন।


4
এটি সেই সমস্যাটি সমাধান করতে পারে, তবে অন্য একটি সমস্যা পপ আপ হয়ে গেছে: ত্রুটি: রত্ন সম্পাদন করার সময় ... (রত্ন :: ফাইলপ্রিমারেশন) আপনার / usr / স্থানীয় / বিন ডিরেক্টরিটির জন্য লেখার অনুমতি নেই; সুতরাং অনুমানের পরিবর্তে অন্য কিছু ভুল বলে আমার ধারণা।
ডেরেক

3

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

তবে রুবির সিস্টেম সংস্করণ আনইনস্টল করার দরকার নেই, rbenv ইনস্টলেশন নির্দেশাবলী আপনার শেলের মধ্যে রুবির উপস্থিতিটি rbenv উদাহরণ, সিস্টেমের উদাহরণ নয় তা নিশ্চিত করার জন্য একটি ব্যবস্থা সরবরাহ করে। এই

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

ডেরেকের উত্তরে লাইন


2

গিটহাব অ্যাকশনগুলিতে আমি একই ত্রুটির মুখোমুখি হয়েছি। sudoসমস্যা সমাধান করার সাথে যুক্ত করা।

sudo gem install bundler

2

উবুন্টু 20.04:

বিকল্প 1 - আপনার ব্যবহারকারীর অ্যাকাউন্টের জন্য একটি রত্ন ইনস্টলেশন ডিরেক্টরি সেট আপ করুন

বাশের জন্য (zsh এর জন্য, আমরা অবশ্যই ব্যবহার করব .zshrc)

echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

বিকল্প 2 - স্ন্যাপ ব্যবহার করুন

অ্যাপটি-সংস্করণ ( ruby-full) আনইনস্টল করুন এবং এটি দিয়ে পুনরায় ইনস্টল করুনsnap

sudo apt-get remove ruby
sudo snap install ruby --classic

0

পুনরায় ইনস্টল করা কম্পাস আমার জন্য কাজ করেছে .. এটি একটি যাদু!

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