whoami7 - Manager
:
/
proc
/
self
/
root
/
usr
/
local
/
rvm
/
scripts
/
functions
/
manage
/
Upload File:
files >> //proc/self/root/usr/local/rvm/scripts/functions/manage/base_install
#!/usr/bin/env bash __rvm_install_source() { __rvm_require "$rvm_scripts_path/functions/manage/install/$_system_name_lowercase" true ${rvm_ruby_selected_flag:=0} \typeset directory db_configure_flags \typeset -a autoconf_flags (( rvm_ruby_selected_flag )) || __rvm_select if [[ -n "${DYLD_LIBRARY_PATH:-}" ]] then rvm_error "Warning: DYLD_LIBRARY_PATH environment variable is set, this might interact with the compilation and ruby." fi rvm_log "Installing Ruby from source to: $rvm_ruby_home, this may take a while depending on your cpu(s)..." __rvm_cd "${rvm_src_path}" __rvm_fetch_ruby || { result=$? rvm_error "There has been an error fetching the ruby interpreter. Halting the installation." return $result } __rvm_cd "${rvm_src_path}/$rvm_ruby_string" || { result=$? rvm_error "Source directory is missing. \nDid the download or extraction fail? \nHalting the installation." return $result } if [[ -d "${rvm_path}/usr" ]] then __rvm_add_to_path prepend "${rvm_path}/usr/bin" builtin hash -r fi __rvm_apply_patches || { result="$?" rvm_error "There has been an error applying the specified patches. Halting the installation." return $result } if (( ${rvm_force_autoconf_flag:-0} == 1 )) || { [[ -z "${rvm_ruby_configure:-}" ]] && [[ ! -s "${rvm_src_path}/$rvm_ruby_string/configure" || "${rvm_src_path}/$rvm_ruby_string/configure.in" -nt "${rvm_src_path}/$rvm_ruby_string/configure" ]] } then (( ${rvm_force_autoconf_flag:-0} == 1 )) && autoconf_flags+=( -f ) __rvm_log_command "autoreconf" "$rvm_ruby_string - #autoreconf${autoconf_flags:-}" __rvm_autoreconf "${autoconf_flags[@]}" fi if [[ -n "${rvm_ruby_configure:-""}" ]] then __rvm_log_command "configure" "$rvm_ruby_string - #configuring" "$rvm_ruby_configure" || { result=$? rvm_error "There has been an error while configuring. Halting the installation." return $result } elif [[ -s ./configure ]] then rvm_configure_flags=( --prefix="$rvm_ruby_home" "${rvm_configure_flags[@]}" ) __rvm_db "${rvm_ruby_interpreter}_configure_flags" db_configure_flags if [[ -n "${ZSH_VERSION:-}" ]] then rvm_configure_flags=( ${=db_configure_flags} "${rvm_configure_flags[@]}" ) else rvm_configure_flags=( ${db_configure_flags} "${rvm_configure_flags[@]}" ) fi __rvm_array_prepend_or_ignore rvm_configure_env CFLAGS= " " "-O3" "-O" __rvm_array_prepend_or_ignore rvm_configure_env CCFLAGS= " " "-O3" "-O" __rvm_array_prepend_or_ignore rvm_configure_env CXXFLAGS= " " "-O3" "-O" __rvm_log_command "configure" "$rvm_ruby_string - #configuring" \ "${rvm_configure_env[@]}" ./configure "${rvm_configure_flags[@]}" || { result=$? rvm_error "There has been an error while running configure. Halting the installation." if [[ -f config.log ]] then cp config.log "${rvm_log_path}/${rvm_log_timestamp:-}${rvm_ruby_string:+_}${rvm_ruby_string:-}/" fi return $result } else rvm_error "Skipping configure step, 'configure' does not exist, did autoreconf not run successfully?" fi if is_a_function __rvm_post_configure_${rvm_ruby_interpreter} then __rvm_log_command "postconfigure" "$rvm_ruby_string - #post-configuration" \ __rvm_post_configure_${rvm_ruby_interpreter} fi __rvm_log_command "make" "$rvm_ruby_string - #compiling" ${rvm_ruby_make:-__rvm_make} "${rvm_make_flags[@]}" || { result=$? rvm_error "\nThere has been an error while running make. Halting the installation." if is_a_function __rvm_make_failed_${_system_name_lowercase} then __rvm_make_failed_${_system_name_lowercase} fi return $result } __rvm_rm_rf "$PWD/.ext/rdoc" # WTF? [[ -n "${rvm_ruby_make_install:-}" ]] || rvm_ruby_make_install=( __rvm_make install ) __rvm_log_command "install" "$rvm_ruby_string - #installing" "${rvm_ruby_make_install[@]}" || { result=$? rvm_error "There has been an error while running make install. Halting the installation." return $result } if [[ -s "${rvm_src_path}/$rvm_ruby_string/patches.list" ]] then __rvm_cp -f "${rvm_src_path}/$rvm_ruby_string/patches.list" "$rvm_ruby_home/patches.list" fi case "${rvm_ruby_string:-""}" in ruby-1.8.4|ruby-1.8.5-*) \typeset libdir libdir="$rvm_ruby_home/lib" if [[ -d "${libdir}64" ]] then \command \rm -rf "${libdir}" ln -s "${libdir}64" "${libdir}" fi ;; esac case " ${rvm_configure_flags[*]} " in (*[[:space:]]--program-suffix=*) \typeset program_suffix program_suffix="${rvm_configure_flags[*]}" program_suffix="${program_suffix#*--program-suffix=}" program_suffix="${program_suffix%%[\' ]*}" __rvm_log_command "link.ruby" "$rvm_ruby_string - #linking ruby${program_suffix} -> ruby " \ ln -s "$rvm_ruby_home/bin/ruby${program_suffix}" "$rvm_ruby_home/bin/ruby" ;; esac __rvm_initial_gemsets_create "$rvm_ruby_home/bin/ruby" && __rvm_post_install && __rvm_fetch_ruby_cleanup || return $? rvm_log "Install of $rvm_ruby_string - #complete " } __rvm_post_install() { case "$rvm_ruby_interpreter" in (jruby|ree|rbx|mruby|macruby|truffleruby) true ;; #skip (*) (( ${#binaries[@]} )) || binaries=(gem irb erb ri rdoc testrb rake) ;; esac if (( ${#binaries[@]} )) then rvm_log "$rvm_ruby_string - #adjusting #shebangs for (${binaries[@]})." for binary in "${binaries[@]}" do if [[ -e "$rvm_ruby_home/bin/$binary" || -e "${rvm_src_path}/$rvm_ruby_string/bin/$binary" ]] then if [[ "${rvm_src_path}/$rvm_ruby_string" != "$rvm_ruby_home" ]] && [[ -f "${rvm_src_path}/$rvm_ruby_string/bin/$binary" && ! -L "$rvm_ruby_home/bin/$binary" ]] then __rvm_cp -f "${rvm_src_path}/$rvm_ruby_string/bin/$binary" "$rvm_ruby_home/bin/$binary" elif [[ -f "$rvm_ruby_gem_home/bin/$binary" ]] then __rvm_cp -f "$rvm_ruby_gem_home/bin/$binary" "$rvm_ruby_home/bin/$binary" fi __rvm_inject_ruby_shebang "$rvm_ruby_home/bin/$binary" [[ -x "$rvm_ruby_home/bin/$binary" ]] || chmod +x "$rvm_ruby_home/bin/$binary" fi done fi binaries=(gem irb erb ri rdoc testrb rake) #reset __rvm_irbrc } __rvm_inject_ruby_shebang() { \typeset actual_file="$1" __rvm_readlink_deep actual_file if [[ -f "$actual_file" ]] then __rvm_sed_i "${actual_file}" -e '1,1s=.*=#!'"/usr/bin/env ruby=" [[ -x "$actual_file" ]] || chmod +x "$actual_file" fi } __rvm_old_ruby() { case "$1" in (ree*|ruby-1.8*|ruby-1.9.1*|ruby-1.9.2*) return 0 ;; (*) return 1 ;; esac } __rvm_install_ruby_try_remote() { : rvm_disable_binary_flag:${rvm_disable_binary_flag:=0}: rvm_remote_flag:${rvm_remote_flag:=0}: if (( rvm_remote_flag > 0 )) || # remote flag wins! (( rvm_head_flag == 0 && rvm_disable_binary_flag == 0 )) # not a head and disabled binary then case "$rvm_ruby_string" in truffleruby*) # always use the "from source" installation path for TruffleRuby return 2 ;; esac rvm_log "Searching for binary rubies, this might take some time." \typeset __rvm_ruby_url __rvm_ruby_verify_download_flag __ruby_identifier __ruby_identifier="${rvm_ruby_string}" __rvm_ruby_url="$( __rvm_remote_server_path "${__ruby_identifier}" )" if [[ -z "${__rvm_ruby_url}" ]] then __ruby_identifier="${rvm_ruby_string%-${detected_rvm_ruby_name:-}}" __rvm_ruby_url="$( __rvm_remote_server_path "${__ruby_identifier}" )" fi IFS=: read __rvm_ruby_verify_download_flag __rvm_ruby_url <<<"${__rvm_ruby_url}" if (( ${rvm_verify_downloads_flag_cli:-${rvm_verify_downloads_flag:-1}} > ${__rvm_ruby_verify_download_flag:=0} )) then __rvm_ruby_verify_download_flag=${rvm_verify_downloads_flag_cli:-${rvm_verify_downloads_flag}} fi if [[ -z "${__rvm_ruby_url}" ]] then if (( rvm_remote_flag )) then rvm_error "Requested binary installation but no rubies are available to download, consider skipping --binary flag." return 1 elif __rvm_old_ruby "${__ruby_identifier}" then rvm_log "No binary rubies available for: $(__rvm_system_path -)/${__ruby_identifier}. It is not possible to build movable binaries for rubies 1.8-1.9.2, but you can do it for your system only. Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies." else rvm_warn "No binary rubies available for: $(__rvm_system_path -)/${__ruby_identifier}. Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies." fi else rvm_log "Found remote file ${__rvm_ruby_url}" __rvm_setup_compile_environment_setup __rvm_setup_compile_environment_requirements "${rvm_ruby_string}" || return 1 __rvm_check_available_space "${rvm_ruby_string}" if rvm_verify_downloads_flag=${__rvm_ruby_verify_download_flag} rvm_remote_flag=1 \ "${rvm_scripts_path}/mount" mount "${__rvm_ruby_url}" "${rvm_ruby_string}" autodetect then return 0 else \typeset __status=$? __rvm_rm_rf "$rvm_rubies_path/$rvm_ruby_string" # cleanup so standard installation works if (( rvm_remote_flag )) then rvm_error "Mounting remote ruby failed with status $__status, stopping installation." return ${__status} else rvm_warn "Mounting remote ruby failed with status $__status, trying to compile." fi fi fi fi return 2 # continue with compilation } __rvm_check_available_space() { \typeset __required_space __free_space __i_have_no_idea __rvm_calculate_space_free "${rvm_rubies_path}" __i_have_no_idea=0 case "$1" in # this should be enough for binary only version, including package file (jruby*) __required_space=50 ;; (maglev*) __required_space=950 ;; (ree-*) __required_space=70 ;; (rbx*|rubinius*) __required_space=170 ;; (truffleruby*) __required_space=200 ;; (ruby-1.8.5*) __required_space=20 ;; (ruby-1.8.6*) __required_space=20 ;; (ruby-1.8.7*) __required_space=25 ;; (ruby-1.9.1*) __required_space=60 ;; (ruby-1.9.2*) __required_space=60 ;; (ruby-1.9.3*) __required_space=70 ;; (ruby-2.0.0*) __required_space=90 ;; (ruby-head*) __required_space=130 ;; (ruby*) __required_space=100 ;; #2.1.0+ (*) __required_space=50 __i_have_no_idea=1 ;; esac if [[ "${2:-}" == "sources" ]] then # this adds sources and repository size to the installed size, even if we would remove sources # after installation we still need them during installation so it's needed to add it case "$1" in (jruby*) let __required_space+=230 ;; (maglev*) let __required_space+=120 ;; (rbx*|rubinius*) let __required_space+=600 ;; (truffleruby*) let __required_space+=160 ;; (ree-1.8.6*) let __required_space+=40 ;; (ree-1.8.7*) let __required_space+=130 ;; (ruby-1.8.5*) let __required_space+=35 ;; (ruby-1.8.6*) let __required_space+=40 ;; (ruby-1.8.7*) let __required_space+=40 ;; (ruby-1.9.1*) let __required_space+=120 ;; (ruby-1.9.2*) let __required_space+=160 ;; (ruby-1.9.3*) let __required_space+=170 ;; (ruby-2.0.0*) let __required_space+=300 ;; (ruby-head*) let __required_space+=560 ;; (ruby-*) let __required_space+=340 ;; # 2.1.0+ (*) let __required_space+=100 ;; esac fi if (( __i_have_no_idea )) then rvm_warn "RVM does not have prediction for required space for $1, assuming ${__required_space}MB should be enough, let us know if it was not." fi if (( __required_space > __free_space )) then rvm_error "Not enough space (${__free_space}MB) to install ruby (${__required_space}MB)." return 1 elif (( __required_space*12 > __free_space*10 )) # 20% check then rvm_warn "You are running low on disk space ${__free_space}MB, required ${__required_space}MB." else rvm_debug "Free disk space ${__free_space}MB, required ${__required_space}MB." fi } __rvm_install_ruby() { true ${rvm_head_flag:=0} ${rvm_ruby_selected_flag:=0} \typeset binary __rvm_ruby_name ruby_install_type __result=0 if (( rvm_ruby_selected_flag == 0 )) then __rvm_ruby_name="$rvm_ruby_name" __rvm_select || __result=$? case $__result in (0|2) true ;; # 2 => missing gemset, it's fine, we will install it (*) return $? ;; esac if [[ -n "$__rvm_ruby_name" ]] then __rvm_select || return $? # second detection for -n verification if [[ "$__rvm_ruby_name" != "$detected_rvm_ruby_name" ]] then rvm_error " The used ruby name (-n) is not valid, it was matched as: $( env | __rvm_grep "^rvm.*=$__rvm_ruby_name$" || printf "# Was not used at all\n") for more details on selecting names please visit: https://rvm.io/rubies/named/ " #" fix escaping return 1 fi fi fi if [[ -n "${RUBYOPT:-""}" ]] then ruby_options="$RUBYOPT" unset RUBYOPT fi __rvm_select_late if (( ${rvm_force_flag:-0} == 0 )) then __rvm_remove_src_and_ruby fi if __rvm_install_ruby_try_remote then return 0 else (( $? == 2 )) || return 1 # 2 => continue with compilation fi __rvm_check_available_space "${rvm_ruby_string}" sources || return $? __rvm_check_for_compiler || return $? case "${rvm_ruby_interpreter}" in opal|macruby|ree|jruby|maglev|rubinius|ironruby|ruby|mruby|topaz|truffleruby) ruby_install_type=$rvm_ruby_interpreter ;; rbx) ruby_install_type=rubinius ;; ir) ruby_install_type=ironruby ;; default) rvm_error "a ruby interpreter to install must be specified and not simply 'default'." return 1 ;; *) rvm_error "Either the ruby interpreter is unknown or there was an error!." return 1 ;; esac [[ -n "${rvm_configure_env[*]}" ]] || rvm_configure_env=() # zsh can assume empty var => ( '' ) source "$rvm_scripts_path/functions/manage/${ruby_install_type}" ${ruby_install_type}_install || return $? # Record the Ruby's configuration to a file, key=value format. __rvm_ruby_config_save "$rvm_ruby_home/bin/ruby" __rvm_fix_group_permissions "$rvm_ruby_home" rvm_hook="after_install" source "$rvm_scripts_path/hook" if [[ -n "$ruby_options" ]] then RUBYOPT="$ruby_options" export RUBYOPT fi }
Copyright ©2021 || Defacer Indonesia