How to install ruby on rails with rbenv on centos 7

Install Rails

As the same user, install Rails 4.2.0 with this command:

Whenever you install a new version of Ruby or a gem that provides commands, you should run the sub-command. This will install shims for all Ruby executables known to rbenv, which will allow you to use the executables:

Verify that Rails has been installed properly by printing its version, with this command:

If it installed properly, you will see this output: .

Install Javascript Runtime

A few Rails features, such as the Asset Pipeline, depend on a Javascript runtime. We will install Node.js to provide this functionality.

Add the EPEL yum repository:

Then install the Node.js package:

Note: This will probably not install the latest release of Node.js, as Enterprise Linux does not consider it to be “stable”. If you want to install the latest version, feel free to build it on your own.

Congratulations! Ruby on Rails is now installed on your system.

Синтаксис и Семантика

 puts "foo"
 foo
=> nil

Вывод – , но при этом значение – .

Печать

  • печатает передаваемые аргументы
  • печатает передаваемые аргументы с переводом на новую строку в конце
  • inspects and prints its arg plus a newline

Продвинутая печать

  • «красивая» печать параметров с переводом на новую строку
  • еще более «красивая» печать, чем
  • предоставляется gem’ом
  • если , печатает
  • Блоки также могут принимать параметры и возвращать значения
  • к примеру, итератор переносит каждый элемент массива в новый массив

     "hello", "world"map { |string| string.upcase }
    => "HELLO", "WORLD"
    
  • определяет блок

Опциональная пунктуация

  • Точки с запятой, скобки, и являются опциональными

  • Следующие выражения эквивалентны:

    def inc(x)
      return x + 1;
    end
    
    def inc x
      x + 1
    end
    
    def inc(x); x + 1; end
    
    def inc(x) x + 1; end
    
x = 1 + 2
x #=> 3

x = 1
  + 2
x #=> 1

Решение: всегда оставлять операторы на верхней строке

x = 1 +
    2
x #=> 3

Используйте круглые скобки только если они нужны

 "Hello".gsub "H", "h"
=> "hello"

 "Hello".gsub "H", "h".reverse
=> "hello"

 "Hello".gsub("H", "h").reverse
=> "olleh"

Интерполяция строк

"boyz #{1 + 1} men"
=> "boyz 2 men"
  • Любой Ruby-код может быть написан внутри фигурных скобок
  • Он выполняется и результат записывается в строке
def add a, b
  a + b
end

add 2, 2
#=> 4
  • Заметьте, ‘return’ не необходим
  • также разрешено
class Calculator
  def add(a,b)
    a + b
  end
end

calc = Calculator.new
calc.add(2, 2)
#=> 4

функция внутри класса называется методом

Сообщения и методы

  • на объект ссылаются через переменную или литерал
  • оператор «точка» () отсылает сообщение объекту
  • объект принимает сообщение и вызывает метод
  • если точка не написано, то сообщение принимает объект по умолчанию ()

Цепочки методов

  • Цепочки методов – удобная и мощная особенность Ruby
  • Она зависит от трех возможностей языка:
    • У каждого выражения есть значеие
    • Каждое значение является объектом
    • Итераторы – циклы внутри методов
  • Таким образом, методы можно вызывать для всего, в том числе для результата итератора

Пример

Дана строка:

s = "my dog is sick"

Без применения цепочки методов:

words = s.split
words = words.map{ |word| word.capitalize }
s = words.join(" ")

С применением:

s = "my dog has is sick"
s.split.map{ |word| word.capitalize }.join(" ")

Методы с восклицательным и вопросительным знаками

  • имена методов могут заканчиваться на или
  • значит, что объект вернет boolean-значение
  • означает предостережение, метод, скорее всего, изменяет объект, для которого он вызывается

