Sinopia 是一个简单易用的私有 NPM 仓库服务器。在 CentOS 6 上安装时,遇到如下报错(Node 版本 6.9.1)
#error This version of node/NAN/v8 requires a C++11 compiler
这是 CentOS 6 配套的 gcc 版本过低导致的。需要升级默认的 gcc 4.4.7 到支持 C++11 的 4.9,步骤如下:
首先按照 SCL 官网文档 安装 SCL 源:
sudo yum install centos-release-scl sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
完成后,不需继续安装全部的 devtoolset-3 依赖,只安装所需的 devtoolset-3-gcc-c++ 即可:
sudo yum install devtoolset-3-gcc-c++
临时启用 devtoolset-3:
scl enable devtoolset-3 bash
这时候 gcc --version
就会变成 4.9 的版本了。若要将默认 gcc 替换为该版本,方法如下:
echo "source /opt/rh/devtoolset-3/enable" >>/etc/profile
在更新 gcc 后,重新 npm install -g sinopia
即可完成安装。
Sinopia 启动后,默认只在 http://localhost:4873
下可见。若要通过 IP 或域名访问,则需要添加 nginx 一类的反向代理,并在 ~/.config/sinopia/config.yaml
下添加配置 url_prefix: http://your_host_name
以配置通过反向代理访问 Sinopia 的 Web 界面时,相应静态资源的路径。
要配置 Sinopia 代理的上游 NPM 仓库地址,只需修改 ~/.config/sinopia/config.yaml
中的 up
字段即可。
添加 Sinopia 到启动脚本,修改 /etc/rc.local
即可:
sudo -u your_user_name nohup sinopia >/dev/null 2>&1 &