Hi all, I have to develop a simple app in ruby on rails for an exam in my university. To deploy it I chose Devuan so that I can start to try it and not use systemd. Installing rvm I see that it detect the distro 'automagically' to install needed dependencies: Devuan have not /etc/debian_version (but /etc/devuan_version) and the script doesn't recognize our distro.
Well I created a simple patch to solve this issue, I upload it here. I opened an issue with this patch into github project of rvm (I don't know if it is the better way to sent a patch): https://github.com/rvm/rvm/issues/3482[1] A very small contribution to an important project -- Happy hacking Aleskandro -------- [1] https://github.com/rvm/rvm/issues/3482
diff -u --recursive --new-file rvm.old/scripts/functions/detect_system rvm/scripts/functions/detect_system --- scripts/functions/detect_system 2015-08-05 15:29:50.124352334 +0200 +++ scripts/functions/detect_system 2015-08-05 15:39:00.640372870 +0200 @@ -58,6 +58,12 @@ _system_version="$(\command \cat /etc/debian_version | \command \awk -F. '{print $1}' | head -n 1)" _system_arch="$( dpkg --print-architecture )" elif + [[ -f /etc/devuan_version ]] + then + _system_name="Devuan" + _system_version="$(\command \cat /etc/devuan_version | \command \awk -F. '{print $1}' | head -n 1)" + _system_arch="$( dpkg --print-architecture )" + elif [[ -f /etc/os-release ]] && GREP_OPTIONS="" \command \grep "ID=debian" /etc/os-release >/dev/null then diff -u --recursive --new-file rvm.old/scripts/functions/requirements/devuan rvm/scripts/functions/requirements/devuan --- scripts/functions/requirements/devuan 1970-01-01 01:00:00.000000000 +0100 +++ scripts/functions/requirements/devuan 2015-08-05 15:39:00.636372869 +0200 @@ -0,0 +1,141 @@ +#!/usr/bin/env bash + +# AMD64, i386, ARM. +requirements_devuan_arch() +{ + __architecture="$(dpkg --print-architecture)" +} + +# Queries the dpkg system for packages that are installed only asking about +# the package name and it's arch. This package will fall back to :all for +# cases where we cannot get an arch specific package (such is the case +# for a few packages.) + +requirements_devuan_lib_installed() +{ + dpkg-query -s "${1}:${__architecture}" >/dev/null 2>&1 || + dpkg-query -s "${1}:all" >/dev/null 2>&1 || + dpkg-query -s "$1" 2>/dev/null | __rvm_grep "Architecture: ${__architecture}" >/dev/null || + dpkg-query -s "$1" 2>/dev/null | __rvm_grep "Architecture: all" >/dev/null || + return $? +} + +# Informs us if a package is even available on the distro we are working +# with, this is more of a transitional method kind of like Ubuntu +# has a transitional git-core package right now. This will allow us +# to continue to support older versions of Ubuntu while enforcing newer +# packages on newer Ubuntu. + +requirements_devuan_lib_available() +{ + apt-cache show "$1" >/dev/null 2>&1 || return $? +} + +requirements_devuan_libs_install() +{ + __rvm_try_sudo apt-get --no-install-recommends --yes install "$@" || return $? +} + +requirements_devuan_update_system() +{ + __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} + } +} + +requirements_devuan_define_java() +{ + update-alternatives --list ${1:-java} >/dev/null 2>&1 || + requirements_check_fallback \ + openjdk-7-jre-headless openjdk-7-jdk oracle-j2sdk1.7 \ + openjdk-6-jre-headless opendjk-6-jdk oracle-j2sdk1.6 +} + +requirements_devuan_define() +{ + \typeset __architecture + requirements_devuan_arch + + case "$1" in + (rvm) + requirements_check bash curl patch bzip2 ca-certificates gawk + ;; + + (jruby*) + requirements_check g++ + if + is_head_or_disable_binary "$1" + then + requirements_devuan_define_java javac + requirements_check_fallback git git-core + if is_jruby_post17 "$1" + then __rvm_which mvn >/dev/null || requirements_check_fallback maven maven2 + else __rvm_which ant >/dev/null || requirements_check ant + fi + else + requirements_devuan_define_java java + fi + ;; + + (ir*) + requirements_check curl mono-2.0-devel + ;; + + (opal) + requirements_check nodejs npm + ;; + + (rbx*head|rubinius*head) + requirements_check_fallback git git-core + requirements_ubuntu_libs_default clang llvm + rvm_configure_flags+=( --cc=clang --cxx=clang++ ) + ;; + + (rbx*|rubinius*) + requirements_ubuntu_libs_default clang llvm llvm-dev libedit-dev + rvm_configure_flags+=( --cc=clang --cxx=clang++ ) + ;; + + (*-head) + requirements_check_fallback git git-core + requirements_ubuntu_libs_default g++ gcc + ;; + + (*) + # Also ran by *-head. + requirements_ubuntu_libs_default g++ gcc + ;; + esac +} + +requirements_ubuntu_libs_default() +{ + requirements_check "$@" \ + make libc6-dev patch openssl ca-certificates libreadline6 \ + libreadline6-dev curl zlib1g zlib1g-dev libssl-dev libyaml-dev \ + libsqlite3-dev sqlite3 autoconf \ + libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev +} + +requirements_ubuntu_define() +{ + __lib_type=devuan + requirements_devuan_define "$@" +} + +requirements_mint_define() +{ + __lib_type=devuan + requirements_devuan_define "$@" +}
_______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng