自用,用于搭建物理节点
基于刚装配完系统的ubuntu20.04
先安装NDN-cxx:
更新下载源:
sudo apt update
安装ndn-cxx依赖包:
sudo apt install build-essential pkg-config python3-minimal libboost-all-dev libssl-dev libsqlite3-dev
sudo apt install doxygen graphviz python3-pip
pip3 install --user sphinx sphinxcontrib-doxylink
装NFD前置:
sudo apt install software-properties-common
sudo apt install libpcap-dev libsystemd-dev
sudo add-apt-repository ppa:named-data/ppa
sudo apt update
sudo apt install nfd(必要)
sudo apt install git
git代码:
git clone https://github.com/named-data/ndn-cxx.git
git clone --recursive https://github.com/named-data/NFD.git
前置安装
分别安装ndn-cxx、NFD:
./waf configure
./waf
sudo ./waf install
将nfd.conf.sample copy一份为 nfd.conf,进行配置(另外两项功能不明)
进入管理员模式:sudo nautilus
wget https://waf.io/waf-2.0.23
mv waf-2.0.23 waf
chmod +x waf
或直接更改
sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf
更新系统
sudo apt update
sudo apt upgrade
(注意:22.04安装完毕后需要运行sudo ldconfig以更新缓存库)
至此安装完毕,使用nfd-start
关闭:nfd-stop
状态:nfd-status
若报错,尝试重新编译安装NFD
更改NFD配置文件后,重新配置流程:
./waf clean ./waf configure ./waf sudo ./waf install
启用例程(ndn-cxx)
./waf configure --with-examples
./waf
sudo ./waf install
sudo ldconfig # on Linux only
2024/7/11更新:针对ubuntu20.04桌面版在树莓派4上不支持的问题。
烧录安装20.04服务器版本后执行:
-
sudo apt update
-
sudo apt upgrade -y
-
安装桌面环境:sudo apt install -y ubuntu-desktop
-
配置默认显示管理器为
gdm3:
sudo dpkg-reconfigure gdm3 -
如果第四步报错,执行:sudo systemctl start gdm3,启动gdm3服务,启动后会启动可视化桌面
2024/7/16更新:针对Raspberry PI OS(64)系统(arm)的安装
1. 用 sudo apt-get install doxygen graphviz sphinx-doc sphinx-common 替代官网的pip3 install --user sphinx sphinxcontrib-doxylink。
这样可以避免构建虚拟py环境导致的编译文件指向问题,尽量将sphinx-build指向usr/bin/这样的默认目录。
2. 后续正常安装,忽略doxylink等拓展没找到的警告(安装完毕后解决)
解决:确保/usr/local/lib包含libndn-cxx.so、libndn-cxx.so.0.8.1后,配置环境:
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
sudo ldconfig
完成配置(之前虚拟环境浪费了很多时间,尽量建议安装默认环境,不可盲从error对应的建议)
银河麒麟以及树莓派系统(arm)通用,解决libndn-cxx.so文件无法识别的问题,/usr/local/lib为libndn-cxx.so所在路径,银河麒麟V10在lib64文件夹下。
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/ndn-cxx.conf
sudo ldconfig
waf编译失败可以尝试更新waf:
wget https://waf.io/waf-2.0.23
mv waf-2.0.23 waf
chmod +x waf