INSTALL
author Matthew Wild <mwild1@gmail.com>
Wed, 27 Mar 2024 15:35:15 +0000
branch0.12
changeset 13469 54a936345aaa
parent 12290 ad88732eea51
permissions -rw-r--r--
prosodyctl check: Warn about invalid domain names in the config file This ensures that domain names of virtual hosts and components are valid in XMPP, and that they are encoded 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!