This is part of the Frida online handbook.
At present, only Linux is actively supported. As most tests are done in a Debian or Ubuntu environment, we are grateful for feedback if there are difficulties with other distributions.
In principle, an equivalent environment can also be installed under M$ Windows; it is called Cygwin.
Another solution is using VMWare to run a Linux environment on a windows box.
To compile the sources, one needs the compilation tools
and the libraries
At runtime, one external program is needed:
In Debian/Ubuntu, the following command installs all required packages:
sudo aptitude install \ make \ g++-4.3 \ # or 4.4 in "squeeze" distribution bison \ flex \ libreadline5-dev \ libgsl0-dev \ libfftw3-dev \ libboost-regex1.35-dev \ # or more recent version (e.g. 1.42) with g++4.4 libboost-date-time1.35-dev \ # ditto gnuplot
Other required packages are automatically installed through dependencies. In particular, each development package (-dev, containing the .h files) depends on a library package that contains the corresponding shared library.
The libboost regex and date-time development packages depend on libboost1.35-dev which contains, among others, the shared pointer module (which is implemented through .h files only; no shared library).
There may be some incompatibility between g++ and libboost versions. Proven combinations are
libboost1.40 or 1.42 with g++-4.4; libboost1.34 with g++-4.3.
Please report on other combinations that work or do not work.
Download most recent source archives from http://www.messen-und-deuten.de/frida/src. Starting with release 100320, there are two source archives: frida2libs-<version> contains a bundle of libraries, frida2-<version> contains the main program.
Unpack, configure, make, install the libraries:
tar xzvf frida2libs-<version>.tgz cd frida2libs ./configure make sudo make install sudo ldconfig # see note below cd ..
Note regarding ldconfig: This command somehow registers new libraries. I am surprised that it is not automatically executed by make install. But this seems to be distribution specific. Users report:
sudo ldconfig # required in Ubuntu sudo /sbin/ldconfig /usr/local/bin # required in Suse
Unpack, configure, make, install the main program:
tar xzvf frida2-<version>.tgz cd frida2 ./configure make sudo make install cd ..
Finally, create a directory for the graphics output:
mkdir ~/gnew
That’s it. The command frida should start a frida session.
Try to run the following test session:
$ frida ? > fm # enter command fm = file make to create a little data file Number of points per scan [1] ? 11 # enter 11 to overwrite the default 1 Number of scans [1] ? # just press RETURN to accept the default value Save as [grid3] ? # again, we just accept the default value 0 > oy x^2 # our data file becomes a parabola 1 > p # plot it 1 > cc p0*t^p1 # create a fit curve: some power law 2 > cf # fit p0,p1 to the data; should say "success" 2 > a # add the fit to the plot 2 > quit # terminate the frida session
If libraries are not found, check LD_LIBRARY_PATH. Possibly, /usr/local/lib must be added. [related commands: ldd, ldconfig].
If the global configure-make-install fails, goto the subdirectories kww, lmfit, readplus, yaml-cpp-at, and build these libraries separately, using again the standard ./configure; make; sudo make install sequence. Then build frida2. Some of the libraries contain demo directories. In case of problems, go to these subdirectories and try to run the test programs.
If problems persist, please attach the output of
uname -a
and run
make clean ./configure | tee configure.log make | tee make.log
and attach configure.log and make.log.
Alternatively, experts may download the current development versions.
Additional software requirement:
Then
git clone http://iffwww.iff.kfa-juelich.de/~wuttke/jwu4n.git/ git clone http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/
will create folders jwu4n and frida2 in the current directory. jwu4n contains subdirectories kww, lmfit, read-plus, yampl-cpp-at. The Frida2 source is in frida2/pub.
Go to each of these subdirectories and run
./configure make make install # as root
To modify makefiles, one more software requirement:
Then run
autoreconf -i -f