@rubylang

Страница 1582 из 1684
ojab
02.08.2018
11:05:13
^^ предпредпоследний и т. д.

rekero
02.08.2018
11:06:30
Darth
02.08.2018
11:06:43
➜ priora git:(748-2) ✗ git cherry-pick 748^ zsh: no matches found: 748^ ➜ priora git:(748-2) ✗ git cherry-pick 748 ^ fatal: bad revision 'app'

git cherry-pick c5033674
Пробовал: ➜ priora git:(748-2) ✗ git cherry-pick d86062f1ad2a9e435752ce20e6699810667e4c6b error: cherry-pick is not possible because you have unmerged files. hint: Fix them up in the work tree, and then use 'git add/rm <file>' hint: as appropriate to mark resolution and make a commit. fatal: cherry-pick failed

Google
Darth
02.08.2018
11:08:01
#ятупой всё, поняль

ojab
02.08.2018
11:09:47
➜ priora git:(748-2) ✗ git cherry-pick 748^ zsh: no matches found: 748^ ➜ priora git:(748-2) ✗ git cherry-pick 748 ^ fatal: bad revision 'app'
попробуй в кавычках указать, похоже zsh как-то обрабатывает ^

Buckler
02.08.2018
14:45:49
Hello, nist! Please, solve the captcha: Calculate: 59+30=... Attempts remaining: 3 If you don't answer - you'll get banned from the channel... Good luck!

Дмитрий
02.08.2018
15:29:34
Люди помогите с sql SELECT * FROM movies WHERE movies.director IN (SELECT id FROM people WHERE name in ('Christopher Nolan', 'James Cameron')) AND movies.writer NOT IN (SELECT id FROM people WHERE name in ('Christopher Nolan', 'James Cameron')) как тут избавиться от дублированая одного и того же подзапроса? бд - postgres

Виктор
02.08.2018
15:44:45
вторую часть запроса сделать как movies.writer <> movies.director, не?

Дмитрий
02.08.2018
16:03:59
вторую часть запроса сделать как movies.writer <> movies.director, не?
другой результат же будет c <>, там же NOT IN а не просто ”=”, или я чего-то не понимаю

а explain analyze говорит, что от него нужно избавляться?
я с explain analyze не знаком, но postgres похоже подзапрос 2 раза выполняет

Alexey
02.08.2018
16:21:19
в analyze будет 2 скана по people для каждого подзапроса плюс также 2 скана по id, если индексы в расчет не брать

> вторую часть запроса сделать как movies.writer <> movies.director, не? это вроде очевидно

1. найти director по подзапросу 2. важно, чтобы writer не был одним из director из подзапроса в п.1

http://sqlfiddle.com/#!17/05a79/2/0

Google
Alexey
02.08.2018
16:25:58
вот пример с explain

Виктор
02.08.2018
16:30:18
да, я тоже это осознал уже)

Дмитрий
02.08.2018
16:34:51
http://sqlfiddle.com/#!17/05a79/2/0
ну если там actual time в двух подзапросах не равен нулю то бд все-таки его не кеширует или как?

Alexey
02.08.2018
16:50:12
не знаю как работает кеширование подзапросов в ПГ может от конфига зависит, наверное нужно проверять на конкретной базе можно попробовать удешевить запрос и вместо 2х seq scan будет 1 seq scan и 2 cte scan, но это тоже на реальных данных нужно смотреть EXPLAIN ANALYZE WITH dir_writers AS (SELECT id FROM people WHERE name in ('Christopher Nolan', 'James Cameron')) SELECT * FROM movies WHERE movies.director IN (SELECT id FROM dir_writers) AND movies.writer NOT IN (SELECT id FROM dir_writers)

ojab
02.08.2018
17:39:21
http://sqlfiddle.com/#!17/05a79/2/0
ну, очевидно что там есть (или должны быть) индексы и при большем кол-ве строк эти самые индексы будут использоваться

так что этот explain смотреть бесполезно

