Введение[править]
Программное обеспечение в дистрибутиве представлено в виде специальных архивов, называемых пакетами RPM.
Все пакеты находятся в специальном хранилище, называемом репозиторий. Репозиторий может находиться как на удалённом сервере, так и непосредственно на локальном компьютере. При подключении дополнительного репозитория следует тем, или иным образом убедиться в его совместимости с ОС. Описание известных репозиториев ALT Linux находится в соответствующей статье.
Программное обеспечение в систему устанавливается с помощью специальных программ, называемых менеджеры пакетов. Менеджером пакетов низкого уровня является сам RPM. Остальные рассматриваемые программы, Synaptic, модуль ALT Linux Control Center и консольная утилита apt, являются надстройками над RPM.
См. также:
- Releases/40/addremove
- Synaptic
- Где и как искать программы
- Downgrade
- Appimage
- epm
Installation
Let’s begin by installing it. I am using a Debian based distro (Ubuntu, Linux Mint ..), for other distros please check the installation manual (for this part).
For this saltstack tutorial blog post, I am going to install Master and Minion in the same server (localhost).
Master is the server and Minion is the target.
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:saltstack/salt
sudo apt-get update
sudo apt-get install salt-master
sudo apt-get install salt-minion
service salt-master start
service salt-minion start
1 |
sudo apt-get install python-software-properties sudo add-apt-repository ppasaltstacksalt sudo apt-get update sudo apt-get install salt-master sudo apt-get install salt-minion service salt-master start service salt-minion start |
We’re going for now to configure the (local) minion:
Search for master and tell it to use localhost or 127.0.0.1 or even the default gateway 10.0.0.1
and restart the service :
service salt-minion restart
1 | service salt-minion restart |
Salt works with a system of keys, it can tells you which Minion was accepted/rejected. To list all the Minion keys your Master knows about, type :
salt-key -L
1 | salt-key-L |
If the host is rejected, add it using -a :
salt-key -a ‘hostname’
1 | salt-key-a’hostname’ |
Check that the Minion responds:
the ‘*’ refers to all Minions whose key is accepted. You can specify instead, the FQDN of your minion.
Подготовка диска в Linux
Это не следующий пункт установки Linux вместе с Windows 10. Это альтернативный вариант разметки диска без использования Windows. Если вы по каким-либо причинам не хотите использовать стандартную утилиту Windows для выделения нужного пространства, это также можно сделать с помощью любого LiveCD дистрибутива Linux с предустановленной программой для управления дисками Gparted. Например, того же Ubuntu.
Загрузитесь с диска Ubuntu, в поиске Dash наберите Gparted:
Откроется вот такое окно программы для управления дисками в Linux:
Здесь важно заметить, что разделы диска в Linux называются иначе чем в Windows. Здесь диски — это просто адреса файлов в виртуальной файловой системе dev
Позже вы поймете, что это такое, а сейчас важно только, что имя каждого раздела начинается с /dev/sd. Дальше идет буква, означающая физический диск (sda, sdb, sdc, sdd и так далее). За ней цифра, что обозначает номер раздела на диске, например: sda1, sda2.
В окне утилиты, кроме имени раздела диска, мы можем видеть файловую систему, размер и свободное место на диске. Теперь по размеру и файловой системе мы можем понять на каком диске у нас расположена система.
В моем примере /dev/sdb1 — это диск С в Windows, а /dev/sdb2 — D. Мы будем делать то же, что и в предыдущем примере. Давайте уменьшим размер раздела /dev/sdb2 (D) до 10 Гигабайт чтобы на освободившимся пространстве выполнить установку Linux на Windows 10. Для этого кликните по разделу правой кнопкой и выберите пункт Resize/Move:
В открывшемся окне можно ввести нужный размер вручную в поле New size или воспользоваться ползунком:
Затем нажмите кнопку Resize/Move.
Как видите, появилось свободное пространство, но реальных изменений на диске еще нет. Для того чтобы записать все на диск, нажмите зеленую галочку, или в меню Edit выберите пункт Apply All Operations:
Процесс изменения размера файловой системы может занять немного времени:
Теперь вы можете видеть, что раздел /dev/sdb2 уменьшился, и появилось свободное место:
Для системного раздела операции те же, только есть одно замечание: не трогайте начало раздела. Вы можете спокойно уменьшать размер раздела, добавляя свободное пространство после него, но не пытайтесь это сделать до него, вот так:
Так делать не нужно, иначе будет поврежден загрузчик Windows, его очень легко восстановить, но решать эти проблемы в самом начале знакомства с Linux вам, думаю, незачем.
Создавать разделы для Linux здесь мы тоже не будем, лучше все это сделать во время установки, специально предназначенной для этого утилитой.
Ошибка «E: Release file for http://http.kali.org/kali/dists/kali-rolling/InRelease is not valid yet (invalid for another 2h 43min 57s). Updates for this repository will not be applied»
При попытке обновления Kali Linux я столкнулся с ошибкой:
Суть её в том, что релизный файл для репозитория ещё не является действительным и, следовательно, обновление из этого репозитория невозможно.
Такое может произойти из-за неправильной цифровой подписи репозитория или неправильного времени.
Я столкнулся с этой ошибкой в WSL2 (подсистеме Windows для Linux), но, теоретически, она может возникнуть и в обычном дистрибутиве Kali Linux, а также в Docker.
При запуске команды:
sudo apt update && sudo apt full-upgrade -y
Я получил:
Get:1 http://kali.download/kali kali-rolling InRelease Reading package lists... Done E: Release file for http://http.kali.org/kali/dists/kali-rolling/InRelease is not valid yet (invalid for another 2h 43min 57s). Updates for this repository will not be applied.
Эта проблема вызвана тем, что неверно установлена временная зона (timezone) в Windows в следствии чего дистрибутив Linux в WSL также получает неверное время.
Время дистрибутив в WSL получает при своём запуске, то есть даже если вы впоследствии исправили время в Windows, в запущенных ранее дистрибутивах WSL по-прежнему время будет неправильным и ошибка сохранится.
Для исправления, как уже было сказано, начать нужно с установки правильного времени и правильной временной зоны в хостовом компьютере Windows.
Затем вам нужно использовать один из следующих способов:
1. Можно выключить и заново запустить все дистрибутивы Linux, для этого выполните команду:
wsl —shutdown
2. Другой способ, внутри дистрибутива Linux выполните команду:
sudo hwclock --hctosys
Эта команда получает последнее время от RTC вашей машины Windows и использует его для установки системного времени в Linux.
Вновь попробуйте сделать обновление:
sudo apt update && sudo apt full-upgrade -y
Как можно убедиться по скриншоту, в этот раз обновление началось без ошибок:
Salt States
If you consider working with salt, states are an important point to understand and it is not complicated.
As we already had configured “file_roots” which is “/srv/salt/”, we can move to the next simple example :
Example:
On the master, add the following code to
/srv/salt/top.sls
1 | srvsalttop.sls |
#Code to add
base:
‘*’:
— webserve
1 |
#Code to add base ‘*’ -webserve |
“base” is an environment and it’s our default one. You can define a list of minion that will be attached to that environment
Explanation:
In the last example, all hosts are concerned ( ‘*’ ), and the state webserver will be applied to them.
If we modify the last example and use “grains” matching instead of just writing “*”, you’ll have to modify your code like this :
base:
‘os:Debian’:
— match: grain
— webserver
1 |
base ‘os:Debian’ -matchgrain -webserver |
os: Debian’ is the used grain to match host(s)
The last line tells Salt to use the sls called “webserver”.
Let’s keep the first example for the rest of this tutorial and continue to the second part (SLS).
Create our ‘sls’ file called ‘webserver.sls’. Write the next code to that file:
nginx: # ID declaration
pkg: # state declaration
— installed # function declaration
1 |
nginx # ID declaration pkg # state declaration -installed # function declaration |
ID declaration is a random name but unique, in our example, it is the name of the package that should be installed on our minions.
When you type :
salt ‘*’ state.highstate
1 | salt’*’state.highstate |
Salt will install the package defined in “webserver.sls” on your target minions defined in “top.sls” file
Let’s move to another interesting part of salt: How can we manage a configuration file on a distant machine? This will be the main subject of the next saltstack tutorial post. Also, you can check our latest post regarding Docker ADD vs COPY. Enjoy
Установка mtr в Unix/Linux
MTR — бесплатное приложение, которое сочетает в себе функциональность трассировки и пинг в качестве инструмента для диагностики единой сети. При этом, вы сможете проверить потери пакетов и низкой скорости соединения, чтобы помочь в устранении неполадок программного обеспечения.
Хочу рассказать в своей статье «Установка mtr в Unix/Linux» как можно установить и пользоваться утилитой MTR в Unix/Linux.
Установка MTR в Debian/Ubuntu/Mint:
$ apt-get install mtr
Установка MTR в CentOS/RedHat/Fedora:
$ yum install mtr
Установка MTR в Arch:
$ pacman -S mtr
Установка MTR на Mac OS
1. Можно скачать и установить пакет:
https://rudix.googlecode.com/files/mtr-0.82-0.pkg
Я этот метод не проверял.
2. Скачать и установить из исходного кода.
$ cd Downloads && wget ftp://ftp.bitwizard.nl/mtr/mtr-0.86.tar.gz $ tar xvzf mtr-0.86.tar.gz $ cd mtr-0.81 # export LIBS='-lm -ltermcap -lresolv' # ./configure && make && sudo make install
После этого, я добавлю алиас команды, для более удобного использования. Для этого, я открою файл и добавлю строчку:
$ vim ~/.bash_profile alias mtr=/usr/local/sbin/mtr
Скопируйте данные (полезно, если вы хотите подать жалобу, например на вашего провайдера).
Вы можете сделать скриншот экрана с помощью:
- Command+Shift+3: Сделает скриншот экрана и сохранит его в виде файла на рабочем столе.
- Command+Shift+4, затем выберите площадь: Сделает скриншот области и сохранит его в виде файла на рабочем столе.
Loss % — все потерянные пакеты между компьютером и серверами.
SNT — количество отправленных пакетов.
LAST — Задержка последнего отправляемого пакета .
Avrg — Среднее время ожидания всех пакетов.
Best — Отображает лучший Round Trip Time для этого пакета на этом хосте (shortest RTT).
Disregard 100% — это сто процентная потеря если есть другие узлы, перечисленные после.
Wrst — Отображает худший Round Trip Time для этого пакета на этом хосте (longest RTT).
Опции программы MTR
Показать сводку параметры аргументов в командной строке :
-h —help
Распечатать установленную версию:-v —version
Помещает mtr в режим отчета. В этом режиме, mtr обработает количество циклов, определенных опцией -c, затем отобразит статистику и завершит работу. Этот режим полезен для генерации статистики о качестве сети:
-r —report
Установить количество циклов, после которых mtr завершит работу:
-c COUNT —report-cycles COUNT
Размер посылаемых пакетов:
-p BYTES —psize BYTES
Вынуждает mtr использовать curses based terminal interface если доступно:
-t —curses
Используйте эту опцию, чтобы заставить МТР для отображения числовых число IP, а не пытаться разрешать имена хостов. Не использовать DNS. Отображать IP-адреса и не пытаться получить их хостнеймы:
-n —no-dns
Используйте эту опцию, чтобы заставить МТР использовать GTK +, основанный на оконном интерфейсе X11 (если имеется). GTK +, должно быть доступным в системе, когда ССО был построен для этого, чтобы работать. См веб-страницу GTK + на http://www.gimp.org/gtk/ для получения дополнительной информации о GTK +.
-g —gtk
Выводить информацию построчно, без перерисовки экрана, с разделением полей пробелом. Этот формат удобен, если вы используете какую-то дополнительную программу-парсер или скрипт для анализа, которому передаются данные:
-s —split
Использовать «сырой» формат вывода. То есть выводить неформатированные данные:
-l —raw
Указать адрес интерфейса, с которого будут отправляться пакеты:
-a IP.ADD.RE.SS —address IP.ADD.RE.SS
Интервал между отправляемыми запросами:
-i SECONDS —interval SECONDS
Использовать протокол UDP для отправки пакетов:
-u
Использовать только IPv4:
-4
Использовать только IPv6:
-6
Установка
Загрузка в режиме EFI
- Убедитесь, что вы загружены в режиме UEFI.
- Проверьте .
- Корректно примонтируйте Системный Раздел EFI (ESP). В этой статье используется для обозначения точки монтирования.
Примечание: systemd-boot EFI не может загружать бинарные файлы из других разделов. По этой причине, рекомендуется монтировать ваш ESP в . В случае, если вы хотите разделить с ESP, обратитесь к для большей информации. - Если ESP не примонтирован к , копируйте ваше ядро и initramfs в ESP.
Примечание: Чтобы сохранить автоматическое обновление ядра в ESP, взгляните на для адаптации некоторых юнитов systemd. Если ваш Системный Раздел EFI монтируется автоматически, вам, вероятно, потребуется добавить в файл внутри . Тогда в текущем запущенном ядре во время загрузки будет установлен модуль , до того, как произойдет обновление ядра, которое может заменить модуль для текущей версии, что сделает невозможным монтирование до перезагрузки. - Введите следующую команду для установки systemd-boot:
# bootctl --path=esp install
Она скопирует двоичный файл systemd-boot на Системный Раздел EFI ( и — оба идентичны на x86-64 системах) и добавит systemd-boot как EFI приложение по умолчанию (загрузочная запись по умолчанию), загружаемое с помощью EFI Boot Manager.
- Наконец, для правильного функционирования вы должны загрузчик.
Загрузка в режиме BIOS
Важно: Это нерекомендованный процесс
Вы с таким же успехом можете установить systemd-boot, если загружаетесь в режиме BIOS. Тем не менее, от вас всё равно требуется сообщить прошивке запускать EFI файл systemd-boot при загрузке:
- у вас есть работающий EFI shell где-нибудь.
- ваш интерфейс прошивки предоставляет вам соответствующий способ настройки EFI файла, который будет загружен во время загрузки.
Если вы имеете такую возможность, процесс установки будет проще: перейдите в ваш EFI shell или интерфейс настройки вашей прошивки и измените EFI файл по умолчанию вашей машины на ( или если у вас 32 битная системная прошивка).
Примечание: интерфейс прошивки в Dell Latitude сериях предоставляет все необходимое, чтобы установить EFI загрузку, но EFI Shell не сможет осуществить запись в ПЗУ компьютера.
Обновлениe
В отличие от предыдущего отдельного пакета gummiboot, который автоматически обновляется с помощью скрипта, обновления systemd-boot теперь должны производиться пользователем вручную. Однако, эта процедура может быть автоматизирована с использованием pacman hooks.
Вручную
systemd-boot (bootctl(1)) предполагает, что ваш Системный Раздел EFI примонтирован в .
# bootctl update
Если ESP не примонтирован в , опцией можно явно указать точку монтирования, например:
# bootctl --path=esp update
Примечание: Также эту команду следует использовать при переходе с gummiboot, перед удалением этого пакета. Однако, если этот пакет уже был удален, выполните .
Автоматически
AUR (Русский) пакет AUR предоставляет для автоматизации процесса обновления. Установка этого пакета добавит hook, который будет выполняться при каждом обновлении пакета .
В качестве альтернативы, вы можете разместить следующий pacman hook в каталоге /etc/pacman.d/hooks/:
/etc/pacman.d/hooks/systemd-boot.hook
Type = Package Operation = Upgrade Target = systemd Description = Updating systemd-boot... When = PostTransaction Exec = /usr/bin/bootctl update
Как пользоваться Linux в WSL
Чтобы открыть установленную вами среду Linux, просто откройте меню «Пуск» и найдите установленный вами дистрибутив. Например, если вы установили Kali Linux, запустите ярлык Kali Linux.
Вы можете закрепить этот ярлык приложения в меню «Пуск», на панели задач или на рабочем столе для облегчения доступа.
При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они необязательно должны совпадать с вашим именем пользователя и паролем Windows, но будут использоваться в среде Linux.
Например, если вы введёте «alex» и «hackware» в качестве учётных данных, ваше имя пользователя в среде Linux будет «alex», а пароль, который вы используете в среде Linux, будет «hackware» — независимо от вашего имени пользователя Windows и его пароля.
Вы можете запустить установленную среду Linux, выполнив команду wsl. Если у вас установлено несколько дистрибутивов Linux, вы можете выбрать среду Linux по умолчанию, запускаемую этой командой.
Если у вас установлена Kali Linux, вы также можете запустить команду kali, чтобы установить её. Для openSUSE Leap 15 SP1 используйте opensuse-15-sp1. Для SUSE Linux Enterprise Server 15 SP1 используйте SLES-15-SP1. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Windows.
Вы по-прежнему можете запустить среду Linux по умолчанию, выполнив команду bash, но Microsoft утверждает, что это устарело. Это означает, что команда bash может перестать работать в будущем.
Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома.
В Kali Linux и Ubuntu вам нужно добавить к команде префикс sudo, чтобы запустить её с правами root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows. Ваша файловая система Windows в среде оболочки Bash находится в /mnt/c.
Ещё одна важная особенность дистрибутивов Linux, запущенных этим образом, в том, что прямо в консоли Linux вы можете выполнять команды Windows.
Связанная статья: Что такое sudo
Используйте те же команды терминала Linux, которые вы используете в этой операционной системе. Если вы привыкли к стандартной командной строке Windows с её командами DOS, вот несколько основных команд, общих для Bash и Windows:
- Изменить каталог: cd в Bash, cd или chdir в DOS
- Список содержимого каталога: ls в Bash, dir в DOS
- Перемещение или переименование файла: mv в Bash, move и rename в DOS
- Скопировать файл: cp в Bash, copy в DOS
- Удалить файл: rm в Bash, del или erase в DOS
- Создайте каталог: mkdir в Bash, mkdir в DOS
- Используйте текстовый редактор: vi или nano в Bash, edit в DOS
Связанная статья: Азы работы в командной строке Linux (часть 1), а также последующе части
Важно помнить, что, в отличие от Windows, оболочка Bash и её среда, имитирующая Linux, чувствительны к регистру. Другими словами, «File.txt» с большой буквы отличается от «file.txt» без заглавной буквы.. Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.
Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.
Вам нужно будет использовать команду apt для установки и обновления программного обеспечения среды Debian, Kali Linux, Ubuntu. Не забудьте указать перед этими командами префикс sudo, чтобы они запускались от имени пользователя root — Linux-эквивалента Администратора. Вот команды apt, которые вам нужно знать:
Загрузить обновлённую информацию о доступных пакетах:
sudo apt update
Установить пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
sudo apt install ИМЯ-ПАКЕТА
Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):
sudo apt remove ИМЯ-ПАКЕТА
Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):
sudo apt search СЛОВО
Загрузите и установите последние версии установленных пакетов:
sudo apt full-upgrade
Если вы установили дистрибутив SUSE Linux, вместо этого вы можете использовать команду zypper для установки программного обеспечения.
После того, как вы загрузили и установили приложение, вы можете ввести его имя в запросе, а затем нажать Enter, чтобы запустить его. Дополнительную информацию смотрите в документации к конкретному приложению.
Программное обеспечение, устанавливаемое в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или где-либо ещё в Windows, но только если вы запустите команду вида
bash -c КОМАНДА
Установка cfssl в Unix/Linux
CFSSL — это утилита для работы с PKI/TLS, которая позволяет подписывать, проверять и объединять TLS сертификаты. Данную утилиту создали и поддреживают в CloudFlare компании. Для использования данной программы стоит установить GO 1.8+.
Ну а сейчас, переходим к установки.
Установка cfssl в Linux
Скачиваем 2 файла:
$ wget -q --show-progress --https-only --timestamping \ https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 \ https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
PS: Имеется 2 вида разрядности для Linux:
- cfssljson_linux-386 и cfssl_linux-386.
- cfssljson_linux-amd64 и cfssl_linux-amd64.
- cfssljson_linux-arm и cfssl_linux-arm.
Выставим права:
# chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
Перестим файлы:
# mv cfssl_linux-amd64 /usr/local/bin/cfssl # mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
Проверим версию:
$ cfssl version
Можно приступить к использованию.
Установка cfssl в Mac OS X
Имеется пару способов как установить данное ПО на ваш сервер.
-=== СПОСОБ 1 ===-
Скачиваем 2 файла:
$ wget -q --show-progress --https-only --timestamping \ https://pkg.cfssl.org/R1.2/cfssl_darwin-amd64 \ https://pkg.cfssl.org/R1.2/cfssljson_darwin-amd64
PS: Имеется 2 вида разрядности для Mac OS X:
- cfssljson_darwin-386 и cfssl_darwin-386.
- cfssljson_darwin-amd64 и cfssl_darwin-amd64.
Выставим права:
# chmod +x cfssl*
Перестим файлы:
# mv cfssl_darwin-amd64 /usr/local/bin/cfssl && mv cfssljson_darwin-amd64 /usr/local/bin/cfssljson
Проверим версию:
$ cfssl version
-=== СПОСОБ 2 ===-
Так же, можно использовать brew чтобы установить ПО:
$ brew install cfssl
Можно приступить к использованию.
Установка cfssl на другие Unix/Linux ОС
Для того чтобы собрать cfssl требуется Go 1.8+ и правильно установленный GOPATH. После чего, выполняем:
$ git clone git@github.com:cloudflare/cfssl.git $GOPATH/src/github.com/cloudflare/cfssl $ cd $GOPATH/src/github.com/cloudflare/cfssl $ make