Идентификаторы

  • — начинается со строчной буквы или символа нижнего подчеркивания, содержит строчные буквы, цифры, подчеркивания, стиль
  • — начинается с
  • — начинается с
  • — начинается с
  • или — должна начинаться с заглавной буквы
  • — при помощи стиля
  • — как локальная пермененная, но может оканчиваться на или или
  • ключевые слова — окола 40 зарезервированных слов типа () или ()
  • литералы — для сторк, для массивов, для хэшей и т. д.

Видимость переменных

var   # локальная переменная (или вызов метода)
@var  # instance переменная
@@var # переменная класса
$var  # глобальная переменная
VAR   # константа

и

  • вставляет содержимое запрашиваемого файла в текущий
  • делает методы запрашиваемого файла доступными в текущем
    • игнорирует уже загруженные файлы
    • опускает окончаение
    • также может быть использован для расширений, написанных на языке C (, , и т. п.)

Настройка Nginx

Вернитесь к своему пользователю sudo:

Откройте текстовый редактор и создайте следующий файл блока сервера Nginx :

/etc/nginx/conf.d/example.com.conf

Не забудьте заменить example.com своим доменом Redmine.

Перед перезапуском сервиса Nginx проверьте, нет ли синтаксических ошибок:

Если ошибок нет, результат должен выглядеть так:

Наконец, перезапустите службу Nginx , набрав:

Настроить Nginx с SSL

Если у вас нет доверенного сертификата SSL для вашего домена, вы можете сгенерировать бесплатный SSL-сертификат Let’s Encrypt, следуя этим инструкциям .

После создания сертификата отредактируйте конфигурацию домена Nginx следующим образом:

/etc/nginx/conf.d/example.com

Не забудьте заменить example.com своим доменом Redmine и указать правильный путь к файлам сертификатов SSL. Все HTTP-запросы будут перенаправлены на HTTPS .

Установка Redmine на CentOS

На момент написания этой статьи последней стабильной версией Redmine была версия 4.0.1.

Убедитесь, что вы выполняете следующие шаги как пользователь .

Загрузите архив Redmine с помощью следующей команды curl :

После завершения загрузки распакуйте архив:

2. Настройка базы данных Redmine.

Скопируйте пример файла конфигурации базы данных Redmine:

Откройте файл в текстовом редакторе:

Найдите раздел и введите базу данных MySQL и информацию о пользователе, которую мы создали ранее:

/opt/redmine/redmine-4.0.1/config/database.yml

После этого сохраните файл и выйдите из редактора.

Разные релизы CentOS

В одном репозитории мы можем легко хранить пакеты для различных релизов операционной системы CentOS (и не только CentOS, но и PPA). Для этого создаем каталог под новый релиз, синхронизируем его с источником и создаем из него репозиторий, например:

mkdir -p /usr/share/nginx/html/repos/6/{os,updates}/x86_64

* в данном примере предполагается использование репозитория для релиза 6.

Синхронизируем пакеты:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/os/x86_64/ /usr/share/nginx/html/repos/6/os/x86_64/

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/updates/x86_64/ /usr/share/nginx/html/repos/6/updates/x86_64/

Создаем репозитории:

createrepo -v /usr/share/nginx/html/repos/6/os/x86_64

createrepo -v /usr/share/nginx/html/repos/6/updates/x86_64

Установите Ruby с Rbenv

Rbenv — это легкая утилита управления версиями Ruby, которая позволяет легко переключать версии Ruby.

Мы будем использовать плагин который расширяет основные функции Rbenv и позволит вам установить любую версию Ruby из исходного кода.

Начните с установки git и других зависимостей, необходимых для сборки Ruby из исходного кода:

Выполните следующую команду, чтобы установить как и :

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

Если вы используете Bash, введите:

Если вы используете тип Zsh:

Выполните команду чтобы убедиться, что установка прошла успешно:

Чтобы получить список всех версий Ruby, которые можно установить с помощью введите:

Например, если вы хотите установить Ruby 2.7.0 и установить его как версию по умолчанию, вы должны ввести:

