(Tested on Ubuntu 16.04 with Snap Version 2, does not work on Ubuntu 15.x which uses earlier versions of snaps)
Install snapcraft:
sudo apt-get install snapcraft
Checkout FRRouting under a unpriviledged user account
git clone https://github.com/frrouting/frr.git cd frr
(Optional) Add extra version information to
snapcraft/extra_version_info.txt
. Information in this file will
be displayed with the frr.version command (simple cat
after
the display of the zebra --version
output)
Run Bootstrap and make distribution tar.gz
./bootstrap.sh ./configure --with-pkg-extra-version=-MySnapVersion make dist
Note: configure parameters are not important for the Snap building,
except the with-pkg-extra-version
if you want to give the Snap
a specific name to mark your own unoffical build
This will build frr-something.tar.gz
- the distribution tar and
the snapcraft/snapcraft.yaml with the matching version number
Create snap
cd snapcraft snapcraft
You should now end up with frr_something.snap
(This can be done on a different system)
Install snapd
sudo apt-get install snapd
Install self-built frr snap. (--force-dangerous
is required to
install a unsigned self-built snap)
snap install --force-dangerous ./frr*.snap
Connect the priviledged network-control
plug to the snap:
snap connect frr:network-control core:network-control
See README.usage.md for more details on setting up and using the snap
DONE.
The Snap will be auto-started and running.
At this time, all FRRouting daemons are auto-started.
A daemon can be stopped/started with (ie ospf6d)
systemctl stop snap.frr.ospf6d.service systemctl start snap.frr.ospf6d.service
or disabled/enabled with
systemctl disable snap.frr.ospf6d.service systemctl enable snap.frr.ospf6d.service
All the commands are prefixed with frr.
frr.vtysh -> vtysh frr.version -> Just gives version output (zebra --version) frr.readme -> Returns simple README with hints on using FRR frr.bgpd-debug -> Directly start each daemon (without service) frr.isisd-debug frr.ospf6d-debug frr.ospfd-debug frr.pimd-debug frr.ripd-debug frr.ripngd-debug frr.ldp-debug frr.zebra-debug frr.pimd-debug frr.nhrpd-debug frr.babeld-debug frr.eigrpd-debug frr.pbrd-debug frr.staticd-debug frr.bfdd-debug frr.fabricd-debug
vtysh can be accessed as frr.vtysh (Make sure you have /snap/bin in your
path). If access as vtysh
instead of frr.vtysh
is needed, you can enable it
via a snap alias as follows:
sudo snap alias frr vtysh
This will add the vtysh command to your /snap/bin for direct access. The output of
sudo snap aliases
should list vtysh command alias as enabled:
App Alias Notes frr.vtysh vtysh enabled