当前位置: 首页 > 工具软件 > rubyzip > 使用案例 >

ubuntu22.04安装ruby2.7遇到的坑(rvm方式)

蓝慈
2023-12-01

确认系统版本:

root@fv-az392-322:/tmp# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@fv-az392-322:/tmp#

确认ruby版本:

root@fv-az392-322:/tmp# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
root@fv-az392-322:/tmp# 

安装rvm:

sudo apt-add-repository -y ppa:rael-gc/rvm;\
sudo apt update -y;\
sudo apt -y install rvm;\
\
source /usr/share/rvm/scripts/rvm;

确认rvm版本:

root@fv-az313-897:/tmp# rvm  -v
rvm 1.29.12 (manual) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
root@fv-az313-897:/tmp# 

我们选择2.7的版本,直接安装:

#  rvm install 2.7
#  报一堆错误
root@fv-az344-945:/tmp# rvm list known |grep 2.7

[ruby-]2.7[.2]
root@fv-az344-945:/tmp# 
root@fv-az344-945:/tmp# rvm install ruby-2.7

Searching for binary rubies, this might take some time.
No binary rubies available for: ubuntu/22.04/x86_64/ruby-2.7.2.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..
Installing required packages: libncurses5-dev...
Requirements installation successful.
Installing Ruby from source to: /usr/share/rvm/rubies/ruby-2.7.2, this may take a while depending on your cpu(s)...
ruby-2.7.2 - #downloading ruby-2.7.2, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14.0M  100 14.0M    0     0  16.3M      0 --:--:-- --:--:-- --:--:-- 16.2M
ruby-2.7.2 - #extracting ruby-2.7.2 to /usr/share/rvm/src/ruby-2.7.2.....
ruby-2.7.2 - #configuring........................................................................
ruby-2.7.2 - #post-configuration..
ruby-2.7.2 - #compiling..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Error running '__rvm_make -j2',
please read /usr/share/rvm/log/1681571903_ruby-2.7.2/make.log

There has been an error while running make. Halting the installation.
root@fv-az344-945:/tmp# 

需要先安装openssl:


ls -al /root/.rvm/usr;
#/usr/share/rvm/archives


rvm pkg install openssl;\
rvm reinstall 2.7 --with-openssl-dir=/usr/share/rvm/usr;
 
root@fv-az344-945:/tmp# 
ls -al /root/.rvm/usr;
#/usr/share/rvm/archives


rvm pkg install openssl;\
rvm reinstall 2.7 --with-openssl-dir=/usr/share/rvm/usr
 
ls: cannot access '/root/.rvm/usr': No such file or directory

Beware, 'rvm pkg ...' is deprecated, read about the new autolibs feature: 'rvm help autolibs'.

Checking requirements for ubuntu.
Requirements installation successful.
Fetching openssl-1.0.1i.tar.gz to /usr/share/rvm/archives
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4318k  100 4318k    0     0  8442k      0 --:--:-- --:--:-- --:--:-- 8434k
Extracting openssl to /usr/share/rvm/src/openssl-1.0.1i.....
Configuring openssl in /usr/share/rvm/src/openssl-1.0.1i...................................
Compiling openssl in /usr/share/rvm/src/openssl-1.0.1i....................................................................................................................................................
Installing openssl to /usr/share/rvm/usr.................................................................................................................................................................................

Please note that it's required to reinstall all rubies:

    rvm reinstall all --force