Alexey
02.08.2018
18:13:10
с индексами вместо seq scan по всей таблице просто будут index scan по индексам, отличий мало будет например, вешаем индекс на people.name, и индексы на movies.director, movies.writer но сам план похож: 1. в подзапросе 1 ( IN SELECT ) фильтруем по name и возвращаем id (seq scan + filter / index scan ) 2. в подзапросе 2 (NOT IN SELECT) фильтруем по name и возвращаем id (seq scan + filter / index scan ) 3. фильтр movies.director (seq scan + filter / index scan) 4. фильтр movies.writer (seq scan + filter / index scan) 5. Hash join / index join тут вопрос ведь: 1. Умеет ли ПГ кешировать одинаковые подзапросы в одном запросе и это вроде не задача планировщика, а как раз кеша Если умеет, то всё и так ок. Если не умеет, то можно хотя бы сэкономить с помощью CTE, чтобы не фильтровать people по name несколько раз (если этот фильтр дорогой). И в целом, часто бывает, что people#id которые достаются в подзапросах уже известны до выполнения и можно подставлять их. Ну и интересно, вдруг кто то расскажет нюансы с этим запросом.

Evgeny
02.08.2018
18:31:42
Всем привет, подскажите, пожалуйста, сервер puma может работать сам по себе самостоятельно на Ubuntu 16, без nginx и apache?

rekero
02.08.2018
18:33:44
Да, но ты всё равно некорректный вопрос задал

