-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correct procedure to install OVS+dpdk for RHEL 8 #263
Comments
RPM is looking for symbols and libraries available in other RPM packages, not actual files on the filesystem. So, you need a DPDK RPM package installed. You also need the RPM that is the same with which you built OVS with. So, you need to either build a DPDK package, install it and build OVS with it, or, since RHEL8 happened to have a compatible version of DPDK, install On a clean system, you should be able to install
|
I tried doing as you suggested. It took care of a lot of those lib rte
dependencies. But there are a few left that still show up as not being
found when installing the rpm, I detail this at the end of my post as an
update. Any idea why those are not covered?
…On Thu, Sep 1, 2022, 8:45 AM Ilya Maximets ***@***.***> wrote:
RPM is looking for symbols and libraries available in *other RPM packages*,
*not actual files on the filesystem*. So, you need a DPDK RPM package
installed.
You also need the RPM that is *the same with which you built OVS with*.
So, you need to either build a DPDK package, install it and build OVS with
it, or, since RHEL8 happened to have a compatible version of DPDK, install
dpdk-devel and dpdk packages from RHEL repositories and build with them.
These packages do not provide static libraries, IIRC, so you have to use
--with-dpdk=shared.
On a clean system, you should be able to install dpdk-devel and dpdk
packages from RHEL8 repo and build an OVS 2.17+ with it with the following
spec change:
diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in
index 9903dd10a..b8d2740c3 100644
--- a/rhel/openvswitch.spec.in
+++ b/rhel/openvswitch.spec.in
@@ -32,14 +32,13 @@ License: ASL 2.0
Release: %{release_number}%{?dist}
Source: openvswitch-%{version}.tar.gz
Buildroot: /tmp/openvswitch-rpm
-Requires: logrotate, hostname, python >= 2.7, python-six
-BuildRequires: python-six
+Requires: logrotate, hostname, python3 >= 3.4
BuildRequires: openssl-devel
BuildRequires: checkpolicy, selinux-policy-devel
BuildRequires: autoconf, automake, libtool
BuildRequires: python3-sphinx
BuildRequires: unbound-devel
-BuildRequires: libunwind-devel
+BuildRequires: dpdk-devel == 21.11
%bcond_without check
%bcond_with check_datapath_kernel
@@ -70,7 +69,7 @@ Tailored Open vSwitch SELinux policy
%build
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} \
- --libdir=%{_libdir} --enable-ssl --enable-shared
+ --libdir=%{_libdir} --enable-ssl --enable-shared --with-dpdk=shared
make %{_smp_mflags}
make selinux-policy
@@ -102,7 +101,6 @@ rm \
$RPM_BUILD_ROOT/usr/share/man/man8/ovs-test.8 \
$RPM_BUILD_ROOT/usr/share/man/man8/ovs-l3ping.8
(cd "$RPM_BUILD_ROOT" && rm -rf usr/%{_lib}/*.la)
-(cd "$RPM_BUILD_ROOT" && rm -rf usr/include)
install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch
@@ -255,6 +253,7 @@ exit 0
%{_libdir}/lib*.a
%{_libdir}/pkgconfig
%{_includedir}/openvswitch/*
+%{_includedir}/openflow/*
%files selinux-policy
%defattr(-,root,root)
—
Reply to this email directly, view it on GitHub
<#263 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOL4D3LN2Z6J5LB465EHCWLV4CQPXANCNFSM6AAAAAAQBVZRBI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
If you have unresolved DPDK dependencies, t meant that you built OVS with a version of DPDK that is not installed from the RPM. |
Ok so this all seems like an issue with how I am building RPMs, and the fact I am trying to use RPMs to install as the specs are so old (the install actual creates a generated init.d file instead of creating a systemd unit that controls ExecStart of a binary). I did find that fastpath does have the latest 2.17.3 version of openvswitch. I did the following
After installing ovs seems to meet all my needs. However I am not 100% sure that dpdk is enabled on this version from fastpath. I was able to create a My only consern is that instructions show I should be installing
On Ubuntu, it would say "dpdk 21.11.0" at the bottom of the version. |
If If you were able to add DPDK ports without errors, OVS has support for them. |
Another way to build OVS from sources is to use the fedora spec file instead. It is way more up to date. You'll need |
Note: already posted about some of this here.
Already tried following the instructions here.
DPDK installs fine.
But Openvswitch will not install.
There are not clear instructions that I could find on how to install Openvswitch on RHEL8. This page states this:
However I could not find anyway to install via yum or dnf, none of the current repos include
openvswitch
oropenvswitch-dpdk
I shifted to installing using an RPM. You can read about how I was able to do this with a regular ovs deployment here.
The process works for configuring ovs without
--with-dpdk=<value>
parameter.However when I include that parameter in the .spec file configure section, then create an rpm, the rpm will not install. I get these errors:
DPDK is installed and I can find with pkg-config
I tried using
--with-dpdk=static
--with-dpdk=shared
and--with-dpdk=yes
(Which I believe is the same as static) none worked.I was able to compile an install on Ubuntu 18.04 with out these issues.
I am not clear on why the rpm install needs these shared libraries but the non dpdk installs dont. It looks like many of these dependencies are shared objects. Were they not installed? is dpdk flavor installs looking for these? How do I correct this problem so I can install ovs with dpdk?
Also if anyone knows how to fix the Python3 conflict errors that would be great. I just ignore them with
--nodeps
on install of the rpm.UPDATE: well it seems I could just
yum install dpdk
, and that took care of most of the dependencies. Whats left is the following:All of these
librte_*
are related to dpdk in some way I think. Not sure why these are not being found.The text was updated successfully, but these errors were encountered: