Skip to content

Commit aacbb3d

Browse files
marcus290alex v
authored andcommitted
add simple steps for 18.04 ubuntu (#408)
* add simple steps for 18.04 ubuntu * Update doc/build-unix.md Co-Authored-By: marcus290 <36244342+marcus290@users.noreply.github.com>
1 parent e436506 commit aacbb3d

File tree

1 file changed

+50
-39
lines changed

1 file changed

+50
-39
lines changed

doc/build-unix.md

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1-
UNIX BUILD NOTES
2-
====================
1+
# UNIX BUILD NOTES
2+
33
Some notes on how to build NavCoin Core in Unix.
44

55
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
66

7-
Note
8-
---------------------
9-
Always use absolute paths to configure and compile navcoin and the dependencies,
10-
for example, when specifying the path of the dependency:
117

12-
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
8+
## Building in Ubuntu 18.04
139

14-
Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
15-
the usage of the absolute path.
10+
You can easily build the dependencies by running the [NavCoin dev tools script here](https://github.com/NAVCoin/navcoin-dev-tools/blob/master/ubuntu-18.04-navcoin-core-dev-setup.sh).
1611

17-
To Build
18-
---------------------
12+
From the navcoin-core directory, you will still need to:
13+
```bash
14+
cd depends
15+
make
16+
cd ..
17+
```
18+
19+
### To Build
1920

2021
```bash
2122
./autogen.sh
@@ -26,8 +27,20 @@ make install # optional
2627

2728
This will build navcoin-qt as well if the dependencies are met.
2829

29-
Dependencies
30-
---------------------
30+
31+
32+
## Notes
33+
34+
Always use absolute paths to configure and compile navcoin and the dependencies,
35+
for example, when specifying the path of the dependency:
36+
37+
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
38+
39+
Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures
40+
the usage of the absolute path.
41+
42+
43+
### Dependencies
3144

3245
These dependencies are required:
3346

@@ -53,8 +66,7 @@ Optional dependencies:
5366

5467
For the versions used in the release, see [release-process.md](release-process.md) under *Fetch and build inputs*.
5568

56-
Memory Requirements
57-
--------------------
69+
### Memory Requirements
5870

5971
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
6072
memory available when compiling NavCoin Core. On systems with less, gcc can be
@@ -63,8 +75,8 @@ tuned to conserve memory with additional CXXFLAGS:
6375

6476
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
6577

66-
Dependency Build Instructions: Ubuntu & Debian
67-
----------------------------------------------
78+
### Dependency Build Instructions: Ubuntu (earlier versions) & Debian
79+
6880
Build requirements:
6981

7082
sudo apt-get install build-essential libcurl3-dev libunbound-dev libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
@@ -103,8 +115,7 @@ ZMQ dependencies:
103115

104116
sudo apt-get install libzmq3-dev (provides ZMQ API 4.x)
105117

106-
Dependencies for the GUI: Ubuntu & Debian
107-
-----------------------------------------
118+
### Dependencies for the GUI: Ubuntu (earlier versions) & Debian
108119

109120
If you want to build NavCoin-Qt, make sure that the required packages for Qt development
110121
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
@@ -126,8 +137,8 @@ libqrencode (optional) can be installed with:
126137
Once these are installed, they will be found by configure and a navcoin-qt executable will be
127138
built by default.
128139

129-
Dependency Build Instructions: Fedora
130-
-------------------------------------
140+
### Dependency Build Instructions: Fedora
141+
131142
Build requirements:
132143

133144
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
@@ -144,14 +155,14 @@ libqrencode (optional) can be installed with:
144155

145156
sudo dnf install qrencode-devel
146157

147-
Notes
148-
-----
158+
### Notes
159+
149160
The release is built with GCC and then "strip navcoind" to strip the debug
150161
symbols, which reduces the executable size by about 90%.
151162

152163

153-
miniupnpc
154-
---------
164+
### miniupnpc
165+
155166

156167
[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here](
157168
http://miniupnp.tuxfamily.org/files/). UPnP support is compiled in and
@@ -162,8 +173,8 @@ turned off by default. See the configure options for upnp behavior desired:
162173
--enable-upnp-default UPnP support turned on by default at runtime
163174

164175

165-
Berkeley DB
166-
-----------
176+
### Berkeley DB
177+
167178
It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
168179

169180
```bash
@@ -193,17 +204,17 @@ cd $NAVCOIN_ROOT
193204

194205
**Note**: You only need Berkeley DB if the wallet is enabled (see the section *Disable-Wallet mode* below).
195206

196-
Boost
197-
-----
207+
### Boost
208+
198209
If you need to build Boost yourself:
199210

200211
sudo su
201212
./bootstrap.sh
202213
./bjam install
203214

204215

205-
Security
206-
--------
216+
### Security
217+
207218
To help make your navcoin installation more secure by making certain attacks impossible to
208219
exploit even if a vulnerability is found, binaries are hardened by default.
209220
This can be disabled with:
@@ -251,8 +262,8 @@ Hardening enables the following features:
251262

252263
The STK RW- means that the stack is readable and writeable but not executable.
253264

254-
Disable-wallet mode
255-
--------------------
265+
### Disable-wallet mode
266+
256267
When the intention is to run only a P2P node without a wallet, navcoin may be compiled in
257268
disable-wallet mode with:
258269

@@ -263,15 +274,15 @@ In this case there is no dependency on Berkeley DB 4.8.
263274
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
264275
call not `getwork`.
265276

266-
Additional Configure Flags
267-
--------------------------
277+
### Additional Configure Flags
278+
268279
A list of additional configure flags can be displayed with:
269280

270281
./configure --help
271282

272283

273-
Setup and Build Example: Arch Linux
274-
-----------------------------------
284+
### Setup and Build Example: Arch Linux
285+
275286
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
276287

277288
pacman -S git base-devel boost libevent python
@@ -289,8 +300,8 @@ As mentioned above, when maintaining portability of the wallet between the stand
289300
node software is desired, Berkeley DB 4.8 must be used.
290301

291302

292-
ARM Cross-compilation
293-
-------------------
303+
### ARM Cross-compilation
304+
294305
These steps can be performed on, for example, an Ubuntu VM. The depends system
295306
will also work on other Linux distributions, however the commands for
296307
installing the toolchain will be different.

0 commit comments

Comments
 (0)