Node.js v20.18.0 for RISC-V 64-bit (Orange Pi RV2)
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
# Node.js v20.18.0 for RISC-V 64 (riscv64)
|
||||||
|
|
||||||
|
Pre-compiled Node.js v20.18.0 for Orange Pi RV2 (RISC-V 64-bit).
|
||||||
|
|
||||||
|
## 📦 内容
|
||||||
|
|
||||||
|
```
|
||||||
|
├── bin/
|
||||||
|
│ ├── node # Node.js v20.18.0 二进制
|
||||||
|
│ ├── npm # npm 包管理器
|
||||||
|
│ └── npx # npx 工具
|
||||||
|
├── lib/ # Node.js 库文件
|
||||||
|
├── install.sh # 一键安装脚本
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 一键安装
|
||||||
|
sudo bash install.sh
|
||||||
|
|
||||||
|
# 或手动安装
|
||||||
|
sudo cp bin/node /usr/local/bin/node
|
||||||
|
sudo chmod +x /usr/local/bin/node
|
||||||
|
node --version
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📋 系统要求
|
||||||
|
|
||||||
|
- **架构**: RISC-V 64-bit (riscv64)
|
||||||
|
- **系统**: Linux (Debian/Ubuntu/Armbian)
|
||||||
|
- **设备**: Orange Pi RV2 或兼容设备
|
||||||
|
|
||||||
|
## 🔧 使用
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node --version # v20.18.0
|
||||||
|
npm --version # 10.8.2
|
||||||
|
npx --version # 10.8.2
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚠️ 注意事项
|
||||||
|
|
||||||
|
此版本从 Orange Pi RV2 系统中提取,已验证在以下环境正常工作:
|
||||||
|
- Orange Pi RV2 (Kylin OS / Ubuntu Noble)
|
||||||
|
- Linux 6.6.63-ky
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
Node.js is licensed under the MIT License.
|
||||||
+55
@@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ============================================================
|
||||||
|
# Extract Node.js v20 from the RV2 system
|
||||||
|
# Run this script on the Orange Pi RV2 to prepare the package
|
||||||
|
# Usage: bash extract.sh
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
NODE_SRC="/usr/local/node-v20"
|
||||||
|
OUTPUT_DIR="./bin"
|
||||||
|
|
||||||
|
echo "🔍 Looking for Node.js v20 installation..."
|
||||||
|
|
||||||
|
if [ ! -d "$NODE_SRC" ]; then
|
||||||
|
echo "❌ Node.js v20 not found at $NODE_SRC"
|
||||||
|
echo " Please check the installation path."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Found Node.js at $NODE_SRC"
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
# Copy binaries
|
||||||
|
echo "📦 Copying binaries..."
|
||||||
|
cp "$NODE_SRC/bin/node" "$OUTPUT_DIR/node"
|
||||||
|
chmod +x "$OUTPUT_DIR/node"
|
||||||
|
|
||||||
|
# Copy npm/npx
|
||||||
|
for bin in npm npx; do
|
||||||
|
if [ -f "$NODE_SRC/bin/$bin" ]; then
|
||||||
|
cp "$NODE_SRC/bin/$bin" "$OUTPUT_DIR/$bin"
|
||||||
|
chmod +x "$OUTPUT_DIR/$bin"
|
||||||
|
echo " ✅ $bin"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Copy lib (node_modules for npm)
|
||||||
|
if [ -d "$NODE_SRC/lib" ]; then
|
||||||
|
echo "📚 Copying libraries..."
|
||||||
|
mkdir -p ./lib
|
||||||
|
cp -r "$NODE_SRC/lib/"* ./lib/ 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify
|
||||||
|
echo ""
|
||||||
|
echo "📋 Package contents:"
|
||||||
|
ls -la "$OUTPUT_DIR/"
|
||||||
|
echo ""
|
||||||
|
echo "Node version: $("$OUTPUT_DIR/node" --version)"
|
||||||
|
echo ""
|
||||||
|
echo "✅ Done! Package ready for distribution."
|
||||||
|
echo " Commit and push to Gitea repository."
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ============================================================
|
||||||
|
# Node.js v20.18.0 riscv64 - Installation Script
|
||||||
|
# Usage: sudo bash install.sh
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||||||
|
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||||
|
error() { echo -e "${RED}[ERROR]${NC} $1"; exit 1; }
|
||||||
|
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
error "Please run as root: sudo bash install.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
INSTALL_PREFIX="/usr/local"
|
||||||
|
|
||||||
|
info "Installing Node.js v20.18.0 to $INSTALL_PREFIX..."
|
||||||
|
|
||||||
|
# Backup existing node
|
||||||
|
if command -v node &>/dev/null; then
|
||||||
|
OLD_VER=$(node --version 2>/dev/null || echo "unknown")
|
||||||
|
warn "Existing Node.js found: $OLD_VER"
|
||||||
|
warn "Backing up to /usr/local/bin/node.backup"
|
||||||
|
cp "$(which node)" /usr/local/bin/node.backup 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy binaries
|
||||||
|
info "Copying binaries..."
|
||||||
|
cp "$SCRIPT_DIR/bin/node" "$INSTALL_PREFIX/bin/node"
|
||||||
|
chmod +x "$INSTALL_PREFIX/bin/node"
|
||||||
|
|
||||||
|
# Copy npm/npx if available
|
||||||
|
for bin in npm npx; do
|
||||||
|
if [ -f "$SCRIPT_DIR/bin/$bin" ]; then
|
||||||
|
cp "$SCRIPT_DIR/bin/$bin" "$INSTALL_PREFIX/bin/$bin"
|
||||||
|
chmod +x "$INSTALL_PREFIX/bin/$bin"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Copy lib directory if available
|
||||||
|
if [ -d "$SCRIPT_DIR/lib" ]; then
|
||||||
|
info "Copying libraries..."
|
||||||
|
mkdir -p "$INSTALL_PREFIX/lib"
|
||||||
|
cp -r "$SCRIPT_DIR/lib/"* "$INSTALL_PREFIX/lib/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verify installation
|
||||||
|
info "Verifying installation..."
|
||||||
|
INSTALLED_VER=$("$INSTALL_PREFIX/bin/node" --version 2>/dev/null)
|
||||||
|
if [ -n "$INSTALLED_VER" ]; then
|
||||||
|
info "✅ Node.js $INSTALLED_VER installed successfully!"
|
||||||
|
else
|
||||||
|
error "Installation verification failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}============================================${NC}"
|
||||||
|
echo -e " Node.js $INSTALLED_VER installed!"
|
||||||
|
echo -e " Path: $INSTALL_PREFIX/bin/node"
|
||||||
|
echo -e "${GREEN}============================================${NC}"
|
||||||
|
echo ""
|
||||||
Reference in New Issue
Block a user