Убедитесь, что Ruby был правильно установлен, напечатав номер версии:

Установка менеджера pip и пакетов python

Заодно покажу, как установить пакетный менеджер pip нужной версии и пакеты к нему. Как уже говорил выше, нужно подключить репозиторий ius, если не подключили ранее и выполнить установку.

# yum install https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u-pip

Можно сразу же после установки обновить pip до последней версии:

# pip3.6 install --upgrade pip

Для примера установим модуль питона jpath через pip.

# pip3.6 install jpath

На этом все. Если у кого-то есть замечания по существу, советы или исправление ошибок, прошу поделиться всем этим в комметариях.

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе

Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии

Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

SSH и передача файлов

SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.

Простейший вариант — подключение по паролю. В таком случае система будет запрашивать пароль каждый раз при подключении.

Для подключения без ввода пароля можно использовать ключи: приватный (закрытый) и публичный (открытый). Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим.

Для создания ключей необходимо выполнить команду:

Опционально можно ввести passphrase.

Будут созданы два файла:

~/.ssh/id_rsa — приватный ключ. Его нельзя никому передавать.

~/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.

Для загрузки публичного ключа на сервер нужно выполнить на локальной машине команду:

Другой вариант — добавить на удаленной машине в файл ~/.ssh/authorized_keys содержимое публичного ключа.

Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.

ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.

Протокол SSH можно использовать для передачи файлов на удалённый сервер и загрузки их оттуда.

3: Простые команды Ansible

Теперь хосты настроены и готовы к работе. Попробуйте запустить первую команду, например, ping

Ansible ответит:

Этот базовый тест позволяет убедиться в том, что Ansible взаимодействует со всеми хостами.

Параметры команды -m ping указывают, что система Ansible должна использовать модуль ping. Эти команды можно запускать на удалённых хостах. Модуль ping в большинстве случаев работает как обычная утилита Linux, но в системе Ansible он проверяет взаимодействие между серверами.

Параметр all значит «все хосты». Вместо него можно задать группу:

Также можно задать отдельный хост:

или несколько хостов (разделите их с помощью двоеточий).

Модуль shell позволяет отправлять команды на удалённый хост и получать вывод. К примеру, чтобы узнать уровень использования памяти на машине host1, нужно ввести. Чтобы задать аргумент, используется флаг –a:

Step 4 – Install Ruby 2.4

After completing setup of RVM environment lets install Ruby language using the following command. Change Ruby version to below command you need to install.

rvm install 2.4.2
Searching for binary rubies, this might take some time.
No binary rubies available for: centos/7/x86_64/ruby-2.4.2.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for centos.
Requirements installation successful.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.4.2, this may take a while depending on your cpu(s)...
ruby-2.4.2 - #downloading ruby-2.4.2, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.0M  100 12.0M    0     0   172k      0  0:01:11  0:01:11 --:--:--  220k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.4.2 - #extracting ruby-2.4.2 to /usr/local/rvm/src/ruby-2.4.2....
ruby-2.4.2 - #configuring..................................................................
ruby-2.4.2 - #post-configuration..
ruby-2.4.2 - #compiling..................................................................................
ruby-2.4.2 - #installing...........................
ruby-2.4.2 - #making binaries executable..
ruby-2.4.2 - #downloading rubygems-2.6.14
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  751k  100  751k    0     0   298k      0  0:00:02  0:00:02 --:--:--  298k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.4.2 - #extracting rubygems-2.6.14....
ruby-2.4.2 - #removing old rubygems.........
ruby-2.4.2 - #installing rubygems-2.6.14...........................
ruby-2.4.2 - #gemset created /usr/local/rvm/gems/ruby-2.4.2@global
ruby-2.4.2 - #importing gemset /usr/local/rvm/gemsets/global.gems...............................................
ruby-2.4.2 - #generating global wrappers........
ruby-2.4.2 - #gemset created /usr/local/rvm/gems/ruby-2.4.2
ruby-2.4.2 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.4.2 - #generating default wrappers........
ruby-2.4.2 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.4.2 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы — base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Cистемные требования CentOS 8

