Plume/doc/PREREQUISITES.md

97 lines
3.2 KiB
Markdown
Raw Normal View History

2018-06-21 15:30:03 +00:00
# Installing Software Prerequisites
These instructions have been adapted from the Aardwolf documentation, and may not be accurate.
As such, this notification should be updated once verified for Plume installs.
> NOTE: These instructions may help in installing a production version, but are
intended for developers to be able to build and test their changes. If in doubt,
seek out documentation from your distribution package or from [the `doc` folder](doc).
## Installing Requirements
### Installing PostgreSQL
In order to run the Plume backend, you will need to have access to a
2018-06-21 15:30:03 +00:00
[PostgreSQL](https://www.postgresql.org/) database. There are a few options for doing this, but for
this guide were going to assume you are running the database on your
development machine.
#### Linux/OSX Instructions
If you're on an Ubuntu-like machine, you should be able to install
PostgreSQL like this:
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib
If you see an error like:
= note: /usr/bin/ld: cannot find -lpq
collect2: error: ld returned 1 exit statusb
Then you may need to install the libpq (PostgreSQL C-library) package as well :
$ sudo apt-get install libpq-dev
If you're on OSX and using `brew`, do
$ brew update
$ brew install postgres
For Gentoo (eselect-postgresql is optional),
# emerge --sync
# emerge -av postgresql eselect-postgresql
For Fedora/CentOS/RHEL, do
add additional dependencies for fedora I need them to install diesel https://github.com/rust-lang/rust/issues/51873 ➜ ~ dnf info postgresql-server postgresql-contrib mariadb-devel libsq3-devel libpqxx libpqxx-devel Last metadata expiration check: 29 days, 12:41:39 ago on Tue 29 May 2018 07:44:41 PM EDT. Installed Packages Name : libpqxx Epoch : 1 Version : 4.0.1 Release : 11.fc28 Arch : x86_64 Size : 697 k Source : libpqxx-4.0.1-11.fc28.src.rpm Repo : @System From repo : fedora Summary : C++ client API for PostgreSQL URL : http://pqxx.org/ License : BSD Description : C++ client API for PostgreSQL. The standard front-end (in the sense of : "language binding") for writing C++ programs that use PostgreSQL. : Supersedes older libpq++ interface. Name : libpqxx-devel Epoch : 1 Version : 4.0.1 Release : 11.fc28 Arch : x86_64 Size : 327 k Source : libpqxx-4.0.1-11.fc28.src.rpm Repo : @System From repo : fedora Summary : Development tools for libpqxx URL : http://pqxx.org/ License : BSD Description : Development tools for libpqxx. Name : libsq3-devel Version : 20071018 Release : 23.fc28 Arch : x86_64 Size : 1.4 M Source : libsqlite3x-20071018-23.fc28.src.rpm Repo : @System From repo : fedora Summary : Development files for libsqlite3x URL : http://www.wanderinghorse.net/computing/sqlite/ License : zlib Description : The libsq3-devel package contains libraries and header files for : developing applications that use libsq3. Name : mariadb-devel Epoch : 3 Version : 10.2.15 Release : 2.fc28 Arch : x86_64 Size : 4.3 M Source : mariadb-10.2.15-2.fc28.src.rpm Repo : @System From repo : updates Summary : Files for development of MariaDB/MySQL applications URL : http://mariadb.org License : GPLv2 with exceptions and LGPLv2 and BSD Description : MariaDB is a multi-user, multi-threaded SQL database server. : MariaDB is a community developed branch of MySQL. : : : : : This package contains everything needed for developing MariaDB/MySQL server : applications. For developing client applications, use mariadb-connector-c : package. Name : postgresql-contrib Version : 10.4 Release : 1.fc28 Arch : x86_64 Size : 2.4 M Source : postgresql-10.4-1.fc28.src.rpm Repo : @System From repo : updates Summary : Extension modules distributed with PostgreSQL URL : http://www.postgresql.org/ License : PostgreSQL Description : The postgresql-contrib package contains various extension modules that are : included in the PostgreSQL distribution. Name : postgresql-server Version : 10.4 Release : 1.fc28 Arch : x86_64 Size : 20 M Source : postgresql-10.4-1.fc28.src.rpm Repo : @System From repo : updates Summary : The programs needed to create and run a PostgreSQL server URL : http://www.postgresql.org/ License : PostgreSQL Description : PostgreSQL is an advanced Object-Relational database management system (DBMS). : The postgresql-server package contains the programs needed to create : and run a PostgreSQL server, which will in turn allow you to create : and maintain PostgreSQL databases. Available Packages Name : libpqxx Epoch : 1 Version : 4.0.1 Release : 11.fc28 Arch : i686 Size : 220 k Source : libpqxx-4.0.1-11.fc28.src.rpm Repo : fedora Summary : C++ client API for PostgreSQL URL : http://pqxx.org/ License : BSD Description : C++ client API for PostgreSQL. The standard front-end (in the sense of : "language binding") for writing C++ programs that use PostgreSQL. : Supersedes older libpq++ interface. Name : libpqxx-devel Epoch : 1 Version : 4.0.1 Release : 11.fc28 Arch : i686 Size : 99 k Source : libpqxx-4.0.1-11.fc28.src.rpm Repo : fedora Summary : Development tools for libpqxx URL : http://pqxx.org/ License : BSD Description : Development tools for libpqxx. Name : libsq3-devel Version : 20071018 Release : 23.fc28 Arch : i686 Size : 181 k Source : libsqlite3x-20071018-23.fc28.src.rpm Repo : fedora Summary : Development files for libsqlite3x URL : http://www.wanderinghorse.net/computing/sqlite/ License : zlib Description : The libsq3-devel package contains libraries and header files for : developing applications that use libsq3. Name : mariadb-devel Epoch : 3 Version : 10.2.14 Release : 1.fc28 Arch : i686 Size : 976 k Source : mariadb-10.2.14-1.fc28.src.rpm Repo : fedora Summary : Files for development of MariaDB/MySQL applications URL : http://mariadb.org License : GPLv2 with exceptions and LGPLv2 and BSD Description : MariaDB is a multi-user, multi-threaded SQL database server. : MariaDB is a community developed branch of MySQL. : : : : : This package contains everything needed for developing MariaDB/MySQL server : applications. For developing client applications, use mariadb-connector-c : package. Name : postgresql-server Version : 10.4 Release : 1.fc28 Arch : i686 Size : 5.1 M Source : postgresql-10.4-1.fc28.src.rpm Repo : updates Summary : The programs needed to create and run a PostgreSQL server URL : http://www.postgresql.org/ License : PostgreSQL Description : PostgreSQL is an advanced Object-Relational database management system (DBMS). : The postgresql-server package contains the programs needed to create : and run a PostgreSQL server, which will in turn allow you to create : and maintain PostgreSQL databases.
2018-06-28 12:28:01 +00:00
# dnf install postgresql-server postgresql-contrib mariadb-devel libsq3-devel libpqxx libpqxx-devel
2018-06-21 15:30:03 +00:00
#### Windows Instructions
For Windows, just download the installer [here](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows) and run it. After installing, make sure to add the <POSTGRES INSTALL PATH>/lib directory to your PATH system variable.
### Installing rustup
> Note: Rustup managed installations do appear to co-exist with system
installations on Gentoo, and should work on most other distributions.
If not, please file an issue with the Rust and Rustup teams or your distributions
managers.
Next, youll need to have the [Rust](https://rust-lang.org/) toolchain
installed. The best way to do this is to install
[rustup](https://rustup.rs), which is a Rust toolchain manager.
#### Linux/OSX Instructions
Open your terminal and run the following command:
$ curl https://sh.rustup.rs -sSf | sh
For those who are (understandably) uncomfortable with piping a shell
script from the internet directly into `sh`, you can also
[use an alternate installation method](https://github.com/rust-lang-nursery/rustup.rs/#other-installation-methods).
#### Windows Instructions
If you don't already have them, download and install the [Visual C++ 2015 Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools).
Then, download the [rustup installer](https://www.rust-lang.org/en-US/install.html) and run it. That's it!
### Installing Rust Toolchain
Once you have `rustup` installed, make sure you have the `nightly` rust
toolchain installed:
$ rustup toolchain install nightly
### Installing GetText
GetText is the tool we use to manage translations. It will be needed at runtime, since we only compile
translation files when starting Plume.
#### Ubuntu-like Linux
$ sudo apt-get install gettext