Installing ANYCONF and JUISE on FreeBSD 9
Some tools or libraries might be included in your installation depending on which options (such as development packages) you chose to install FreeBSD 9. The rest of the tools and libraries either need to be installed from ports or downloaded from the Internet as tar.gz archives, and then copied to the system, extracted, configured, and installed.
IMPORTANT: Because you will end up with more than one version of certain packages installed after the installation completes, you must rename or remove the legacy packages so that JUISE and ANYCONF can locate the correct binaries.
To make sure you have the necessary components installed, follow this process. If you are missing anything, you can run a dependency scan to find the missing components.
Prepare FreeBSD for JUISE and ANYCONF
Download and install the following either from ports or source:
bash
1
|
cd /usr/ports/shells/bash && make install clean
|
gcc
1
|
cd /usr/ports/lang/gcc && make install clean
|
gmake
1
|
cd /usr/ports/devel/gmake && make install clean
|
autoconf
1
|
cd /usr/ports/devel/autoconf && make install clean
|
automake
1
|
cd /usr/ports/devel/automake && make install clean
|
bison
1
|
cd /usr/ports/devel/bison && make install clean
|
Libxml2-dev 2.7.8
1
|
cd /usr/ports/textproc/libxml2 && make install clean
|
Libxslt-dev 1.1.26
1
|
cd /usr/ports/textproc/libxslt && make install clean
|
Libssl-dev 1.0.1
1
|
cd /usr/ports/security/openssl && make install clean
|
2
|
cd /usr/ports/devel/mingw32-openssl && make install clean
|
Libcurl 7.22.0
1
|
cd /usr/ports/ftp/curl && make install clean
|
FreeBSD ports is version 7.21 and will work but you can download it from http://curl.haxx.se/download.html and compile from source.
Libreadline6 6.2-8
1
|
cd /usr/ports/devel/readline && make install clean
|
Readline is shipped as a standard library on most GNU/Linux and FreeBSD systems.
Libslax-0.12.2
- Download LIBSLAX: http://code.google.com/p/libslax/.
- Copy the tar.gz archive to the system.
- Extract.
1
|
FreeBSDserver# tar –xvf libslax-0.12.2.tar.gz
|
2
|
cd libslax-0.12.2/
|
3
|
./configure
|
4
|
make install clean
|
Libssh2-1.4.3
1
|
cd /usr/ports/security/libssh2 && make install clean
|
Openssh 5.9p1
- Download the latest version from http://mirrors.nycbug.org/pub/OpenBSD/OpenSSH/portable/.
- Copy the tar.gz archive to the system.
- Extract.
1
|
FreeBSDserver# tar –xvf openssh-6.1p1.tar.gz
|
2
|
cd openssh-6.1p1\
|
3
|
./configure
|
4
|
make install clean
|
The ports version is OpenSSH 5.8 and would work as well.
GNU 1.1.5
- Download the latest version from http://software.frodo.looijaard.name/getopt/download.php.
- Copy the tar.gz archive to the system.
- Extract.
1
|
FreeBSDserver# tar –xvf getopt-1.1.5.tar.gz
|
2
|
cd getopt-1.1.5\
|
3
|
./configure
|
4
|
make install clean
|
Rename or Remove Binaries
You now have FreeBSD ports or base installation packages installed that conflict with newer versions you want to use with this platform.
For example, after installing OpenSSH 6.1p1:
1
|
FreeBSDserver# where ssh
|
2
|
/usr/bin/ssh (openssh 5.8)
|
3
|
/usr/local/bin/ssh (openssh 6.1)
|
Same thing for Getopt 1.1.5:
1
|
FreeBSDserver# where getopt
|
2
|
/usr/bin/getopt (ports getopt)
|
3
|
/usr/local/bin/getopt (GNU getopt)
|
You must rename or remove binaries for both getopt and ssh that reside in “/usr/bin” to avoid conflicts with the newer versions that are installed into /usr/local/bin. You can rename them whatever you like so long as the environment can no longer find it. In the example below, both have had ".base" appended to their names.
1
|
rename /usr/bin/getptopt > /usr/bin/getopt.base
|
2
|
rename /usr/bin/ssh > /usr/bin/ssh.base
|
Your environment should now be ready for ANYCONF and JUISE.
Install ANYCONF on FreeBSD
Once the FreeBSD environmnent is prepared, download and install ANYCONF.
- Copy the contents of the archive to /usr/local/anyconf.
- Add "/usr/local/anyconf/bin" to your path environment variable.
- Download from https://github.com/nemith/anyconf/.
- Verify that ANYCONF is working.
01
|
FreeBSDserver# anyconf --help
|
02
|
|
<![if !supportLists]>5.<![endif]>
03
|
anyconf: Junos Anyconf "V12 Engine"
|
04
|
|
<![if !supportLists]>6.<![endif]>
05
|
OPTIONS:
|
06
|
-t <template-file> (REQ, upto 2)
|
<![if !supportLists]>7.<![endif]>
07
|
-d <data-file> (upto 3)
|
08
|
-o [<output-file>]
|
<![if !supportLists]>8.<![endif]>
<![if !supportLists]>9.<![endif]>
11
|
--show: will show the output file to the screen after merge
|
IMPORTANT: If you do not get the help description for any reason, then stop and resolve the issue before moving on, otherwise JUISE will not work without ANYCONF.
Install JUISE on FreeBSD
Once the FreeBSD environment is prepared and ANYCONF is working, download and install JUISE.
- Download JUISE from http://code.google.com/p/juise/.
- Download Version 0.3.17. Version 0.3.18 has a known installation bug and should not be used yet. For now use Version 0.3.17.
- Copy the tar.gz archive to the system.
- Extract.
1
|
FreeBSDserver# tar –xvf juise-0.3.17.tar.gz
|
2
|
cd juise-0.3.17\
|
<![if !supportLists]>5.<![endif]>
3
|
./configure
|
4
|
make install clean
|
Verify that JUISE is working.
01
|
FreeBSDserver# juise --help
|
02
|
|
<![if !supportLists]>7.<![endif]>
03
|
Usage: juise [@target] [options] [script] [param value]*
|
04
|
--agent OR -A: enable ssh-agent forwarding
|
<![if !supportLists]>8.<![endif]>
05
|
--commit-script OR -c: test a commit script
|
06
|
--debug OR -d: use the libslax debugger
|
<![if !supportLists]>9.<![endif]>
07
|
--directory <dir> OR -D <dir>: set the directory for server scripts
|
08
|
--include <dir> OR -I <dir>: search directory for includes/imports
|
<![if !supportLists]>10.<![endif]>
09
|
--input <file> OR -i <file>: use given file for input
|
10
|
--indent OR -g: indent output ala output-method/indent
|
<![if !supportLists]>11.<![endif]>
11
|
--junoscript OR -J: use junoscript API protocol
|
12
|
--load OR -l: load commit script changes in test mode
|
<![if !supportLists]>12.<![endif]>
13
|
--lib <dir> OR -L <dir>: search directory for extension libraries
|
14
|
--no-randomize: do not initialize the random number generator
|
<![if !supportLists]>13.<![endif]>
15
|
--param <name> <value> OR -a <name> <value>: pass parameters
|
16
|
--protocol <name> OR -P <name>: use the given API protocol
|
<![if !supportLists]>14.<![endif]>
17
|
--run-server OR -R: run in juise server mode
|
18
|
--script <name> OR -S <name>: run the given script
|
<![if !supportLists]>15.<![endif]>
19
|
--target <name> OR -T <name>: specify the default target device
|
20
|
--trace <file> OR -t <file>: write trace data to a file
|
<![if !supportLists]>16.<![endif]>
21
|
--user <name> OR -u <name>: specify the user name for API connections
|
22
|
--verbose OR -v: enable debugging output (slaxLog())
|
<![if !supportLists]>17.<![endif]>
23
|
--version OR -V: show version information (and exit)
|
24
|
--wait <seconds>: wait after starting (for gdb to attach)
|
For more information, click the project JUISE home page: https://github.com/Juniper/juise/.