Updating openssl certificates....
ruby-2.7.2 - #removing src/ruby-2.7.2..
Checking requirements for ubuntu.
Requirements installation successful.
Installing Ruby from source to: /usr/share/rvm/rubies/ruby-2.7.2, this may take a while depending on your cpu(s)...
ruby-2.7.2 - #downloading ruby-2.7.2, this may take a while depending on your connection...
ruby-2.7.2 - #extracting ruby-2.7.2 to /usr/share/rvm/src/ruby-2.7.2.....
ruby-2.7.2 - #configuring........................................................................
ruby-2.7.2 - #post-configuration..
ruby-2.7.2 - #compiling......................................................................................................................
ruby-2.7.2 - #installing..................
ruby-2.7.2 - #making binaries executable...
Installed rubygems 3.1.4 is newer than 3.0.9 provided with installed ruby, skipping installation, use --force to force installation.
ruby-2.7.2 - #gemset created /usr/share/rvm/gems/ruby-2.7.2@global
ruby-2.7.2 - #importing gemset /usr/share/rvm/gemsets/global.gems..........................................................
ruby-2.7.2 - #generating global wrappers........
ruby-2.7.2 - #gemset created /usr/share/rvm/gems/ruby-2.7.2
ruby-2.7.2 - #importing gemsetfile /usr/share/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.7.2 - #generating default wrappers........
ruby-2.7.2 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.7.2 - #complete 
Ruby was built without documentation, to build it run: rvm docs generate-ri
Making gemset ruby-2.7.2 pristine..................................................................
Making gemset ruby-2.7.2@global pristine...................................................................
root@fv-az344-945:/tmp# 

切换ruby版本:

root@fv-az344-945:/tmp# rvm use ruby-2.7 --default
Using /usr/share/rvm/gems/ruby-2.7.2
root@fv-az344-945:/tmp# 

确认新的ruby版本:

root@fv-az344-945:/tmp# ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
root@fv-az344-945:/tmp# 

最后一步:

cd /tmp;

gem -v;which gem;

sudo gem install winrm winrm-fs colorize stringio;\
sudo gem install evil-winrm ;
evil-winrm -h;


root@fv-az344-945:/tmp# cd /tmp;

gem -v;which gem;

3.1.4
/usr/share/rvm/rubies/ruby-2.7.2/bin/gem
root@fv-az344-945:/tmp# 
root@fv-az344-945:/tmp# 
root@fv-az344-945:/tmp# 
root@fv-az344-945:/tmp# 
root@fv-az344-945:/tmp# sudo gem install winrm winrm-fs colorize stringio;\
sudo gem install evil-winrm ;
Fetching nori-2.6.0.gem
Fetching rubyntlm-0.6.3.gem
Fetching little-plugger-1.1.4.gem
Fetching logging-2.3.1.gem
Fetching httpclient-2.8.3.gem
Fetching builder-3.2.4.gem
Fetching rexml-3.2.5.gem
Fetching multi_json-1.15.0.gem
Fetching gyoku-1.4.0.gem
Fetching winrm-2.3.6.gem
Fetching ffi-1.15.5.gem
Fetching gssapi-1.3.1.gem
Fetching erubi-1.12.0.gem
Successfully installed rubyntlm-0.6.3
Successfully installed nori-2.6.0
Successfully installed multi_json-1.15.0
Successfully installed little-plugger-1.1.4
Successfully installed logging-2.3.1
Successfully installed httpclient-2.8.3
Successfully installed rexml-3.2.5
Successfully installed builder-3.2.4
Successfully installed gyoku-1.4.0
Building native extensions. This could take a while...
Successfully installed ffi-1.15.5
Successfully installed gssapi-1.3.1
Successfully installed erubi-1.12.0
Successfully installed winrm-2.3.6
Parsing documentation for rubyntlm-0.6.3
Installing ri documentation for rubyntlm-0.6.3
Parsing documentation for nori-2.6.0
Installing ri documentation for nori-2.6.0
Parsing documentation for multi_json-1.15.0
Installing ri documentation for multi_json-1.15.0
Parsing documentation for little-plugger-1.1.4
Installing ri documentation for little-plugger-1.1.4
Parsing documentation for logging-2.3.1
Installing ri documentation for logging-2.3.1
Parsing documentation for httpclient-2.8.3
Installing ri documentation for httpclient-2.8.3
Parsing documentation for rexml-3.2.5
Installing ri documentation for rexml-3.2.5
Parsing documentation for builder-3.2.4
Installing ri documentation for builder-3.2.4
Parsing documentation for gyoku-1.4.0
Installing ri documentation for gyoku-1.4.0
Parsing documentation for ffi-1.15.5
Installing ri documentation for ffi-1.15.5
Parsing documentation for gssapi-1.3.1
Installing ri documentation for gssapi-1.3.1
Parsing documentation for erubi-1.12.0
Installing ri documentation for erubi-1.12.0
Parsing documentation for winrm-2.3.6
Installing ri documentation for winrm-2.3.6
Done installing documentation for rubyntlm, nori, multi_json, little-plugger, logging, httpclient, rexml, builder, gyoku, ffi, gssapi, erubi, winrm after 8 seconds
Fetching rubyzip-2.3.2.gem
Fetching winrm-fs-1.3.5.gem
RubyZip 3.0 is coming!
**********************

