https://github.com/Quagga/quagga/releases/download/quagga-1.2.4/quagga-1.2.4.tar.gz
解压 tar -zxvf quagga-1.2.4.tar.gz
cd quagga-1.2.4
sudo ./configure
- 如果报错:configure: error: vtysh needs libreadline but was not found and usable on your system.
处理:sudo yum install readline-devel
- 如果报错:configure: error: Package requirements (libcares) were not met:
Package ‘libcares’, required by ‘virtual:world’, not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables CARES_CFLAGS
and CARES_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details处理:下载https://github.com/c-ares/c-ares/releases/download/v1.32.3/c-ares-1.32.3.tar.gz
tar -zxvf c-ares-1.32.3.tar.gz
cd c-ares-1.32.3
make
sudo make installsudo vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile3.如果报错:d: .libs/routemap.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of __packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here
/usr/bin/ld: .libs/stream.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of __packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here /usr/bin/ld: .libs/plist.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of __packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here
/usr/bin/ld: .libs/zclient.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of __packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here /usr/bin/ld: .libs/vrf.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of __packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here
/usr/bin/ld: .libs/nexthop.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: multiple definition of `__packed’; .libs/sockunion.o:/home/qua/quagga/quagga-1.2.4/lib/prefix.h:47: first defined here
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:502: libzebra.la] Error 1
make[3]: Leaving directory ‘/home/qua/quagga/quagga-1.2.4/lib’
make[2]: *** [Makefile:430: all] Error 2
make[2]: Leaving directory ‘/home/qua/quagga/quagga-1.2.4/lib’
make[1]: *** [Makefile:467: all-recursive] Error 1
make[1]: Leaving directory ‘/home/qua/quagga/quagga-1.2.4’
make: *** [Makefile:399: all] Error 2处理:在quagga的./configure时,改成./configure --with-cflags=-fcommon
错误处理完成后需要make clean 清理一下
test@admin:~$ sudo zebra -d privs_init: could not lookup user quagga #增加运行用户 sudo adduser quagga sudo chown quagga:quagga /var/run/ sudo chown quagga:quagga /usr/local/etc/ #启动 sudo zebra -d #查看 ps -ef|grep quagga #报错 sudo ospfd -d ospfd: error while loading shared libraries: libospf.so.0: cannot open shared object file: No such file or directory #解决 sudo cp /usr/local/lib/libospf.so.0 /lib # sudo ospfd -d #查看进程 ps -ef|grep ospfd
参考文章:Ubuntu server 24 源码安装Quagga 支持动态路由协议ospf bgp