Ubuntu 16.04.7-server安装RYU-4.34

1、安装需要的库文件

官网:Getting Started — Ryu 4.34 documentation

sudo apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev #ubuntu16.04及之后的版本

ryu内部文件提到的:

sudo apt-get install python-eventlet  python-routes  python-webob  python-paramiko  python-netaddr  python-lxml  python-oslo-config  python-msgpack

2、python和pip版本升级

在Ubuntu16.04中,python3的版本为3.5.2,需要将其升高。升高至3.8的方法如下

python3 -V
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa  #添加 deadsnakes PPA 源
sudo apt update
sudo apt install python3.8
which python3.8  #查看python3.8位置
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2
sudo update-alternatives --config python3  #选择合适的序号作为启动项

然后更新pip的版本

sudo apt install python-pip  #先安装一个pip,这个好像不需要
wget https://bootstrap.pypa.io/get-pip.py  #下载安装pip的文件
sudo apt-get install python3.8-distutils #安装一个“安装pip”需要的库
python3 get-pip.py  #这个时候不要用sudo

结果如下

ubuntu@ubuntu:~$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
ubuntu@ubuntu:~$ pip3 --version
pip 21.3.1 from /home/ubuntu/.local/lib/python3.8/site-packages/pip (python 3.8)

说明:

  • 如果使用python2.7和pip8的版本进行安装,在pip安装需要的库文件时会出现
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-JqY4N6/oslo.config/
    的问题,失败。
  • 如果使用python3.7以下的版本,ryu可以安装成功,但是启动后会弹出
    from importlib import resources as _importlib_resources ImportError: cannot import name 'resources'
    的错误,依然无法使用。
  • 可能还有其他因素导致上述方案没有成功,有经验的及时交流

说明结束

3、安装RYU

3.1 网页上的安装方案

git clone git://github.com/osrg/ryu.git
cd ryu #进入ryu所在文件夹下
pip3 install -r tools/pip-requires #不加sudo
sudo python setup.py install #这句需要加sudo,要不然没有一些权限

3.2 官网上的安装方案

安装包安装 pip install ryu

源码安装

git clone https://github.com/faucetsdn/ryu.git
cd ryu; pip install .

一些额外的功能需要安装可选的工具

pip install -r tools/optional-requires

但是最后似乎还需要进行python setup.py install这一步骤

4.终于安装成功,结束

上一篇:pd虚拟机死机怎么解决


下一篇:Lab: Blind OS command injection with output redirection:基于输出重定向的系统命令盲注