Evgeny
02.08.2018
18:35:34
Вопрос у меня вот какой. Разбираюсь с установкой Redmine, делаю для себя инструкцию, каждый шаг уже разобрал вроде, а последнем спотыкаюсь. Не заводится Puma. В логе вот что пишет: /var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/launcher.rb:131:in `initialize': No such file or directory @ rb_sysopen - /var/www/redmine/tmp/pids/puma.pid (Errno::ENOENT)

Хотя в какой-то момент у меня получилось это сделать. Не могу нащупать причину, думал может это наличие Nginx, поэтому так спросил.

Но в терминале вроде все нормально: Puma starting in single mode... * Version 3.12.0 (ruby 2.3.1-p112), codename: Llamas in Pajamas * Min threads: 0, max threads: 16 * Environment: production * Daemonizing...

На какой-то из попыток она все таки создала и pid и sockets. Как получилось, не знаю( Прошу помощи, третьи сутки ковыряюсь.

Nikita
02.08.2018
19:11:38
Покажи конфиг пумы

Roman
02.08.2018
19:16:14
директория /var/www/redmine/tmp/pids/ существует?

Evgeny
02.08.2018
19:35:43
Блин, вот как задашь вопрос, в ожидании ответа находишь решение. Не было директории, создал, все заработало))

application_path = '/var/www/redmine' directory application_path environment 'production' daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" state_path "#{application_path}/tmp/pids/puma.state" stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" bind "tcp://0.0.0.0:9000"

Нормально, если я под новым юзером с sudo устанавливаю редмайн в эту директорию?

Google
Evgeny
02.08.2018
19:38:02
спасибо

Undefined
02.08.2018
19:38:45
Нормально, если я под новым юзером с sudo устанавливаю редмайн в эту директорию?
Если у тебя нет заморочек с правами пользователей конечно. Если ты там один и сидишь под sudo и ставишь все это, то норм. Я так же ставил, брат жив

Evgeny
02.08.2018
19:39:13
главное чтобы дыр не оставить...

я вот думаю может лучше в домашнюю директорию пользователя поставить...

Undefined
02.08.2018
19:40:08
главное чтобы дыр не оставить...
Ну правильно это сделать отдельного пользователя, выдать ему права, от его имени устанавливать и под ним все править. Но тут ты очевидно наткнешься на еще большие грабли гарантированно

Окажется что какой-то файл в какой-то директории не имеет прав и пиздец, ты застрял на неделю на элементарном

Evgeny
02.08.2018
19:41:16
А я так и напоролся, потому что так делал, но вот вроде разрешилось

Undefined
02.08.2018
19:44:39
Ну с правами на все подряд многие и садятся на жопу. И это не новички даже, бывает и люди ежедневно тусующиеся в убунте у себя дома, все-равно не знают либо как права дать либо как пользователя завести. Тут ничего зазорного нету. Просто если тебя данное решение устраивает на данный момент, оставляй как есть, избавишь себя от геммороя, если нет, то спрашивай. Правильно отдельного пользователя завести. Выдать ему права. От него работать. Под su работать вообще не имеет смысла если есть какие-то критические данные

Evgeny
02.08.2018
19:47:36
Вообщем я делаю так:

Меняем пароль root $ sudo passwd root - вводим и следуем диалогу Добавляем нового пользователя $ adduser redmine - создаем пользователя $ usermod -aG sudo redmine - добавляем нового пользователя в группу sudo-суперпользователи $ sudo su redmine - Переключаемся на нового пользователя Обновляем систему $ sudo apt-get update - Проведем обновление пакетов $ sudo apt-get upgrade - Проведем upgrade системы Если не ставили Nginx (нет папки wwww) $ cd /var - переходим в папку var $ sudo mkdir www - создаем папку www Устанавливаем редактор Nano $ sudo apt-get install nano Устанавливаем MySQL $ sudo apt-get install mysql-server mysql-client libmysqlclient-dev - Устанавливаем MySQL и дополнительные пакеты (задать новый пароль root для доступа в MySQL) $ mysql -uroot -p - Заходим в MySQL под пользователем root $ CREATE DATABASE redminebd CHARACTER SET utf8; - Создаем базу данных (точка с запятой обязательны в командах MySQL) $ CREATE USER 'redminebduser'@'localhost' IDENTIFIED BY 'Redminebdpasswd'; - Создаем пользователя базы данных и пароль для него $ GRANT ALL PRIVILEGES ON redminebd.* TO 'redminebduser'@'localhost'; - Даем привилегии на созданную базу новому пользователю $ exit - Выходим из MySQL Защищаем установку MySQL $ mysql_secure_installation Устанавливаем Redmine $ cd /tmp - Создадим временную директорию и скачаем туда дистрибутив (проверяем свежесть версии) $ mkdir redmine $ cd redmine $ wget http://www.redmine.org/releases/redmine-3.4.6.tar.gz $ tar -zxvf ./redmine-3.4.6.tar.gz $ sudo mv ./redmine-3.4.6 /var/www/redmine - Перенесем распакованный дистрибутив в папку установки (проверить корректность версии) Настраиваем Redmine $ cd /var/www/redmine - Переходим в папку установки и настраиваем Redmine $ cp config/database.yml.example config/database.yml - создаем из примера файл для подключения к БД $ mv public/dispatch.fcgi.example public/dispatch.fcgi - надо разобраться для чего это $ nano /var/www/redmine/config/database.yml - правим файл production: adapter: mysql2 database: redminebd host: localhost username: redminebduser password: "Redminepasswd" encoding: utf8 Устанавливаем RUBY $ sudo apt-get install libmagickcore-dev libmagickwand-dev imagemagick build-essential - устанавливаем пакеты для работы gem $ sudo apt-get install ruby ruby-dev rubygems libruby - устанавливаем Ruby Устанавливаем Bundler $ sudo gem install bundler - устанавливаем Bundler (как apt-get, только для Ruby) Добавляем Puma (сервер) $ cd /var/www/redmine $ echo "gem 'puma'" >> Gemfile $ echo "gem: --no-ri --no-rdoc" >> ~/.gemrc Конфигурируем: $ nano /var/www/redmine/config/puma.rb - создаем файл конфигурации Puma application_path = '/var/www/redmine' directory application_path environment 'production' daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" state_path "#{application_path}/tmp/pids/puma.state" stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" bind "tcp://0.0.0.0:9000" Установим все необходимые gem'ы для redmine $ bundle install --without development test postgresql sqlite - устанавливаем адаптер баз данных MySQL, пропустив PostgreSql и SQLite. Заполняем базу данных (миграции) $ RAILS_ENV=production rake db:migrate - создание таблиц $ RAILS_ENV=production REDMINE_LANG=ru rake redmine:load_default_data - наполнение данными на русском языке $ rake db:encrypt RAILS_ENV=production - шифрование стандартного пароля $ rake generate_secret_token - создаем секретный ключ (обязательно в папке redmine) Запускаем сервер Puma $ cd /var/www/redmine/ && bundle exec puma --config config/puma.rb - запустить сервер Puma Сайт должен быть доступен по адресу: IP:9000

Undefined
02.08.2018
19:51:15
Меняем пароль root $ sudo passwd root - вводим и следуем диалогу Добавляем нового пользователя $ adduser redmine - создаем пользователя $ usermod -aG sudo redmine - добавляем нового пользователя в группу sudo-суперпользователи $ sudo su redmine - Переключаемся на нового пользователя Обновляем систему $ sudo apt-get update - Проведем обновление пакетов $ sudo apt-get upgrade - Проведем upgrade системы Если не ставили Nginx (нет папки wwww) $ cd /var - переходим в папку var $ sudo mkdir www - создаем папку www Устанавливаем редактор Nano $ sudo apt-get install nano Устанавливаем MySQL $ sudo apt-get install mysql-server mysql-client libmysqlclient-dev - Устанавливаем MySQL и дополнительные пакеты (задать новый пароль root для доступа в MySQL) $ mysql -uroot -p - Заходим в MySQL под пользователем root $ CREATE DATABASE redminebd CHARACTER SET utf8; - Создаем базу данных (точка с запятой обязательны в командах MySQL) $ CREATE USER 'redminebduser'@'localhost' IDENTIFIED BY 'Redminebdpasswd'; - Создаем пользователя базы данных и пароль для него $ GRANT ALL PRIVILEGES ON redminebd.* TO 'redminebduser'@'localhost'; - Даем привилегии на созданную базу новому пользователю $ exit - Выходим из MySQL Защищаем установку MySQL $ mysql_secure_installation Устанавливаем Redmine $ cd /tmp - Создадим временную директорию и скачаем туда дистрибутив (проверяем свежесть версии) $ mkdir redmine $ cd redmine $ wget http://www.redmine.org/releases/redmine-3.4.6.tar.gz $ tar -zxvf ./redmine-3.4.6.tar.gz $ sudo mv ./redmine-3.4.6 /var/www/redmine - Перенесем распакованный дистрибутив в папку установки (проверить корректность версии) Настраиваем Redmine $ cd /var/www/redmine - Переходим в папку установки и настраиваем Redmine $ cp config/database.yml.example config/database.yml - создаем из примера файл для подключения к БД $ mv public/dispatch.fcgi.example public/dispatch.fcgi - надо разобраться для чего это $ nano /var/www/redmine/config/database.yml - правим файл production: adapter: mysql2 database: redminebd host: localhost username: redminebduser password: "Redminepasswd" encoding: utf8 Устанавливаем RUBY $ sudo apt-get install libmagickcore-dev libmagickwand-dev imagemagick build-essential - устанавливаем пакеты для работы gem $ sudo apt-get install ruby ruby-dev rubygems libruby - устанавливаем Ruby Устанавливаем Bundler $ sudo gem install bundler - устанавливаем Bundler (как apt-get, только для Ruby) Добавляем Puma (сервер) $ cd /var/www/redmine $ echo "gem 'puma'" >> Gemfile $ echo "gem: --no-ri --no-rdoc" >> ~/.gemrc Конфигурируем: $ nano /var/www/redmine/config/puma.rb - создаем файл конфигурации Puma application_path = '/var/www/redmine' directory application_path environment 'production' daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" state_path "#{application_path}/tmp/pids/puma.state" stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" bind "tcp://0.0.0.0:9000" Установим все необходимые gem'ы для redmine $ bundle install --without development test postgresql sqlite - устанавливаем адаптер баз данных MySQL, пропустив PostgreSql и SQLite. Заполняем базу данных (миграции) $ RAILS_ENV=production rake db:migrate - создание таблиц $ RAILS_ENV=production REDMINE_LANG=ru rake redmine:load_default_data - наполнение данными на русском языке $ rake db:encrypt RAILS_ENV=production - шифрование стандартного пароля $ rake generate_secret_token - создаем секретный ключ (обязательно в папке redmine) Запускаем сервер Puma $ cd /var/www/redmine/ && bundle exec puma --config config/puma.rb - запустить сервер Puma Сайт должен быть доступен по адресу: IP:9000
А зачем тогда sudo писать если ты уже под рутом?

Evgeny
02.08.2018
19:51:39
да, тут неправильно, спасибо.

Undefined
02.08.2018
19:52:51
Подожди, может я что-то неправильно трактую. Но насколько мне известно существует два основных способа получить права суперпользователя (Root) это — sudo или su

sudo su должна работать до закрытия терминала

Evgeny
02.08.2018
19:54:34
Ну тут тоже непонятненько, были мои первые шаги в инструкции, работало да и ладно

по идее sudo тут тоже не нужно...

Undefined
02.08.2018
19:55:09
Ну в общем теперь у тебя все работает от имени суперпользователя

Evgeny
02.08.2018
19:55:26
и это не очень, да?

Undefined
02.08.2018
19:55:30
Да

Evgeny
02.08.2018
19:56:18
usermod -aG sudo redmine - после этого?

Google
Admin
ERROR: S client not available

Evgeny
02.08.2018
19:57:51
вопрос, а что должно работать не от суперпользователя, я не очень понимаю, например установка mysql под чем должна происходить?

Вообще начало я взял отсюда: https://www.digitalocean.com/community/tutorials/linux-apache-mysql-php-lamp-ubuntu-16-04-ru

Undefined
02.08.2018
19:59:35
1.The user who runs Redmine must have write permission on the following sub directories: “files”, “log”, “tmp” (create the last one if not present). You probably already have a “tmp” directory in /opt/redmine/redmine-0.8.6, but if you don’t, create one now by issuing: sudo mkdir /opt/redmine/redmine-0.8.6 2.If you haven’t created a Redmine user, do it now by issuing: sudo useradd redmine 3.Now, assuming you run Redmine with a redmine user, from your /opt/redmine/redmine-0.8.6 directory issue: sudo chown -R redmine:redmine files log tmp sudo chmod -R 755 files log tmp

Evgeny
02.08.2018
19:59:35
Там отсыл на https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04

Undefined
02.08.2018
20:00:25
Там нужно уметь писать всего в несколько папок, зачем тебе рут?

1.The user who runs Redmine must have write permission on the following sub directories: “files”, “log”, “tmp” (create the last one if not present). You probably already have a “tmp” directory in /opt/redmine/redmine-0.8.6, but if you don’t, create one now by issuing: sudo mkdir /opt/redmine/redmine-0.8.6 2.If you haven’t created a Redmine user, do it now by issuing: sudo useradd redmine 3.Now, assuming you run Redmine with a redmine user, from your /opt/redmine/redmine-0.8.6 directory issue: sudo chown -R redmine:redmine files log tmp sudo chmod -R 755 files log tmp

Evgeny
02.08.2018
20:01:33
По идее да. А устанавливать пакеты можно под root, правильно?

я имею ввиду mysql например

я понял наверное

Roman
02.08.2018
20:03:01
лучше не ставить ничего из под рута

Evgeny
02.08.2018
20:03:25
но под sudo юзером можно? или это одно и тоже?

Undefined
02.08.2018
20:03:42
В общем мое мнение такое. Если есть возможность что-то сделать без рута - то так и делай. Ты конечно всегда можешь набрать sudo su, и сделать все что хочешь. Но я бы даже такой возможностью пользоваться не стал. Есть юзер, есть пакет который нужно установить. Устанавливай из-под него. Нужны права выше - почитал и узнал. Если нужно - поднял. В общем-то простая схема

Evgeny
02.08.2018
20:04:51
логично, я согласен.

Undefined
02.08.2018
20:04:57
Если это песочница то можешь и не выходить из под рута. Если боевой проект, то в рут лучше вообще не заходить

Evgeny
02.08.2018
20:07:18
Я конечно попробую, но не понимаю вот что: есть root, есть sudo user фвьшт , есть redmin (просто user). Как установить mysql, который требует каких то прав?

* admin

как правильно будет установить?

Undefined
02.08.2018
20:11:25
Читай что он требует и устанавливай соответственно. Если ему рут нужен, ставь под рутом, по другому ты один хуй не установишь

Потом создавай пользователя который отвечает за базы, насколько мне известно обычно так делают и все остальное делай от него. Но он далеко не рут

Google
Undefined
02.08.2018
20:13:05
Ты же можешь между пользователями переключаться. В чем проблема?

Evgeny
02.08.2018
20:13:16
все, вкурил, спасибо огромное

конечно нужно плясать от требований

Undefined
02.08.2018
20:14:26
Рут это крайний случай, пляши от этого. Ну то есть если не написано что нужно то и не заходи. Если прямо скажут что только под рутом тогда да.

Evgeny
02.08.2018
20:15:09
?

Все получилось.

Теперь мне кажется, что Feng Office, который я установил за 10 минут лучше, чем Redmine, над которым я ломал голову 100 часов.... ?‍♂️

wi11son
02.08.2018
22:37:03
дешевле уж точно

Buckler
03.08.2018
02:55:20
Hello, zlaya! Please, solve the captcha: Calculate: 8+80=... Attempts remaining: 3 If you don't answer - you'll get banned from the channel... Good luck!

Страница 1582 из 1684