Merge pull request #189 from kt3k/feature/hyphen-s-option-2
Add -s option to force install from sourcemaster
commit
e145978e73
|
@ -144,3 +144,6 @@ on Arch Linux and other systems using python3 by default, before running *instal
|
||||||
|
|
||||||
export PYTHON=python2
|
export PYTHON=python2
|
||||||
|
|
||||||
|
After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source:
|
||||||
|
|
||||||
|
nvm install -s 0.8.6
|
||||||
|
|
76
nvm.sh
76
nvm.sh
|
@ -151,7 +151,7 @@ nvm()
|
||||||
echo
|
echo
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
echo " nvm help Show this message"
|
echo " nvm help Show this message"
|
||||||
echo " nvm install <version> Download and install a <version>"
|
echo " nvm install [-s] <version> Download and install a <version>"
|
||||||
echo " nvm uninstall <version> Uninstall a version"
|
echo " nvm uninstall <version> Uninstall a version"
|
||||||
echo " nvm use <version> Modify PATH to use <version>"
|
echo " nvm use <version> Modify PATH to use <version>"
|
||||||
echo " nvm run <version> [<args>] Run <version> with <args> as arguments"
|
echo " nvm run <version> [<args>] Run <version> with <args> as arguments"
|
||||||
|
@ -180,6 +180,7 @@ nvm()
|
||||||
local sum
|
local sum
|
||||||
local tarball
|
local tarball
|
||||||
local shasum='shasum'
|
local shasum='shasum'
|
||||||
|
local nobinary
|
||||||
|
|
||||||
if [ ! `which curl` ]; then
|
if [ ! `which curl` ]; then
|
||||||
echo 'NVM Needs curl to proceed.' >&2;
|
echo 'NVM Needs curl to proceed.' >&2;
|
||||||
|
@ -193,10 +194,20 @@ nvm()
|
||||||
nvm help
|
nvm help
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
VERSION=`nvm_remote_version $2`
|
|
||||||
|
shift
|
||||||
|
|
||||||
|
nobinary=0
|
||||||
|
if [ "$1" = "-s" ]; then
|
||||||
|
nobinary=1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION=`nvm_remote_version $1`
|
||||||
ADDITIONAL_PARAMETERS=''
|
ADDITIONAL_PARAMETERS=''
|
||||||
|
|
||||||
shift
|
shift
|
||||||
shift
|
|
||||||
while [ $# -ne 0 ]
|
while [ $# -ne 0 ]
|
||||||
do
|
do
|
||||||
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
|
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
|
||||||
|
@ -205,34 +216,37 @@ nvm()
|
||||||
|
|
||||||
[ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return
|
[ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return
|
||||||
|
|
||||||
# shortcut - try the binary if possible.
|
# skip binary install if no binary option specified.
|
||||||
if [ -n "$os" ]; then
|
if [ $nobinary -ne 1 ]; then
|
||||||
binavail=
|
# shortcut - try the binary if possible.
|
||||||
# binaries started with node 0.8.6
|
if [ -n "$os" ]; then
|
||||||
case "$VERSION" in
|
binavail=
|
||||||
v0.8.[012345]) binavail=0 ;;
|
# binaries started with node 0.8.6
|
||||||
v0.[1234567]) binavail=0 ;;
|
case "$VERSION" in
|
||||||
*) binavail=1 ;;
|
v0.8.[012345]) binavail=0 ;;
|
||||||
esac
|
v0.[1234567].*) binavail=0 ;;
|
||||||
if [ $binavail -eq 1 ]; then
|
*) binavail=1 ;;
|
||||||
t="$VERSION-$os-$arch"
|
esac
|
||||||
url="http://nodejs.org/dist/$VERSION/node-${t}.tar.gz"
|
if [ $binavail -eq 1 ]; then
|
||||||
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt.asc | grep node-${t}.tar.gz | awk '{print $1}'`
|
t="$VERSION-$os-$arch"
|
||||||
if (
|
url="http://nodejs.org/dist/$VERSION/node-${t}.tar.gz"
|
||||||
mkdir -p "$NVM_DIR/bin/node-${t}" && \
|
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt | grep node-${t}.tar.gz | awk '{print $1}'`
|
||||||
cd "$NVM_DIR/bin" && \
|
if (
|
||||||
curl -C - --progress-bar $url -o "node-${t}.tar.gz" && \
|
mkdir -p "$NVM_DIR/bin/node-${t}" && \
|
||||||
nvm_checksum `${shasum} node-${t}.tar.gz | awk '{print $1}'` $sum && \
|
cd "$NVM_DIR/bin" && \
|
||||||
tar -xzf "node-${t}.tar.gz" -C "node-${t}" --strip-components 1 && \
|
curl -C - --progress-bar $url -o "node-${t}.tar.gz" && \
|
||||||
mv "node-${t}" "../$VERSION" && \
|
nvm_checksum `${shasum} node-${t}.tar.gz | awk '{print $1}'` $sum && \
|
||||||
rm -f "node-${t}.tar.gz"
|
tar -xzf "node-${t}.tar.gz" -C "node-${t}" --strip-components 1 && \
|
||||||
)
|
mv "node-${t}" "../$VERSION" && \
|
||||||
then
|
rm -f "node-${t}.tar.gz"
|
||||||
nvm use $VERSION
|
)
|
||||||
return;
|
then
|
||||||
else
|
nvm use $VERSION
|
||||||
echo "Binary download failed, trying source." >&2
|
return;
|
||||||
cd "$NVM_DIR/bin" && rm -rf "node-${t}.tar.gz" "node-${t}"
|
else
|
||||||
|
echo "Binary download failed, trying source." >&2
|
||||||
|
cd "$NVM_DIR/bin" && rm -rf "node-${t}.tar.gz" "node-${t}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../v0.8.6 ] && rm -R ../../v0.8.6
|
||||||
|
|
||||||
|
# Install from binary
|
||||||
|
nvm install 0.8.6
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../v0.8.6 ]
|
||||||
|
nvm run v0.8.6 --version | grep v0.8.6
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../v0.8.6 ] && rm -R ../../v0.8.6
|
||||||
|
|
||||||
|
# Install from source
|
||||||
|
nvm install -s 0.8.6
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../v0.8.6 ]
|
||||||
|
nvm run v0.8.6 --version | grep v0.8.6
|
Loading…
Reference in New Issue