The public API of some Rubyzip classes has been modernized to use named
parameters for optional arguments. Please check your usage of the
following classes:
  * `Zip::File`
  * `Zip::Entry`
  * `Zip::InputStream`
  * `Zip::OutputStream`

Please ensure that your Gemfiles and .gemspecs are suitably restrictive
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
See https://github.com/rubyzip/rubyzip for details. The Changelog also
lists other enhancements and bugfixes that have been implemented since
version 2.3.0.
Successfully installed rubyzip-2.3.2
Successfully installed winrm-fs-1.3.5
Parsing documentation for rubyzip-2.3.2
Installing ri documentation for rubyzip-2.3.2
Parsing documentation for winrm-fs-1.3.5
Installing ri documentation for winrm-fs-1.3.5
Done installing documentation for rubyzip, winrm-fs after 0 seconds
Fetching colorize-0.8.1.gem
Successfully installed colorize-0.8.1
Parsing documentation for colorize-0.8.1
Installing ri documentation for colorize-0.8.1
Done installing documentation for colorize after 0 seconds
Fetching stringio-3.0.6.gem
Building native extensions. This could take a while...
Successfully installed stringio-3.0.6
Parsing documentation for stringio-3.0.6
Installing ri documentation for stringio-3.0.6
Done installing documentation for stringio after 0 seconds
17 gems installed
Fetching evil-winrm-3.4.gem
Happy hacking! :)
Successfully installed evil-winrm-3.4
Parsing documentation for evil-winrm-3.4
Installing ri documentation for evil-winrm-3.4
Done installing documentation for evil-winrm after 0 seconds
1 gem installed
root@fv-az344-945:/tmp# evil-winrm -h;
Ignoring executable-hooks-1.6.1 because its extensions are not built. Try: gem pristine executable-hooks --version 1.6.1
Ignoring gem-wrappers-1.4.0 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.4.0

Evil-WinRM shell v3.4 

Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM] [--spn SPN_PREFIX] [-l]
    -S, --ssl                        Enable ssl
    -c, --pub-key PUBLIC_KEY_PATH    Local path to public key certificate
    -k, --priv-key PRIVATE_KEY_PATH  Local path to private key certificate
    -r, --realm DOMAIN               Kerberos auth, it has to be set also in /etc/krb5.conf file using this format -> CONTOSO.COM = { kdc = fooserver.contoso.com }
    -s, --scripts PS_SCRIPTS_PATH    Powershell scripts local path
        --spn SPN_PREFIX             SPN prefix for Kerberos auth (default HTTP)
    -e, --executables EXES_PATH      C# executables local path
    -i, --ip IP                      Remote host IP or hostname. FQDN for Kerberos auth (required)
    -U, --url URL                    Remote url endpoint (default /wsman)
    -u, --user USER                  Username (required if not using kerberos)
    -p, --password PASS              Password
    -H, --hash HASH                  NTHash
    -P, --port PORT                  Remote host port (default 5985)
    -V, --version                    Show version
    -n, --no-colors                  Disable colors
    -N, --no-rpath-completion        Disable remote path completion
    -l, --log                        Log the WinRM session
    -h, --help                       Display this help message

root@fv-az344-945:/tmp# 

 类似资料: