如何使用readline支持重新安装ruby?
我已经通过RVM安装了Ruby作为https://github.com/wayneeseguin/rvm#installation上的说明。
有关信息,我有所有档案( readline-5.2.tar.gz,readline-6.2.tar.gz,ruby-1.9.3-p327.tar.bz2,rubygems-1.8.24.tgz,wayneeseguin-rvm-stable。 ~/.rvm/archives
目录中的tgz和yaml-0.1.4.tar.gz )我不想以任何方式重新下载它们。
当我做:
sudo /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config
我明白了:
Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'libxslt1-dev' instead of 'libxslt-dev' Note, selecting 'libncurses5-dev' instead of 'ncurses-dev' libtool is already the newest version. sqlite3 is already the newest version. libxslt1-dev is already the newest version. libc6-dev is already the newest version. openssl is already the newest version. git-core is already the newest version. subversion is already the newest version. zlib1g is already the newest version. libncurses5-dev is already the newest version. curl is already the newest version. libreadline6 is already the newest version. libyaml-dev is already the newest version. autoconf is already the newest version. pkg-config is already the newest version. libxml2-dev is already the newest version. build-essential is already the newest version. libssl-dev is already the newest version. libreadline6-dev is already the newest version. automake is already the newest version. zlib1g-dev is already the newest version. bison is already the newest version. libsqlite3-dev is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我甚至做过:
$ rvm pkg install readline $ rvm reinstall 1.9.2 --with-readline-dir=$rvm_path/usr
但我仍然在irb
上得到这个:
Readline was unable to be required, if you need completion or history install readline then reinstall the ruby. You may follow 'rvm notes' for dependencies and/or read the docs page https://rvm.io/packages/readline/ . Be sure you 'rvm remove X ; rvm install X' to re-compile your ruby with readline support after obtaining the readline libraries.
我已经完成了4-5次重新安装过程。
如果您安装了rvm requirements
的软件包, rvm requirements
您的ruby很可能安装了readline支持。
您可以通过运行来validation是否已安装readline:
rvm use 1.9.3 find $MY_RUBY_HOME -name readline.so | xargs ldd
从我在回答中看到的,必须重复适当的流程:
rm -rf $rvm_path/usr/ rvm get head rvm remove 1.9.3 rvm install 1.9.3 --debug
如果你仍然无法使它工作 – 请确保你重复上述步骤,不要添加额外的标志或开关,确保从额外的编译标志清理/etc/rvmrc
和~/.rvmrc
。 如果全部失败则提供rvm install 1.9.3 --debug
命令的输出。
考虑到您拥有RVM,您应该利用有用的命令rvm requirements
,因为这将为您提供为特定环境/操作系统运行所需的命令。
关于什么
rvm reinstall 1.9.3
一旦你安装了基本的依赖项,比如build essentials等,你就可以这样做。我有类似的问题,我不得不安装一些依赖项并重新安装ruby。
以下依赖项列表
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core \ zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev \ autoconf libc6-dev libncurses5-dev automake libtool bison subversion pkg-config
您可能只是使用旧式的configure / make方式重建ruby可执行文件。 它不应该花那么长时间。 优点是它将利用它找到的依赖关系,例如readline。