Принципиальных отличий в системных требованиях CentOS 8 по сравнению с предыдущими редакциями нет. Я смог установить и запустить ее на виртуальной машине с 1CPU/512Mb. Однако появились нюансы. Для начала табличка системных требований.

Системные требования CentOS 8
CPU Memory Disk
Минимальные 1 512 Mb 10 G
Рекомендуемые 2 4 G 20 G

Я попробовал несколько раз установить Centos 8 на 1CPU/512Mb. При локальной установке все получилось, хотя графический интерфейс инсталлятора прилично тормозил. Установить на виртуальную машину с этими же характеристиками по сети у меня не получилось. Пробовал несколько раз и каждый раз установка зависала на 44% в момент загрузки пакетов из удаленного репозитория. Как только добавлял памяти установка проходила нормально. Так что можно сказать, что минимальные системные требования для установки CentOS 8 по сети — 1 CPU и 1024 Мб оперативной памяти. Для локальной установки хватит и 512.

Заметил еще один интересный момент, которого не было в прошлых версиях. Если вы устанавливаете систему на 512 Мб оперативной памяти и не выделяете раздел под swap при разметке диска, установщик говорит вам, что ему надо хотя бы 600 мб оперативной памяти, чтобы выполнить установку без swap.

Так что имейте ввиду, что если будете ставить CentOS 8 на минимальные системные требования, отказаться от отдельного раздела под swap не получится. Я обычно отказываюсь и подключаю swap в виде отдельного файла позже. Так просто удобнее. Теперь с 512 мб памяти это сделать не получится. Проще всего выделить во время установки побольше памяти, а потом уменьшить ее количество. Хотя надо будет еще понаблюдать, как система станет себя вести с таким количеством ресурсов. На 7-й версии центос тот же nginx в режиме proxy_pass отлично работает с минимальными системными требованиями.

Установка Server with GUI

Первым делом выполните yum grouplist — чтобы увидеть список доступных вариантов.

yum grouplist

Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Determining fastest mirrors
* base: centos.mirror.far.fi
* epel: mirror.cspacehostings.com
* extras: centos.mirror.far.fi
* updates: centos.mirror.far.fi
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Cinnamon
Compatibility Libraries
Console Internet Tools
Development Tools
Educational Software
Electronic Lab
Fedora Packager
General Purpose Desktop
Graphical Administration Tools
Haskell
LXQt Desktop
Legacy UNIX Compatibility
MATE
Milkymist
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
TurboGears application framework
Xfce
Done

sudo yum groupinstall «Server with GUI»

Управление процессами и потоками, отправка сигналов, kill

Процесс (process) — некая виртуальная среда, инкапсулирующая в себе ресурсы (открытые файлы, файлы отображенные в память…) и их дескрипторы, потоки и т.д. Каждый процесс имеет как минимум один поток. Также каждый процесс имеет свое собственное виртуальное адресное пространство и контекст выполнения, а потоки одного процесса разделяют адресное пространство процесса. Некоторые приложения могут создавать несколько процессов одновременно.

Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).

Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии.

Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.

По умолчанию отправляется сигнал SIGTERM. Для безусловного завершения процесса можно отправить SIGKILL. Т.к. в большинстве систем SIGKILL имеет идентификатор 9, часто встречается команда в сокращенной форме записи:

Создание базы данных MySQL

Redmine поддерживает MySQL / MariaDB, Microsoft SQL Server, SQLite 3 и PostgreSQL. В этом уроке мы будем использовать MariaDB в качестве базы данных.

Если на вашем сервере CentOS не установлена ​​MariaDB или MySQL, вы можете установить их, следуя этим инструкциям.

Войдите в оболочку MySQL, введя следующую команду:

В оболочке MySQL выполните следующую инструкцию SQL, чтобы создать новую базу данных:

