Ruby RVM apt-get update error

2019-01-13 01:58发布

问题:

I get following error when trying to install anything with RVM:

Searching for binary rubies, this might take some time.
Found remote file https://rvm.io/binaries/ubuntu/13.04/x86_64/ruby-2.1.1.tar.bz2
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..kshitiz password required for 'apt-get --quiet --yes update': 
............................
Error running 'requirements_debian_update_system ruby-2.1.1',
showing last 15 lines of /home/kshitiz/.rvm/log/1400047196_ruby-2.1.1/update_system.log
++ /scripts/functions/logging : rvm_pretty_print()  78 > case "${TERM:-dumb}" in
++ /scripts/functions/logging : rvm_pretty_print()  81 > case "$1" in
++ /scripts/functions/logging : rvm_pretty_print()  83 > [[ -t 2 ]]
++ /scripts/functions/logging : rvm_pretty_print()  83 > return 1
++ /scripts/functions/logging : rvm_error()  117 > printf %b 'There has been error while updating '\''apt-get'\'', please give it some time and try again later.
For 404 errors check your sources configured in:
    /etc/apt/sources.list
    /etc/apt/sources.list.d/*.list
\n'
There has been error while updating 'apt-get', please give it some time and try again later.
For 404 errors check your sources configured in:
    /etc/apt/sources.list
    /etc/apt/sources.list.d/*.list

++ /scripts/functions/requirements/ubuntu : requirements_debian_update_system()  53 > return 100
Requirements installation failed with status: 100.

How can I fix this?

回答1:

RVM doesn't behave well if apt-get update has errors. If your apt sources have an invalid repository that gives 404 or GPG error, RVM will refuse to work. This can be confusing because it happens even if the faulty repository has nothing to do with ruby or RVM.

The following fix worked for me (Ubuntu):

Run apt-get update and see if there are any errors. Edit your sources.list and precise.list in /etc/apt to remove the faulty repositories. Repeat until apt-get update succeeds without any errors. Then try running RVM.



回答2:

I also had to remove failing repositories but I had hard time spotting them and removing them based on instructions here. So I found this link which explains exactly why this happens and how to remove failing repositories:

In short, run following to find failing repositories:

sudo apt-get update | grep "Failed"

An example output can be like this:

:~# apt-get update  | grep "Failed"
W: Failed to fetch http://ppa.launchpad.net/upubuntu-com/web/ubuntu/dists/trusty/main/binary-amd64/Packages  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/upubuntu-com/web/ubuntu/dists/trusty/main/binary-i386/Packages  404  Not Found

E: Some index files failed to download. They have been ignored, or old ones used instead.

And finally use this command to remove the failing repo(s):

sudo add-apt-repository --remove ppa:{failing ppa}

for the example here it will look like this:

sudo add-apt-repository --remove ppa:upubuntu-com/web


回答3:

You can try to skip the rvm updating system so apt-get won't be called.

# Disable RVM from trying to install necessary software via apt-get
rvm autolibs disable

# Then try installing Ruby:
rvm install 2.4.0

See https://stackoverflow.com/a/16759839/1212791



回答4:

Alternative, it is also possible to cut the crap in rvm. I edited requirements_debian_update_system() in file /usr/share/rvm/scripts/functions/requirements/ubuntu like this:

  requirements_debian_update_system()
  {
  echo "*fake* apt-get update"
  #  __rvm_try_sudo apt-get --quiet --yes update ||
  #  {
  #    typeset __ret=$?
  #    case ${__ret} in
  #      (100)
  #        rvm_error "There has been error while updating 'apt-get', please give it some time and try again later.
  #404 errors should be fixed for rvm to proceed. Check your sources configured in:
  #    /etc/apt/sources.list
  #    /etc/apt/sources.list.d/*.list
  #"
  #        ;;
  #    esac
  #    return ${__ret}
  #  }
  }


回答5:

This happened to me as well when I was trying to install a version of Ruby as a non-sudoer user. However, when I logged in as my admin user (with sudo privileges) and ran sudo apt-get update | grep "Failed" I would get no errors and, yet, rvm install x.x.x would still result in asking for a password (when I ran rvm install as the non-sudoer user.)

I was banging my head with this for a while because I didn't want my rvm (regular user) user to have sudo privileges. Then after some putzing around on Google I figured out that I could log in as my admin user.

Go through the steps of installing RVM for that user (as per their documentation):

$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

$ \curl -sSL https://get.rvm.io | bash -s stable

$ source ~/.rvm/scripts/rvm

Then (as the admin user) jump straight into installing the RVM required packages:

$ rvm requirements

at which point it asks for my sudo password and installs the required apt packages for the entire system after I enter my password.

Then I log off from server as admin user and log back in as rvm user (with no sudo privileges) and try to install a version of Ruby.

$ rvm install x.x.x

and now it works.



回答6:

You don't need of apt-get to install rvm and to use it !

Just curl (apt-get install curl)

Launch \curl -sSL https://get.rvm.io | bash -s stable --ruby

and rvm install 2.1.1 or another ruby's version and it works ;)

gem update etc...

RVM will be independent of apt-get so you'll have no longer issu.

For more informations : https://rvm.io/rvm/install



回答7:

I had the same issue. If none of the other answers work try this. I ran the following command to fix it:

sudo apt-get -f install

Then I remembered that I failed installing a package earlier that day. What this command did was resolve the dependencies on that package and allowed RVM to do its thing.



回答8:

I just tried

sudo apt-get update and found some of them are failing; for example..

Err http://extras.ubuntu.com raring/main Sources 404 Not Found

I went ahead and deleted those items from the list here..

sudo gedit /etc/apt/sources.list

It worked!



回答9:

I was getting an error similar to this while running curl -sSL https://get.rvm.io | bash -s stable --ruby. It took a while but I finally realised that I had synaptic open: the installer couldn't run because apt was locked



回答10:

I was also getting this error when my working directory was inside a mounted dir.

The fix was just to:

cd ~

I figured this out by seeing this at the bottom of a sudo apt-get update

E: Unable to change to /path/to/my/current/directory/ - chdir (13: Permission denied)



回答11:

I got the same error.I tried most of above answers but none works for me, so i just change server

  1. Goto directory etc/apt
  2. click on Sources.list
  3. Change the server to us or some else server
  4. Reload (it will update your cache from that server)
  5. Then run sudo apt-get update


回答12:

this problem caused in apt-get update so you have to disable the PPA :

System Settings>Software & Updates>Other Software

then reinstall.



回答13:

In my case rvm missed some linux packages, which couldnt be installed without sudo. There were no apt-get install errors at all.

When running rvm install ruby x.x.x with sudo, rvm installed packages required to build ruby and it worked.



回答14:

apt install libc6:amd64 libc6:amd64 libc6 libc6-dev:amd64 libc6-dev libc-dev-bin libc-bin man-db libc-dev-bin libc6-dev:amd64

thats work fine for me ^^



回答15:

source /etc/profile.d/rvm.sh

Detali

https://tecadmin.net/install-ruby-on-rails-on-ubuntu/

https://rvm.io/rvm/install



标签: ruby rvm