源码包安装

安装操作以“/open-vswitch/”作为下载、解压后的路径。
- 下载源码包。
- 方法一:Git获取
用户可以选择OVS的官方代码仓克隆代码,切换到对应版本的分支编译使用。
1 2
$ git clone https://github.com/openvswitch/ovs.git $ git checkout v2.12.0
- 方法二:源码压缩包获取
用户可以选择从OVS的官方网站链接中下载Release版本代码。
版本归档地址:https://www.openvswitch.org/download/
下载版本链接:https://www.openvswitch.org/releases/openvswitch-2.12.0.tar.gz
- 方法三:源码压缩包获取
版本快照地址:https://github.com/openvswitch/ovs/releases
下载版本链接:https://github.com/openvswitch/ovs/archive/v2.12.0.zip /
- 方法一:Git获取
- (可选)引导设置。
本步骤适用于1中采用方法二下载源码压缩包并解压之后的情况,需要进行代码包的引导设置。
1
$ ./boot.sh
- 运行配置脚本配置软件编译包。
通常来说,用户可以不带任何参数地调用配置脚本。默认情况下,所有的可执行文件和共享库文件将安装在“/usr/local”目录下的文件夹内,另外OVS软件也会默认到“/usr/local/etc/openvswitch”文件夹下查找其数据库文件。
为了保持源码路径干净,创建一个独立的build目录来进行配置和编译。
1 2
$ mkdir -p build && cd build $ ../configure
一般来说,用户使用上述方法进行编译配置即可。如需自定义配置(如自定义安装路径、指定自定义数据库文件路径等),可参考下列命令进行配置:
- 若需要修改安装路径和默认数据库目录。
1
$ ../configure --prefix=<your-installation-dir> --localstatedir=<your-var-dir> --sysconfdir=<your-default-db-dir>
- 默认将构建和链接静态库,若需要更改为使用共享库。
1
$ ../configure --enable-shared
- 默认将使用环境变量中默认编译器进行编译,若需要指定特定的编译器来编译。
1
$ ../configure CC=gcc-4.7.3
- 若需要指定使用Clang编译器。
1
$ ../configure CC=clang
- 若需要向编译器提供特殊标志。
1
$ ../configure CFLAGS=”-g -O2 -mtune=tsv110”
- 若需要开发OVS软件,需要打开调试选项和地址消毒。
1
$ ../configure CFLAGS=”-g -O2 -fsanitize=address -fno-omit-frame-pointer -fno-common”
- 若需要编译Linux内核模块,以便于运行基于内核的开关,需要带上--with-linux选项路径
1
$ ../configure --with-linux=/lib/modules/$(uname -r)/build
更多编译设置选项请参考configure --help;
或Open vSwitch官方指导:https://docs.openvswitch.org/en/latest/intro/install/general/
- 若需要修改安装路径和默认数据库目录。
- 编译组件。
1
$ make -j4
在完成编译依赖安装与编译配置后,即可在构建目录中运行GNU make进行组件的编译步骤,编译完成后构建目录如下图所示。
- (可选)编译RPM包。
若需要编译rpm或deb包(本文以CentOS rpm包为例),供其他节点安装使用,可以使用下列命令进行rpm包的打包,完成后如下图所示将在rpmbuild目录下生成相关rpm包。
1 2
$ make rpm-fedora $ make rpm-fedora-kmod
- 安装组件。
1
$ make install
若用户重新编译构建了内核模块,则需要进行内核模块的安装、加载和检查。
1 2 3
$ make modules_install $ /sbin/modprobe openvswitch $ /sbin/lsmod | grep openvswitch
