doc: update misc build docs

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2018-08-30 19:18:30 +00:00
parent fff24a2e73
commit 09b67c0938
4 changed files with 271 additions and 195 deletions

View File

@ -40,17 +40,17 @@ Install required packages
Add packages: Add packages:
:: .. code-block:: shell
sudo yum install git autoconf automake libtool make gawk \ sudo yum install git autoconf automake libtool make gawk \
readline-devel texinfo net-snmp-devel groff pkgconfig \ readline-devel texinfo net-snmp-devel groff pkgconfig \
json-c-devel pam-devel flex epel-release perl-XML-LibXML \ json-c-devel pam-devel flex epel-release perl-XML-LibXML \
c-ares-devel c-ares-devel
Install newer version of bison (CentOS 6 package source is too old) from Install newer version of bison (CentOS 6 package source is too old) from CentOS
CentOS 7 7:
:: .. code-block:: shell
sudo yum install rpm-build sudo yum install rpm-build
curl -O http://vault.centos.org/7.0.1406/os/Source/SPackages/bison-2.7-4.el7.src.rpm curl -O http://vault.centos.org/7.0.1406/os/Source/SPackages/bison-2.7-4.el7.src.rpm
@ -58,10 +58,9 @@ CentOS 7
sudo yum install ./rpmbuild/RPMS/x86_64/bison-2.7-4.el6.x86_64.rpm sudo yum install ./rpmbuild/RPMS/x86_64/bison-2.7-4.el6.x86_64.rpm
rm -rf rpmbuild rm -rf rpmbuild
Install newer version of autoconf and automake (Package versions are too Install newer version of autoconf and automake (Package versions are too old):
old)
:: .. code-block:: shell
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar xvf autoconf-2.69.tar.gz tar xvf autoconf-2.69.tar.gz
@ -79,22 +78,21 @@ old)
sudo make install sudo make install
cd .. cd ..
Install ``Python 2.7`` in parallel to default 2.6. Make sure you've Install ``Python 2.7`` in parallel to default 2.6. Make sure you've install
install EPEL (``epel-release`` as above). Then install current EPEL (``epel-release`` as above). Then install current ``python27``:
``python27``, ``python27-devel`` and ``pytest`` ``python27-devel`` and ``pytest``
:: .. code-block:: shell
sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm sudo rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
sudo yum install python27 python27-pip python27-devel sudo yum install python27 python27-pip python27-devel
sudo pip2.7 install pytest sudo pip2.7 install pytest
Please note that ``CentOS 6`` needs to keep python pointing to version Please note that ``CentOS 6`` needs to keep python pointing to version 2.6 for
2.6 for ``yum`` to keep working, so don't create a symlink for python2.7 ``yum`` to keep working, so don't create a symlink for python2.7 to python.
to python
Install newer ``Sphinx-Build`` based on ``Python 2.7`` Install newer ``Sphinx-Build`` based on ``Python 2.7``.
Create a new repo ``/etc/yum.repos.d/puias6.repo`` with the following contents: Create a new repo ``/etc/yum.repos.d/puias6.repo`` with the following contents:
@ -113,7 +111,7 @@ Create a new repo ``/etc/yum.repos.d/puias6.repo`` with the following contents:
Update rpm database & Install newer sphinx Update rpm database & Install newer sphinx
:: .. code-block:: shell
sudo yum update sudo yum update
sudo yum install python27-sphinx sudo yum install python27-sphinx
@ -121,13 +119,13 @@ Update rpm database & Install newer sphinx
Get FRR, compile it and install it (from Git) Get FRR, compile it and install it (from Git)
--------------------------------------------- ---------------------------------------------
**This assumes you want to build and install FRR from source and not **This assumes you want to build and install FRR from source and not using any
using any packages** packages**
Add frr groups and user Add frr groups and user
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo groupadd -g 92 frr sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvt sudo groupadd -r -g 85 frrvt
@ -140,7 +138,7 @@ Download Source, configure and compile it
(You may prefer different options on configure statement. These are just (You may prefer different options on configure statement. These are just
an example.) an example.)
:: .. code-block:: shell
git clone https://github.com/frrouting/frr.git frr git clone https://github.com/frrouting/frr.git frr
cd frr cd frr
@ -178,29 +176,47 @@ an example.)
Create empty FRR configuration files Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo mkdir /var/log/frr sudo mkdir /var/log/frr
sudo mkdir /etc/frr sudo mkdir /etc/frr
sudo touch /etc/frr/zebra.conf
For integrated config file:
.. code-block:: shell
sudo touch /etc/frr/frr.conf
For individual config files:
.. note:: Integrated config is preferred to individual config.
.. code-block:: shell
sudo touch /etc/frr/babeld.conf
sudo touch /etc/frr/bfdd.conf
sudo touch /etc/frr/bgpd.conf sudo touch /etc/frr/bgpd.conf
sudo touch /etc/frr/ospfd.conf sudo touch /etc/frr/eigrpd.conf
sudo touch /etc/frr/ospf6d.conf
sudo touch /etc/frr/isisd.conf sudo touch /etc/frr/isisd.conf
sudo touch /etc/frr/ldpd.conf
sudo touch /etc/frr/nhrpd.conf
sudo touch /etc/frr/ospf6d.conf
sudo touch /etc/frr/ospfd.conf
sudo touch /etc/frr/pbrd.conf
sudo touch /etc/frr/pimd.conf
sudo touch /etc/frr/ripd.conf sudo touch /etc/frr/ripd.conf
sudo touch /etc/frr/ripngd.conf sudo touch /etc/frr/ripngd.conf
sudo touch /etc/frr/nhrpd.conf sudo touch /etc/frr/staticd.conf
sudo touch /etc/frr/eigrpd.conf sudo touch /etc/frr/zebra.conf
sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/ sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvt /etc/frr/vtysh.conf sudo chown frr:frrvty /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf sudo chmod 640 /etc/frr/*.conf
Install daemon config file Install daemon config file
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo install -p -m 644 redhat/daemons /etc/frr/ sudo install -p -m 644 redhat/daemons /etc/frr/
sudo chown frr:frr /etc/frr/daemons sudo chown frr:frr /etc/frr/daemons
@ -214,10 +230,8 @@ Enable the daemons as required by changing the value to ``yes``
Enable IP & IPv6 forwarding Enable IP & IPv6 forwarding
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Edit ``/etc/sysctl.conf`` and set the following values (ignore the other Edit :file:`/etc/sysctl.conf` and set the following values (ignore the other
settings) settings)::
::
# Controls IP packet forwarding # Controls IP packet forwarding
net.ipv4.ip_forward = 1 net.ipv4.ip_forward = 1
@ -228,28 +242,28 @@ settings)
Load the modifed sysctl's on the system: Load the modifed sysctl's on the system:
:: .. code-block:: shell
sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
Add init.d startup files Add init.d startup files
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block::
sudo install -p -m 755 redhat/frr.init /etc/init.d/frr sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
sudo chkconfig --add frr sudo chkconfig --add frr
Enable frr daemon at startup Enable FRR daemon at startup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block::
sudo chkconfig frr on sudo chkconfig frr on
Start FRR manually (or reboot) Start FRR manually (or reboot)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block::
sudo /etc/init.d/frr start sudo /etc/init.d/frr start

View File

@ -78,18 +78,38 @@ an example)
Create empty FRR configuration files Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo mkdir /usr/local/etc/frr sudo mkdir /usr/local/etc/frr
sudo touch /usr/local/etc/frr/zebra.conf
For integrated config file:
.. code-block:: shell
sudo touch /usr/local/etc/frr/frr.conf
For individual config files:
.. note:: Integrated config is preferred to individual config.
.. code-block:: shell
sudo touch /usr/local/etc/frr/babeld.conf
sudo touch /usr/local/etc/frr/bfdd.conf
sudo touch /usr/local/etc/frr/bgpd.conf sudo touch /usr/local/etc/frr/bgpd.conf
sudo touch /usr/local/etc/frr/ospfd.conf sudo touch /usr/local/etc/frr/eigrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/isisd.conf sudo touch /usr/local/etc/frr/isisd.conf
sudo touch /usr/local/etc/frr/ldpd.conf
sudo touch /usr/local/etc/frr/nhrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/ospfd.conf
sudo touch /usr/local/etc/frr/pbrd.conf
sudo touch /usr/local/etc/frr/pimd.conf
sudo touch /usr/local/etc/frr/ripd.conf sudo touch /usr/local/etc/frr/ripd.conf
sudo touch /usr/local/etc/frr/ripngd.conf sudo touch /usr/local/etc/frr/ripngd.conf
sudo touch /usr/local/etc/frr/pimd.conf sudo touch /usr/local/etc/frr/staticd.conf
sudo chown -R frr:frr /usr/local/etc/frr sudo touch /usr/local/etc/frr/zebra.conf
sudo chown -R frr:frr /usr/local/etc/frr/
sudo touch /usr/local/etc/frr/vtysh.conf sudo touch /usr/local/etc/frr/vtysh.conf
sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
sudo chmod 640 /usr/local/etc/frr/*.conf sudo chmod 640 /usr/local/etc/frr/*.conf
@ -105,5 +125,4 @@ Add the following lines to the end of ``/etc/sysctl.conf``:
net.inet.ip.forwarding=1 net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1 net.inet6.ip6.forwarding=1
**Reboot** or use ``sysctl`` to apply the same config to the running **Reboot** or use ``sysctl`` to apply the same config to the running system.
system

View File

@ -1,5 +1,5 @@
FreeBSD 11 FreeBSD 11
========================================== ==========
FreeBSD 11 restrictions: FreeBSD 11 restrictions:
------------------------ ------------------------
@ -14,46 +14,51 @@ Install required packages
Add packages: (Allow the install of the package managment tool if this Add packages: (Allow the install of the package managment tool if this
is first package install and asked) is first package install and asked)
:: .. code-block:: shell
pkg install git autoconf automake libtool gmake gawk json-c pkgconf \ pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
bison flex py27-pytest c-ares python3 py36-sphinx bison flex py27-pytest c-ares python3 py36-sphinx texinfo
Make sure there is no /usr/bin/flex preinstalled (and use the newly Make sure there is no /usr/bin/flex preinstalled (and use the newly
installed in /usr/local/bin): (FreeBSD frequently provides a older flex installed in /usr/local/bin): (FreeBSD frequently provides a older flex
as part of the base OS which takes preference in path) as part of the base OS which takes preference in path)
:: .. code-block:: shell
rm -f /usr/bin/flex rm -f /usr/bin/flex
Get FRR, compile it and install it (from Git) Get FRR, compile it and install it (from Git)
--------------------------------------------- ---------------------------------------------
**This assumes you want to build and install FRR from source and not **This assumes you want to build and install FRR from source and not using any
using any packages** packages**
Add frr group and user Add frr group and user
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
pw groupadd frr -g 101 pw groupadd frr -g 101
pw groupadd frrvty -g 102 pw groupadd frrvty -g 102
pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \ pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
-d /usr/local/etc/frr -s /usr/sbin/nologin -d /usr/local/etc/frr -s /usr/sbin/nologin
Download Source, configure and compile it
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(You may prefer different options on configure statement. These are just (You may prefer different options on configure statement. These are just
an example) an example)
:: .. code-block:: shell
git clone https://github.com/frrouting/frr.git frr git clone https://github.com/frrouting/frr.git frr
cd frr cd frr
./bootstrap.sh ./bootstrap.sh
export MAKE=gmake setenv MAKE gmake
export LDFLAGS="-L/usr/local/lib" setenv LDFLAGS -L/usr/local/lib
export CPPFLAGS="-I/usr/local/include" setenv CPPFLAGS -I/usr/local/include
ln -s /usr/local/bin/sphinx-build-3.6 /usr/local/bin/sphinx-build
./configure \ ./configure \
--sysconfdir=/usr/local/etc/frr \ --sysconfdir=/usr/local/etc/frr \
--enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \ --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
@ -78,18 +83,38 @@ an example)
Create empty FRR configuration files Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo mkdir /usr/local/etc/frr sudo mkdir /usr/local/etc/frr
sudo touch /usr/local/etc/frr/zebra.conf
For integrated config file:
.. code-block:: shell
sudo touch /usr/local/etc/frr/frr.conf
For individual config files:
.. note:: Integrated config is preferred to individual config.
.. code-block:: shell
sudo touch /usr/local/etc/frr/babeld.conf
sudo touch /usr/local/etc/frr/bfdd.conf
sudo touch /usr/local/etc/frr/bgpd.conf sudo touch /usr/local/etc/frr/bgpd.conf
sudo touch /usr/local/etc/frr/ospfd.conf sudo touch /usr/local/etc/frr/eigrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/isisd.conf sudo touch /usr/local/etc/frr/isisd.conf
sudo touch /usr/local/etc/frr/ldpd.conf
sudo touch /usr/local/etc/frr/nhrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/ospfd.conf
sudo touch /usr/local/etc/frr/pbrd.conf
sudo touch /usr/local/etc/frr/pimd.conf
sudo touch /usr/local/etc/frr/ripd.conf sudo touch /usr/local/etc/frr/ripd.conf
sudo touch /usr/local/etc/frr/ripngd.conf sudo touch /usr/local/etc/frr/ripngd.conf
sudo touch /usr/local/etc/frr/pimd.conf sudo touch /usr/local/etc/frr/staticd.conf
sudo chown -R frr:frr /usr/local/etc/frr sudo touch /usr/local/etc/frr/zebra.conf
sudo chown -R frr:frr /usr/local/etc/frr/
sudo touch /usr/local/etc/frr/vtysh.conf sudo touch /usr/local/etc/frr/vtysh.conf
sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
sudo chmod 640 /usr/local/etc/frr/*.conf sudo chmod 640 /usr/local/etc/frr/*.conf
@ -105,5 +130,4 @@ Add the following lines to the end of ``/etc/sysctl.conf``:
net.inet.ip.forwarding=1 net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1 net.inet6.ip6.forwarding=1
**Reboot** or use ``sysctl`` to apply the same config to the running **Reboot** or use ``sysctl`` to apply the same config to the running system.
system

View File

@ -91,18 +91,38 @@ an example)
Create empty FRR configuration files Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: shell
sudo mkdir /usr/local/etc/frr sudo mkdir /usr/local/etc/frr
sudo touch /usr/local/etc/frr/zebra.conf
For integrated config file:
.. code-block:: shell
sudo touch /usr/local/etc/frr/frr.conf
For individual config files:
.. note:: Integrated config is preferred to individual config.
.. code-block:: shell
sudo touch /usr/local/etc/frr/babeld.conf
sudo touch /usr/local/etc/frr/bfdd.conf
sudo touch /usr/local/etc/frr/bgpd.conf sudo touch /usr/local/etc/frr/bgpd.conf
sudo touch /usr/local/etc/frr/ospfd.conf sudo touch /usr/local/etc/frr/eigrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/isisd.conf sudo touch /usr/local/etc/frr/isisd.conf
sudo touch /usr/local/etc/frr/ldpd.conf
sudo touch /usr/local/etc/frr/nhrpd.conf
sudo touch /usr/local/etc/frr/ospf6d.conf
sudo touch /usr/local/etc/frr/ospfd.conf
sudo touch /usr/local/etc/frr/pbrd.conf
sudo touch /usr/local/etc/frr/pimd.conf
sudo touch /usr/local/etc/frr/ripd.conf sudo touch /usr/local/etc/frr/ripd.conf
sudo touch /usr/local/etc/frr/ripngd.conf sudo touch /usr/local/etc/frr/ripngd.conf
sudo touch /usr/local/etc/frr/pimd.conf sudo touch /usr/local/etc/frr/staticd.conf
sudo chown -R frr:frr /usr/local/etc/frr sudo touch /usr/local/etc/frr/zebra.conf
sudo chown -R frr:frr /usr/local/etc/frr/
sudo touch /usr/local/etc/frr/vtysh.conf sudo touch /usr/local/etc/frr/vtysh.conf
sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
sudo chmod 640 /usr/local/etc/frr/*.conf sudo chmod 640 /usr/local/etc/frr/*.conf
@ -118,5 +138,4 @@ Add the following lines to the end of ``/etc/sysctl.conf``:
net.inet.ip.forwarding=1 net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1 net.inet6.ip6.forwarding=1
**Reboot** or use ``sysctl`` to apply the same config to the running **Reboot** or use ``sysctl`` to apply the same config to the running system.
system