Полная настройка
-
Вставьте эту команду
bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
-
Вы получите эту ошибку
Установка ImageMagick …
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
libtool уже является самой последней версией (2.4.7-7build1).
Следующие пакеты были автоматически установлены и больше не требуются:
graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Используйте 'sudo apt autoremove', чтобы удалить их.
Обновлено 0, установлено новых 0, удалено 0 и не обновлено 0.
--2024-08-14 03:41:23-- https://raw.githubusercontent.com/discourse/discourse_docker/main/image/base/install-imagemagick
Разрешение raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.111.133, ...
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... установлено.
HTTP-запрос отправлен, ожидание ответа... 200 OK
Длина: 2624 (2.6K) [text/plain]
Сохранение в: «install-imagemagick.3»
install-imagemagick.3 100%[==============================>] 2.56K --.-КБ/с в 0с
**2024-08-14 03:41:23 (32.6 МБ/с) - «install-imagemagick.3» сохранено [2624/2624]**
**chmod: изменение прав доступа к 'install-imagemagick': Операция не разрешена**
**не удалось**
-
sudo apt-get install imagemagick
-
magick --version
Вы получите эту ошибку
test@tworks:~$ magick --version
Команда ‘magick’ не найдена, возможно, вы имели в виду:
команду ‘magics’ из пакета deb magics++ (4.14.2-2)
команду ‘magic’ из пакета deb magic (8.3.105+ds.1-1.1)
Попробуйте: sudo apt install <имя_пакета>
-
cd
-
sudo apt install build-essential make git
-
git clone GitHub - ImageMagick/ImageMagick: ImageMagick is a free, open-source software suite for creating, editing, converting, and displaying images. It supports 200+ formats and offers powerful command-line tools and APIs for automation, scripting, and integration across platforms. · GitHub
-
cd ImageMagick
-
./configure
-
make
-
sudo make install
-
sudo ldconfig /usr/local/lib
-
convert -version
**Вывод**
test@tworks:~/ImageMagick$ convert -version
Версия: ImageMagick 6.9.12-98 Q16 x86_64 18038 https://legacy.imagemagick.org
Авторские права: (C) 1999 ImageMagick Studio LLC
Лицензия: https://imagemagick.org/script/license.php
Функции: Cipher DPC Modules OpenMP(4.5)
Делегаты (встроенные): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png raw tiff webp wmf x xml zlib
-
sudo find /home/$USER -name magick 2>/dev/null
Вывод
test@tworks:~/ImageMagick$ sudo find /home/$USER -name magick 2>/dev/null
/home/test/ImageMagick/utilities/magick
/home/test/ImageMagick/utilities/.libs/magick
-
Вставьте эту команду (замените test на имя вашего пользователя)
echo ‘export PATH=“/home/test/ImageMagick/utilities:$PATH”’ >> ~/.bashrc
source ~/.bashrc
-
magick --version
Вывод
Версия: ImageMagick 7.1.1-37 (Beta) Q16-HDRI x86_64 852a4e91b:20240727 https://imagemagick.org
Авторские права: (C) 1999 ImageMagick Studio LLC
Лицензия: ImageMagick | License
Функции: Cipher DPC HDRI OpenMP(4.5)
Делегаты (встроенные): bzlib fontconfig freetype heic jbig jng jpeg lzma png tiff webp x xml zlib zstd
Компилятор: gcc (13.2)
- cd
- Вставьте это
bash <(wget -qO- https://files.suhail.app/ok.sh)
если этот URL не найден
то создайте файл script.sh
вставьте это
#!/usr/bin/env bash
# Установка Rails
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT
# Ubuntu 22+ будет запрашивать перезапуск служб без этих настроек
export NEEDRESTART_MODE=a
export DEBIAN_FRONTEND=noninteractive
set -e
log_info() {
printf "\n\e[0;35m $1\e[0m\n\n"
}
if [ ! -f "$HOME/.bashrc" ]; then
touch $HOME/.bashrc
fi
log_info "Установка утилит для изображений ..."
sudo -E apt-get -y install advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush pngquant
sudo -E apt-get -y install jhead
# Установка oxipng
cd /tmp && \
wget https://github.com/shssoichiro/oxipng/releases/download/v8.0.0/oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
tar -xzvf oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
sudo cp oxipng-8.0.0-x86_64-unknown-linux-musl/oxipng /usr/local/bin
cd /tmp && \
rm oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
rm -Rf oxipng-8.0.0-x86_64-unknown-linux-musl
if [[ ! -d "$HOME/.rbenv" ]]; then
log_info "Установка rbenv ..."
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
if ! grep -qs "rbenv init" ~/.bashrc; then
printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
fi
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
fi
if [[ ! -d "$HOME/.rbenv/plugins/ruby-build" ]]; then
log_info "Установка ruby-build для установки Rubies ..."
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
fi
ruby_version="3.2.1"
log_info "Установка Ruby $ruby_version ..."
rbenv install "$ruby_version"
log_info "Установка $ruby_version в качестве глобального Ruby по умолчанию ..."
rbenv global $ruby_version
rbenv rehash
log_info "Обновление до последней версии Rubygems ..."
gem update --system
log_info "Установка Rails ..."
gem install rails
log_info "Установка Bundler ..."
gem install bundler
log_info "Установка MailHog ..."
sudo wget -qO /usr/bin/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
sudo chmod +x /usr/bin/mailhog
log_info "Установка Node.js 18 ..."
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo -E apt-get -y install nodejs
sudo npm install -g svgo
sudo npm install -g yarn
1~#!/usr/bin/env bash
# Установка Rails
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT
# Ubuntu 22+ будет запрашивать перезапуск служб без этих настроек
export NEEDRESTART_MODE=a
export DEBIAN_FRONTEND=noninteractive
set -e
log_info() {
printf "\n\e[0;35m $1\e[0m\n\n"
}
if [ ! -f "$HOME/.bashrc" ]; then
touch $HOME/.bashrc
fi
log_info "Обновление пакетов ..."
sudo -E apt-get update
log_info "Установка Git ..."
sudo -E apt-get -y install git
log_info "Установка базовых инструментов сборки ..."
sudo -E apt-get -y install build-essential
log_info "Установка библиотек для общих зависимостей gem ..."
sudo -E apt-get -y install libxslt1-dev libcurl4-openssl-dev libksba8 libksba-dev libreadline-dev libssl-dev zlib1g-dev libsnappy-dev libyaml-dev
log_info "Установка sqlite3 ..."
sudo -E apt-get -y install libsqlite3-dev sqlite3
log_info "Установка Postgres ..."
sudo -E apt-get -y install postgresql postgresql-server-dev-all postgresql-contrib libpq-dev
sudo -E service postgresql status || sudo -E service postgresql start
cd /tmp && sudo -u postgres createuser -s "$USER"
log_info "Установка curl ..."
sudo -E apt-get -y install curl
log_info "Установка Redis ..."
cd /tmp && \
wget https://download.redis.io/redis-stable.tar.gz && \
tar -xzvf redis-stable.tar.gz && \
cd redis-stable && \
make && \
sudo -E make install
cd /tmp && \
rm redis-stable.tar.gz && \
rm -Rf redis-stable
sudo adduser --system --group --no-create-home redis
FILE="/etc/systemd/system/redis-server.service"
if [ ! -f "$FILE" ]; then
sudo bash -c "cat > $FILE" <<EOF
[Unit]
Описание=redis хранилище данных в оперативной памяти
После=network.target
[Service]
Пользователь=redis
Группа=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Перезапуск=всегда
[Install]
WantedBy=multi-user.target
EOF
fi
sudo mkdir -p /var/log/redis /var/lib/redis /etc/redis
sudo chown redis:redis /var/log/redis /var/lib/redis /etc/redis
sudo chmod 755 /var/log/redis /var/lib/redis /etc/redis
FILE="/etc/redis/redis.conf"
if [ ! -f "$FILE" ]; then
sudo bash -c "cat > $FILE" <<EOF
bind 127.0.0.1
protected-mode no
port 6379
dir /var/lib/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
logfile /var/log/redis/redis-server.log
loglevel debug
EOF
sudo chown redis:redis "$FILE"
sudo chmod 644 "$FILE"
fi
sudo systemctl daemon-reload
sudo systemctl enable redis-server
sudo systemctl start redis-server
sudo systemctl --no-pager status redis-server
sudo redis-cli ping
log_info "Установка ImageMagick ..."
sudo -E apt-get -y install libtool
wget https://raw.githubusercontent.com/discourse/discourse_docker/main/image/base/install-imagemagick
sed -i '12s/libwebp6/libwebp7/' install-imagemagick
chmod +x install-imagemagick
sudo -E ./install-imagemagick
log_info "Установка утилит для изображений ..."
sudo -E apt-get -y install advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush pngquant
sudo -E apt-get -y install jhead
# Установка oxipng
cd /tmp && \
wget https://github.com/shssoichiro/oxipng/releases/download/v8.0.0/oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
tar -xzvf oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
sudo cp oxipng-8.0.0-x86_64-unknown-linux-musl/oxipng /usr/local/bin
cd /tmp && \
rm oxipng-8.0.0-x86_64-unknown-linux-musl.tar.gz && \
rm -Rf oxipng-8.0.0-x86_64-unknown-linux-musl
if [[ ! -d "$HOME/.rbenv" ]]; then
log_info "Установка rbenv ..."
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
if ! grep -qs "rbenv init" ~/.bashrc; then
printf 'export PATH="$HOME/.rbenv/bin:$PATH"\n' >> ~/.bashrc
printf 'eval "$(rbenv init - --no-rehash)"\n' >> ~/.bashrc
fi
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
fi
if [[ ! -d "$HOME/.rbenv/plugins/ruby-build" ]]; then
log_info "Установка ruby-build для установки Rubies ..."
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
fi
ruby_version="3.2.1"
log_info "Установка Ruby $ruby_version ..."
rbenv install "$ruby_version"
log_info "Установка $ruby_version в качестве глобального Ruby по умолчанию ..."
rbenv global $ruby_version
rbenv rehash
log_info "Обновление до последней версии Rubygems ..."
gem update --system
log_info "Установка Rails ..."
gem install rails
log_info "Установка Bundler ..."
gem install bundler
log_info "Установка MailHog ..."
sudo wget -qO /usr/bin/mailhog https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
sudo chmod +x /usr/bin/mailhog
log_info "Установка Node.js 18 ..."
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo -E apt-get -y install nodejs
sudo npm install -g svgo
sudo npm install -g yarn
- Это установит rbenv, ruby-build, Ruby 3.2.1
Установка Ruby 3.2.1 займет около 5 минут… пожалуйста, подождите…
Вывод
Установка MailHog ...
^[[B^[[B
Установка Node.js 18 ...
2024-08-14 04:11:55 - Установка предварительных требований
Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Hit:3 https://deb.nodesource.com/node_18.x nodistro InRelease
Ign:4 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release
Hit:6 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:8 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Get:9 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:10 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Get:12 http://security.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [3696 B]
Загружено 130 kB за 2с (67.2 kB/s)
Чтение списков пакетов... Готово
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
apt-transport-https уже является самой последней версией (2.7.14build2).
ca-certificates уже является самой последней версией (20240203).
curl уже является самой последней версией (8.5.0-2ubuntu10.2).
gnupg уже является самой последней версией (2.4.4-2ubuntu17).
Следующие пакеты были автоматически установлены и больше не требуются:
graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Используйте 'sudo apt autoremove', чтобы удалить их.
Обновлено 0, установлено новых 0, удалено 0 и не обновлено 0.
Hit:1 https://deb.nodesource.com/node_18.x nodistro InRelease
Hit:2 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
Ign:3 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:4 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release
Hit:7 http://mirrors.digitalocean.com/ubuntu noble InRelease
Hit:8 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:9 http://mirrors.digitalocean.com/ubuntu noble-updates InRelease
Hit:10 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu noble InRelease
Hit:11 http://mirrors.digitalocean.com/ubuntu noble-backports InRelease
Чтение списков пакетов... Готово
2024-08-14 04:12:02 - Репозиторий успешно настроен.
2024-08-14 04:12:02 - Для установки Node.js выполните: apt-get install nodejs -y
2024-08-14 04:12:02 - Вы можете использовать N|solid Runtime как альтернативу node.js
2024-08-14 04:12:02 - Для установки N|solid Runtime выполните: apt-get install nsolid -y
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
nodejs уже является самой последней версией (20.16.0-1nodesource1).
Следующие пакеты были автоматически установлены и больше не требуются:
graphicsmagick libgraphicsmagick-q16-3t64 libhwy1t64 libjpeg9 libjxl0.7
Используйте 'sudo apt autoremove', чтобы удалить их.
Обновлено 0, установлено новых 0, удалено 0 и не обновлено 0.
изменено 19 пакетов за 3с
9 пакетов ищут финансирование
выполните `npm fund` для деталей
изменен 1 пакет за 672мс
/dev/fd/63: строка 80: 1~#!/usr/bin/env: Нет такого файла или каталога
не удалось
- cd && git clone GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub ~/discourse
- cd ~/discourse
- source ~/.bashrc
- bundle install || bundle install
Вывод
Сообщение после установки от rubyzip:
RubyZip 3.0 уже близко!
Публичный API некоторых классов Rubyzip был модернизирован для использования именованных
параметров для необязательных аргументов. Пожалуйста, проверьте использование следующих классов:
Zip::File
Zip::Entry
Zip::InputStream
Zip::OutputStream
Пожалуйста, убедитесь, что ваши Gemfiles и .gemspecs достаточно ограничительны,
чтобы избежать неожиданных сбоев при выпуске версии 3.0 (например, ~> 2.3.0).
Подробнее см. на GitHub - rubyzip/rubyzip: Official Rubyzip repository · GitHub. В файле Changelog также
перечислены другие улучшения и исправления ошибок, реализованные с версии 2.3.0.
-
yarn install
Вывод
test@tworks:~/discourse$ yarn install
yarn install v1.22.22
[1/5] Проверка package.json…
[2/5] Разрешение пакетов…
предупреждение: поле разрешения “unset-value@2.0.1” несовместимо с запрошенной версией “unset-value@^1.0.0”
успешно уже обновлено.
$ ./app/assets/javascripts/run-patch-package && rm -rf app/assets/javascripts/node_modules
patch-package 8.0.0
Применение патчей…
babel-plugin-debug-macros@0.3.4 
content-tag@2.0.1 
decorator-transforms@2.0.0 
ember-this-fallback@0.4.0 (1 deprecation-name) 
ember-this-fallback@0.4.0 (2 themes) 
ember-this-fallback@0.4.0 (3 exclude-strict-mode) 
virtual-dom@2.1.1 
Готово за 1.26с.
-
bin/rails db:create && bin/rails db:migrate && bin/rails db:migrate
-
bin/ember-cli -u
Если возникнет ошибка
например
EACCES: permission denied, mkdir ‘/tmp/suhail/if-you-need-to-delete-this-open-an-issue-async-disk-cache/d828492962979ed87b104d6da2d66d89d2834137’
или
permission denied $TMPDIR/embroider/webpack-babel-loader/36ae93087b7f9608f2e88c4ce085f854eb311bb409533a5040262f329b132a02.json.gz
Тогда предоставьте полный доступ к этому пути
sudo chmod -R 777 /tmp/suhail/if-you-need-to-delete-this-open-an-issue-async-disk-cache/
sudo chmod -R 777 /tmp/embroider/webpack-babel-loader
Ошибка прокси Discourse Ember CLI
FetchError: запрос к http://127.0.0.1:3000/ не удался, причина: connect ECONNREFUSED 127.0.0.1:3000
at ClientRequest. (file:///home/test/discourse/app/assets/javascripts/custom-proxy/node_modules/node-fetch/src/index.js:108:11)
at ClientRequest.emit (node:events:519:28)
at Socket.socketErrorListener (node:_http_client:500:9)
at Socket.emit (node:events:519:28)
at emitErrorNT (node:internal/streams/destroy:169:8)
at emitErrorCloseNT (node:internal/streams/destroy:128:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
"use strict";
module.exports = function (environment) {
const ENV = {
modulePrefix: "discourse",
environment,
rootURL: process.env.DISCOURSE_RELATIVE_URL_ROOT || "/",
locationType: "history",
historySupportMiddleware: false,
EmberENV: {
FEATURES: {
// Здесь вы можете включить экспериментальные функции в сборке ember canary
// например, EMBER_NATIVE_DECORATOR_SUPPORT: true
},
EXTEND_PROTOTYPES: {
// Предотвратить переопределение Date.parse в Ember Data.
Date: false,
String: false,
},
},
exportApplicationGlobal: true,
APP: {
// Здесь вы можете передать флаги/опции экземпляру вашего приложения
// при его создании
},
};
if (process.env.EMBER_RAISE_ON_DEPRECATION === "1") {
ENV.EmberENV.RAISE_ON_DEPRECATION = true;
} else if (process.env.EMBER_RAISE_ON_DEPRECATION === "0") {
ENV.EmberENV.RAISE_ON_DEPRECATION = false;
} else {
// По умолчанию (обычно false; true в основных запусках qunit)
}
if (environment === "development") {
// ENV.APP.LOG_RESOLVER = true;
// ENV.APP.LOG_ACTIVE_GENERATION = true;
// ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
}
if (environment === "test") {
// Testem предпочитает это...
ENV.locationType = "none";
// сделать вывод консоли тестов тише
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = "#ember-testing";
ENV.APP.autoboot = false;
}
if (environment === "production") {
// здесь вы можете включить функцию, специфичную для производства
}
return ENV;
};
- если локально : то перейдите по адресу
http://localhost:4200
если облако, то перейдите по адресу
http://cloudPublicIp:4200
пример : http://139.59.13.239:4200/