INSTALL
author Kim Alvefur <zash@zash.se>
Sun, 24 Mar 2024 21:32:00 +0100
changeset 13468 2dbc169aae6a
parent 12290 ad88732eea51
permissions -rw-r--r--
util.startup: Abort before initialization of logging when started as root Prevents creation of log files owned by the root user which could be inaccessible once started correctly.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5407
c9ff345a27e7 INSTALL: Update from wiki
Matthew Wild <mwild1@gmail.com>
parents: 4885
diff changeset
     1
(This file was created from
7362
a5a080c12c96 Update every link to the documentation to use HTTPS
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5407
diff changeset
     2
https://prosody.im/doc/installing_from_source on 2013-03-31)
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     4
# Installing from source
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     5
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     6
## Dependencies
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     7
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     8
There are a couple of development packages which Prosody needs installed
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
     9
before you can build it. These are:
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    11
-   The [Lua](http://lua.org/) library, version 5.4 recommended
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    12
-   [OpenSSL](http://openssl.org/)
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    13
-   String processing library, one of
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    14
    -   [ICU](https://icu.unicode.org/) (recommended)
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    15
    -   [GNU libidn](http://www.gnu.org/software/libidn/)
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    16
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    17
These can be installed on Debian/Ubuntu by running
12290
ad88732eea51 util.dependencies: Refer to 'apt' instead of 'apt-get'
Kim Alvefur <zash@zash.se>
parents: 12226
diff changeset
    18
`apt build-dep prosody` or by installing the packages
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    19
`liblua5.4-dev`, `libicu-dev` and `libssl-dev`.
4885
8df3e709f8b7 INSTALL: Update with changes from wiki.
Kim Alvefur <zash@zash.se>
parents: 1192
diff changeset
    20
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    21
On Mandriva try:
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    22
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    23
	urpmi lua liblua-devel libidn-devel libopenssl-devel
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    25
On Mac OS X, if you have MacPorts installed, you can try:
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    26
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    27
	sudo port install lua lua-luasocket lua-luasec lua-luaexpat
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    28
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    29
On other systems... good luck, but please let us know of the best way of
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    30
getting the dependencies for your system and we can add it here.
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    31
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    32
## configure
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    33
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    34
The first step of building is to run the configure script. This creates
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    35
a file called 'config.unix' which is used by the next step to control
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    36
aspects of the build process.
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    37
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    38
	./configure
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    39
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    40
All options to configure can be seen by running
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    41
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    42
	./configure --help
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    43
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    44
## make
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    45
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    46
Once you have run configure successfully, then you can simply run:
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    47
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    48
   make
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    49
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    50
Simple? :-)
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    51
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    52
If you do happen to have problems at this stage, it is most likely due
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    53
to the build process not finding the dependencies. Ensure you have them
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    54
installed, and in the standard library paths for your system.
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    55
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    56
For more help, just ask ;-)
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    57
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    58
==== install ====
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    59
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    60
At this stage you should be able to run Prosody simply with:
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    61
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    62
   ./prosody
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    63
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    64
There is no problem with this, it is actually the easiest way to do
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    65
development, as it doesn't spread parts around your system, and you
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    66
can keep multiple versions around in their own directories without
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    67
conflict.
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    68
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    69
Should you wish to install it system-wide however, simply run:
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    70
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    71
   sudo make install
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    72
12226
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    73
...it will install into /usr/local/ by default. To change this you can
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    74
pass to the initial ./configure using the 'prefix' option, or edit
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    75
config.unix directly. If the new path doesn't require root permission to
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    76
write to, you also won't need (or want) to use 'sudo' in front of the
61592927335b INSTALL: Update from site version
Kim Alvefur <zash@zash.se>
parents: 7362
diff changeset
    77
'make install'.
1192
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    78
b1b42ce4f0f6 Finally add README and INSTALL files
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    79
Have fun, and see you on Jabber!