Это шаги, которые я использовал для запуска скаффолда Yesod в Cloud9. Весь процесс занял несколько часов, и мне пришлось обновить память и диск (сделайте это, прежде чем продолжить):
Установка стека
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442
- (Ubuntu 14.04 (amd64)):
echo 'deb http://download.fpcomplete.com/ubuntu trusty main'|sudo tee /etc/apt/sources.list.d/fpco.list
sudo apt-get update && sudo apt-get install stack -y
Статус: запуск $ stack
из командной строки работает должным образом
Краткое руководство по шаблону Yesod
- Создайте новый шаблонный сайт:
stack new yesodOnC9 yesod-postgres && cd yesodOnC9
- Установите инструмент командной строки yesod:
stack build yesod-bin cabal-install --install-ghc
- Библиотеки сборки:
stack build
Создайте базу данных PostgreSQL в C9
- Запустите службу PostgreSQL
$ sudo service postgresql start
- Подключиться к сервису
$ sudo sudo -u postgres psql
- Создайте базу данных PostgreSQL (изнутри psql, последний шаг)
postgres=# CREATE DATABASE "yesodDB";
- Создайте тестовую базу данных PostgreSQL
postgres=# CREATE DATABASE "yesodDB_test"
- Установить пароль для пользователя Postgres
postgres-# \password postgres
Enter new password: MYPASSWORD
Результат:
пользователь: postgres
пароль: МОЙ ПАРОЛЬ
Настройте Yesod для базы данных
- Откройте config/settings.yml
- Изменить пользователя базы данных на:
user: "_env:PGUSER:postgres"
- Измените пароль базы данных на:
password: "_env:PGPASS:MYPASSWORD"
- Изменить базу данных базы данных на:
database: "_env:PGDATABASE:yesodDB"
- Закройте settings.yml и откройте test-settings.yml
- Изменить базу данных базы данных на:
database: yesodDB_test
Запускаем сервер разработки:
stack exec -- yesod devel -b $IP -p $PORT
Результат: успешно, строительные леса работают
Если вы покинете свое рабочее пространство, вам придется перезапустить службу PostgreSQL с помощью:
$ sudo service postgresql start
, когда вы вернетесь.