Затем создайте учетную запись пользователя MySQL и предоставьте доступ к базе данных:

Убедитесь, что вы изменили с помощью надежного пароля.

После завершения выйдите из оболочки mysql, набрав:

Установка MATE Desktop на виртуальную CentOS 7

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

yum update

yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel

yum groupinstall -y «Development Tools»

И затем непосредственно установка

yum groupinstall -y «X Window System» «MATE Desktop»

systemctl set-default graphical.target

Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

systemctl isolate graphical.target

После предыдущей команды в окне Virtualbox должны запуститься иксы

Настройка Apache

Вернитесь к своему пользователю sudo и создайте следующий файл Apache vhost :

/etc/httpd/conf.d/example.com.conf

Не забудьте заменить example.com своим доменом Redmine.

Перезапустите службу Apache , набрав:

Настроить Apache с SSL

Если у вас нет доверенного сертификата SSL для вашего домена, вы можете сгенерировать бесплатный SSL-сертификат Let’s Encrypt, следуя этим инструкциям .

После создания сертификата отредактируйте конфигурацию Apache следующим образом:

/etc/httpd/conf.d/example.com.conf

Не забудьте заменить example.com своим доменом Redmine и указать правильный путь к файлам сертификатов SSL. Все HTTP-запросы будут перенаправлены на HTTPS .

Настроить удаленный доступ Redis

По умолчанию Redis не разрешает удаленные подключения. Вы можете подключиться к серверу Redis только с 127.0.0.1 (localhost) — машины, на которой запущен Redis.

Выполните следующие шаги, только если вы хотите подключиться к серверу Redis с удаленных хостов. Если вы используете настройку с одним сервером, где приложение и Redis работают на одном компьютере, вам не следует включать удаленный доступ.

Чтобы настроить Redis для приема удаленных подключений, откройте файл конфигурации Redis в текстовом редакторе:

Найдите строку, которая начинается с и добавьте частный IP-адрес вашего сервера после .

/etc/redis.conf

Убедитесь, что вы заменили своим IP-адресом. Сохраните файл и закройте редактор.

Перезапустите службу Redis, чтобы изменения вступили в силу:

Используйте следующую команду чтобы убедиться, что сервер Redis прослушивает ваш частный интерфейс через порт :

Вы должны увидеть примерно следующее:

Затем вам нужно добавить правило брандмауэра, которое разрешает трафик с ваших удаленных машин на TCP-порт .

Предполагая, что вы используете для управления своим брандмауэром и хотите разрешить доступ из подсети вы должны выполнить следующие команды:

Приведенные выше команды создают новую зону с именем , открывают порт и разрешают доступ из частной сети.

На этом этапе сервер Redis будет принимать удаленные подключения через TCP-порт 6379.

Убедитесь, что ваш брандмауэр настроен на прием подключений только из доверенных диапазонов IP-адресов.

Чтобы убедиться, что все настроено правильно, вы можете попробовать проверить связь с сервером Redis с удаленного компьютера с помощью которая предоставляет интерфейс командной строки для сервера Redis:

Команда должна вернуть ответ :

Группы пользователей

В Linux нескольких пользователей можно объединять в группы. Чаще всего группы используются для наделения членов группы определенными правами и организации совместного доступа к файлам.

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

Любой пользователь может состоять в одной или нескольких группах. Группы различаются на главные и вторичные. Главная (primary) группа всегда одна и к ней привязываются пользовательские процессы, а также файлы и папки, которые создал пользователь.

Узнать к каким группам принадлежит тот или иной пользователь.

или

Узнать группы текущего пользователя.

Узнать идентификаторы групп пользователя.

Узнать идентификаторы текущего пользователя.

Узнать какие пользователи состоят в группе.

Создание новой группы пользователей.

Удаление группы пользователей

Добавление пользователя в группу.

Удаление пользователя из группы.

