04. FRR编译安装

本文详细介绍了如何从GitHub克隆并编译FRRouting库(包括librtr和libyang),以及使用RPM构建过程,包括依赖管理、版本控制和最终生成的RPM包列表。
摘要由CSDN通过智能技术生成

04. FRR编译安装

librtr:

库连接:

https://github.com/rtrlib/rtrlib

库版本使用0.8.0
git clone https://github.com/rtrlib/rtrlib.git
cd rtrlib
git checkout v0.8.0
依赖的RPM
yum install rpm-build cmake doxygen libssh-devel

vim /etc/rpm/macros.dist
%dist .oe2203sp3
RPM build 过程
cd rtrlib
tar zcvf librtr-0.8.0.tar.gz *
mkdir rpmbuild
mkdir rpmbuild/SOURCES  rpmbuild/SPECS

cd rtrlib
cp redhat/SPECS/librtr.spec rpmbuild/SPECS
cp librtr-0.8.0.tar.gz rpmbuild/SOURCES

rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/librtr.spec
生产的RPM包
./SRPMS/librtr-0.8.0-1.oe2203sp3.src.rpm
./RPMS/noarch/librtr-doc-0.8.0-1.oe2203sp3.noarch.rpm
./RPMS/x86_64/librtr-0.8.0-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/librtr-devel-0.8.0-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/rtr-tools-0.8.0-1.oe2203sp3.x86_64.rpm

libyang

库连接:

https://github.com/CESNET/libyang

库版本使用v2.1.148
git clone https://github.com/CESNET/libyang.git
cd libyang
git checkout v2.1.148
依赖的RPM
vim /etc/rpm/macros.dist
%dist .oe2203sp3
%rhel 7
RPM build 过程
yum install cmake\(cmocka\)

mv libyang/ libyang-2.1.148
tar zcvf libyang-2.1.148.tar.gz libyang-2.1.148

cd libyang-2.1.148
mkdir rpmbuild
cd rpmbuild
mkdir SOURCES SPECS

cd libyang-2.1.148
cp ./distro/pkg/rpm/libyang.spec rpmbuild/SPECS/
vim SPECS/libyang.spec
Version: 2.1.148
Release: 1%{?dist}

cp ../libyang-2.1.148.tar.gz rpmbuild/SOURCES/

rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/libyang.spec

生产的RPM包
./SRPMS/libyang-2.1.148-1.oe2203sp3.src.rpm
./RPMS/x86_64/libyang-devel-2.1.148-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/libyang-debuginfo-2.1.148-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/libyang-tools-2.1.148-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/libyang-devel-doc-2.1.148-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/libyang-debugsource-2.1.148-1.oe2203sp3.x86_64.rpm
./RPMS/x86_64/libyang-2.1.148-1.oe2203sp3.x86_64.rpm

frr

库连接

https://github.com/FRRouting/frr

库版本使用9.1
git clone https://github.com/FRRouting/frr.git
cd frr
git checkout frr-9.1
库版本说明文档

打包文档:https://docs.frrouting.org/projects/dev-guide/en/latest/packaging-redhat.html
编译文档:https://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-centos8.html

依赖的RPM
yum install rpm-build net-snmp-devel pam-devel libcap-devel  automake  \
libtool  json-c-devel   json-c  protobuf-c   protobuf-devel   protobuf-c-devel \
readline-devel  python3-devel python3-sphinx c-ares-devel systemd-devel texinfo

rpm -ivh libyang-2.1.148-1.oe2203sp3.x86_64.rpm 
rpm -ivh libyang-devel-2.1.148-1.oe2203sp3.x86_64.rpm 
rpm -ivh libyang-tools-2.1.148-1.oe2203sp3.x86_64.rpm 

rpm -ivh librtr-0.8.0-1.oe2203sp3.x86_64.rpm
rpm -ivh librtr-devel-0.8.0-1.oe2203sp3.x86_64.rpm
rpm -ivh rtr-tools-0.8.0-1.oe2203sp3.x86_64.rpm

vim /etc/rpm/macros.dist
%rhel 8
%dist .oe2203sp3
RPM build 过程
cd frr
./bootstrap.sh
./configure
make dist

mkdir rpmbuild
mkdir rpmbuild/SOURCES
mkdir rpmbuild/SPECS
cp redhat/*.spec rpmbuild/SPECS/
cp frr*.tar.gz rpmbuild/SOURCES/

修改frr.spec文件:
vim rpmbuild/SPECS/frr.spec
%{!?with_bgp_vnc:       %global  with_bgp_vnc       1 }
%{!?with_cumulus:       %global  with_cumulus       1 }
%{!?with_pam:           %global  with_pam           1 }

# pathfix.py 在openeuler在python3-devel-3.9.9-28.oe2203sp3.x86_64
#%if 0%{?rhel} > 7
#platform-python-devel is needed for /usr/bin/pathfix.py
#BuildRequires:  platform-python-devel
#%endif

rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/frr.spec
生产的RPM包
./SRPMS/frr-9.1-01.oe2203sp3.src.rpm
./RPMS/x86_64/frr-snmp-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-debuginfo-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-pythontools-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-debugsource-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-contrib-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-devel-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-rpki-rtrlib-9.1-01.oe2203sp3.x86_64.rpm
./RPMS/x86_64/frr-9.1-01.oe2203sp3.x86_64.rpm
运行frr
yum install libssh-devel libssh protobuf-c  net-snmp 

yum install  frr-snmp-9.1-01.oe2203sp3.x86_64.rpm \
frr-pythontools-9.1-01.oe2203sp3.x86_64.rpm frr-contrib-9.1-01.oe2203sp3.x86_64.rpm \
 frr-devel-9.1-01.oe2203sp3.x86_64.rpm frr-rpki-rtrlib-9.1-01.oe2203sp3.x86_64.rpm \
 frr-9.1-01.oe2203sp3.x86_64.rpm

vim /etc/frr/daemon
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=no
ripngd=no
isisd=no
pimd=no
pim6d=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=yes
bfdd=yes
fabricd=no
vrrpd=yes
pathd=no

systemctl restart frr
systemctl status frr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值