This shows you the differences between two versions of the page.
john:tutorials:Ubuntu-build-howto [2014/05/23 02:06] magnum |
john:tutorials:Ubuntu-build-howto [2024/07/02 19:15] (current) solar refer to doc/INSTALL-UBUNTU |
||
---|---|---|---|
Line 1: | Line 1: | ||
==== How to build on Ubuntu Linux ==== | ==== How to build on Ubuntu Linux ==== | ||
- | Here's how to make an optimal build of latest bleeding-edge code on Ubuntu Linux. Most of it applies to other distros too. | + | |
+ | **This wiki page is not currently maintained.** Please refer to https://github.com/openwall/john/blob/bleeding-jumbo/doc/INSTALL-UBUNTU instead. | ||
+ | |||
+ | Here's how to make an optimal build of latest bleeding-edge code on Ubuntu Linux. Most of it applies to other distros too (also works for Ubuntu on Windows [[https://msdn.microsoft.com/en-us/commandline/wsl/]]). | ||
=== Install pre-requisites: === | === Install pre-requisites: === | ||
Line 6: | Line 9: | ||
== Required stuff == | == Required stuff == | ||
- | sudo apt-get install build-essential libssl-dev | + | sudo apt-get install git build-essential libssl-dev |
== Recommended (extra formats and performance) == | == Recommended (extra formats and performance) == | ||
- | sudo apt-get install yasm libgmp-dev libpcap-dev libnss3-dev libkrb5-dev pkg-config | + | sudo apt-get install yasm libgmp-dev libpcap-dev libnss3-dev libkrb5-dev pkg-config libbz2-dev zlib1g-dev |
- | == If you have an NVIDIA GPU (CUDA and OpenCL support) == | + | == If you have an NVIDIA GPU (OpenCL support) == |
- | sudo apt-get install nvidia-cuda-toolkit nvidia-opencl-dev | + | sudo apt-get install nvidia-opencl-dev |
- | == If you have an AMD GPU (or want to use CPU as OpenCL device) == | + | == If you have an AMD GPU (OpenCL support) == |
sudo apt-get install fglrx-updates-dev | sudo apt-get install fglrx-updates-dev | ||
- | == Optional MPI support == | + | == Optional MPI support (not recommended unless you really need it) == |
sudo apt-get install libopenmpi-dev openmpi-bin | sudo apt-get install libopenmpi-dev openmpi-bin | ||
- | == Optional REXGEN support (additional cracking modes) == | + | == Optional REXGEN support (strongly not recommended unless you really need it) == |
+ | Cmake needs to be 2.8.12 or above. Ubuntu 14.04 LTS has this. | ||
sudo apt-get install subversion cmake bison flex | sudo apt-get install subversion cmake bison flex | ||
mkdir ~/src && cd ~/src | mkdir ~/src && cd ~/src | ||
- | svn checkout http://rexgen.googlecode.com/svn/trunk/ rexgen | + | svn checkout https://github.com/teeshop/rexgen.git rexgen |
- | cd rexgen/src | + | cd rexgen/trunk/src/ |
mkdir build && cd build | mkdir build && cd build | ||
cmake .. | cmake .. | ||
make && sudo make install | make && sudo make install | ||
+ | cd ~/src | ||
=== Clone latest bleeding-edge Jumbo and build: === | === Clone latest bleeding-edge Jumbo and build: === | ||
Line 39: | Line 43: | ||
== Clone GIT repo == | == Clone GIT repo == | ||
- | cd ~/src | + | git clone https://github.com/openwall/john |
- | git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john | + | |
== Build == | == Build == | ||
- | cd ~/src/john/src | + | cd john/src |
# For MPI, use './configure --enable-mpi' below | # For MPI, use './configure --enable-mpi' below | ||
./configure && make -s clean && make -sj4 | ./configure && make -s clean && make -sj4 | ||
- | |||
=== Test your build: === | === Test your build: === | ||
Line 53: | Line 55: | ||
$ ../run/john --test=0 --format=cpu | $ ../run/john --test=0 --format=cpu | ||
+ | To benchmark, drop the ''=0'' argument to ''--test''. | ||
+ | |||
+ | To test OpenCL formats, use ''--format=opencl''. | ||
+ | |||
+ | To test specific format(s) just name them. Wildcards are OK, eg. ''--format=lotus*'' |