Установка CentOS 8 с флешки

Флешку подготовили, приступаем к установке. Ставим загрузку с USB и наблюдаем стандартный, горячо любимый и родной (смахнул слезу) установщик Centos.

Дальше увидите немного обновленный, но тем не менее привычный интерфейс с опциями установки. Перечислим их.

  1. Выбор часового пояса centos.
  2. Поддержка каких языков будет осуществляться на сервере.
  3. Выбор раскладки клавиатуры.
  4. Откуда будет происходить установка. Так как у нас дистрибутив centos dvd1, установка будет локальной.
  5. Выбор пакетов для установки.
  6. Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
  7. Настройка режима работы KDUMP. Этот механизм делает дамп ядра, если оно у вас падает в момент установки. Теоретически может пригодится, если у вас с установкой возникнут какие-то проблемы. В общем случае лучше не включать, сэкономите немного оперативной памяти во время установки.
  8. Настройка сетевых интерфейсов. Без них нельзя установить систему, если используется netinstall.
  9. Подозреваю, что security policy это про SELinux, но скажу честно, я не знаю, как это работает на этапе установки, потому что никогда не настраивал и не изучал вопрос. Буду рад, если кто-то поделится актуальной инфой в комментариях.

Восклицательным знаком помечены разделы, без настройки которых продолжение невозможно. Пройдемся по всем параметрам и установим необходимые для нас значения. Итак, нажимаем на Time & Date (раньше было Date & Time, явно поработал кто-то эффективный и протолкнул изменение, за которое получил премию по итогу квартала) и настраиваем параметры времени:

  • Указываем регион.
  • Выбираем город.
  • Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами. Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.
  • Выбираем список внешних серверов для синхронизации времени.
  • Указываем формат, в котором будет отображаться текущее время.
  • При необходимости изменяем дату сервера.

Когда все сделаете, жмите сверху на Done. В разделе Language Support можно выбрать дополнительные языки, которые будет поддерживать система. В принципе, настраивать прямо сейчас тут нет большой необходимости, если вы точно не знаете, понадобится ли вам какое-то еще язык, помимо английского. Все это можно добавить и потом. Но если точно знаете, что нужен еще один язык в системе, например, Русский может понадобиться, если будете использовать Сервер 1С, то добавляйте сразу.

То же самое с клавиатурой. Если нужен набор на еще каком-то языке, то добавляйте его в разделе Keyboard.

  1. Добавляем необходимые раскладки. Я добавил Russian.
  2. Нажимаем Options и выбираем, как будет происходить переключение раскладок.
  3. Тестируем раскладки и переключение. Если все в порядке, идем дальше.

Далее нужно указать, откуда будет производиться установка. Как я уже говорил, в данном примере я использую полный iso образ dvd1, который позволяет выполнить установку centos 8 полностью локально. Сетевую установку я рассмотрю отдельно позже. Так что в данном случае нам ничего отдельно настраивать не надо, по-умолчанию и так выбран виртуальный cd-rom в виде устройства sr0 в качестве источника.

Перенаправление ввода/вывода

Процесс взаимодействия с пользователем выполняется в терминах записи и чтения в файл. Вывод на экран представляется как запись в файл, а ввод — как чтение файла. Файл, из которого осуществляется чтение, называется стандартным потоком ввода, а в который осуществляется запись — стандартным потоком вывода. Существует еще и стандартный поток ошибок, на который выводятся все сообщения об ошибках и те информативные сообщения о ходе работы программы, которые не могут быть выведены в стандартный поток вывода.

Можно организовать конвейер (pipe) выполняемых команд.

В примере выше вывод команды cat, т. е. текст из файла myfile, будет направлен на вход команды grep, которая выделит только строки, содержащие слово «Linux». Вывод команды grep будет, в свою очередь, направлен на вход команды wc -l, которая подсчитает число таких строк. Статус выхода из канала совпадает со статусом выхода, возвращаемым последней командой.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: