Пакеты установки для linux mint

Формат пакетов

Формат пакетов

Как уже было сказано, в дистрибутиве Mint принят deb-формат пакетов. Будучи разработан ещё в прошлом тысячелетии для дистрибутива Debian, формат этот был унаследован от него Ubuntu, во многом предопределив успех последней. А вслед за ней — и удачливость нашего главного героя. Почему deb-формату и следует уделить некоторое внимание.

Пакет deb-формата — архивный файл (собранный утилитой ar, о которой недавно шла речь), включающий три компонента. Первый — это файлик debian-binary, не содержащий ничего, кроме номера версии deb-формата (в данный момент — 2.0).

Второй файл носит имя data.tar.xz и, как легко догадаться, представляет собой tar-архив, сжатый утилитой xz. Содержимое архива — скомпилированные исполняемые бинарники и необходимые им для работы компоненты (библиотеки, конфиги, документация и так далее). Иными словами, все компоненты, которые при установке пакета будут инкорпорированы в файловую иерархию целевой системы. Например, для пакета cinnamon_2.4.1+rebecca_amd64.deb в этом архиве обнаруживается каталог /usr с подкаталогами /usr/bin, /usr/lib, /usr/share, содержащими исполняемые бинарники, библиотеки и разделяемые компоененты, соответственно.

Третий файл именуется control.tar.gz и представляет собой архив файлов, содержащих всякого рода метаинформацию — описание пакета, его зависимости, классификационную принадлежность, приоритет и так далее (файл control), контрольные суммы всех исполняемых бинаников (файл md5sums), сценарии, выполняемые при установке и удалении пакета (preinst, postinst, prerm и postrm).

Зависимости в терминах deb-пакетов имеют несколько градаций: обязательные (depends), рекомендуемые (recommends), предлагаемые (suggests), конфликтующие (conflicts). Первая градация — это обычные «жёсткие» зависимости, без удовлетворения которых пакет либо не будет работать, либо вообще не установится. С градацией последней тоже понятно — это, так сказать, анти-зависимости: например, Opera текущей, 26-й, версии конфликтует с пакетом opera-12.16.

Ну а зависимости рекомендуемые и предлагаемые — это две разновидности «мягких» зависимостей. Разница между ними в том, что рекомендуемые пакеты обеспечивают «зависимому» пакету дополнительные функции (например, поддержку мыши в консольных приложениях), а пакеты предлагаемые предоставляют дополнительные возможности, вполне вероятно, полезные, но не жизненно необходимые (например, документацию, в том числе на не-английских языках). То есть первая категория как бы более нужная, нежели вторая. Впрочем, таково субъективное мнение майнтайнера конкретного пакета — вполне возможно, что у применителя будет своё мнение по этому поводу. И потому и пакетный менеджер apt, и его графическая «морда» Synaptic, устанавливающие зависимости автоматически, в Mint по умолчанию не делают этого ни для рекомендуемых, ни, тем более, для предлагаемых пакетов, а лишь выводят их список, дабы применитель сам принял решение по данному вопросу.

Кроме того, спецификой deb-пакетов является ещё и существование так называех пред-зависимостей (pre-depends) — при их нарушении установка пакета даже не может начаться, ибо их наличия требует пре-инсталляционный сценарий «зависящего» пакета. Впрочем, с точки зрения пользователя они немногим отличаются от обычных зависимостей типа depends.

Кроме зависимостей, для пакетов deb-формата важно также понятие их приоритета. Оно отражает степень необходимости пакета для функционирования системы, например: обязательный (required), без которого работа системы невозможна, основной (base) и важный (important), также оказывающиеся практически необходимыми, стандартный, то есть имеющийся практически в любой полнофункциональной Linux-системе, дополнительный (optional) — тут уж степень важности каждый должен решать для себя.

Как это принято в мире Open Source, все бинарные пакеты Mint (а также, конечно, Ubuntu и сородичей) сопровождаются исходными текстами, доступными из соответствующего репозитория дистрибутива. И здесь deb-формат проявляет свою специфику: каждый пакет в исходниках обычно включает три файла — packagename.orig.tar.gz, packagename.dsc и packagename.diff.gz.

Первый — самый обычный тарбалл исходных текстов авторского пакета, что подчеркивается словом orig в его имени: формат архива, имя и система нумерации версий также совпадают с таковыми авторского пакета. Файл packagename.dsc содержит в себе всю метаинформацию, необходимую для правильного построения из него бинарного deb-пакета. А packagename.diff.gz — это те изменения исходного кода, которые вносятся для адаптации пакета непосредственно к данному дистрибутиву. Если таких изменений не потребовалось (или если пакет писался именно для Ubuntu или Mint), он может и отсутствовать.

Читайте также

4.10.1. Фильтрация пакетов

4.10.1. Фильтрация пакетов Итак, основной, но не единственной задачей сетевого экрана является фильтрация пакетов. В Linux уже встроен Firewall, и вам его не надо устанавливать отдельно. Точнее сказать, их даже два: iptables и ipchains. Они позволяют контролировать трафик, который проходит

14.12.1. Дефрагментация пакетов

14.12.1. Дефрагментация пакетов С помощью фрагментированных пакетов хакеры производят очень много атак на серверы. В Linux можно сделать так, чтобы ОС объединяла приходящие пакеты. Если у вас монолитное ядро (без поддержки модулей), то необходимо прописать 1 в файл

1.7.7. Структура пакетов IP и TCP

1.7.7. Структура пакетов IP и TCP Вот теперь можно смело перейти к рассмотрению структуры пакетов IP и TCP. Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в табл. 1.6, представляют собой IP-заголовки и

14.3.2. Фрагментация пакетов

14.3.2. Фрагментация пакетов Иногда передаваемый пакет слишком большой, чтобы его можно было бы передавать за один раз. Если такое происходит, то пакет делится на фрагменты, и эти фрагменты пересылаются. Компьютер, которому этот пакет предназначен, собирает эти фрагменты в

Читайте также:  Звуки уведомлений mac os

19.5. Создание RPM-пакетов

19.5. Создание RPM-пакетов Программа RPM предназначена для произведения всех видов операций с программным обеспечением, в том числе и для создания пакетов для установки (RPM-пакетов).Прежде, чем описать много сухих фактов, взятых из документации, рассмотрим простой пример

4.4. Извлечение данных из пакетов

4.4. Извлечение данных из пакетов В соревнованиях по многоборью спортсмены сначала преодолевают один из участков вплавь, далее пересаживаются на велосипед и т.д. Протокол IP работает подобным же образом: датаграмма перемещается из одной среды передачи в другую (из одного

Передача пакетов

Передача пакетов Следующий этап – это передача пакетов. Транспортировка цифрового трафика осуществляется через Интернет с помощью технологии TCP/IP. Термин TCP/IP обозначает целый набор технологий и прикладных программ, связанных с передачей данных через Интернет. Сюда

17.3.1. Первый способ: из пакетов RPM

17.3.1. Первый способ: из пакетов RPM Первую часть связки в дистрибутивах Red Hat выше 7.2 и Mandrake выше 8.1 настраивать не нужно: все настраивается во время установки системы. Поэтому вы можете сразу приступить к тестированию связки Apache+PHP (листинг 17.1).Убедитесь, что сервер Apache

27.1.2. Структура пакетов IP и TCP

27.1.2. Структура пакетов IP и TCP Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в таблице 27.4, представляют собой IP-заголовок и добавляются к пакету при его получении с транспортного

1.1.3.8. Выбор пакетов и их установка

1.1.3.8. Выбор пакетов и их установка Мы подошли к самому интересному — к выбору пакетов. Можете оставить все как есть (по умолчанию выбраны только приложения для офиса), а можете установить переключатель в нижнюю часть окна (рис. 1.19) в положение Настроить сейчас, и у вас

3.1. Менеджер пакетов yum

3.1. Менеджер пакетов yum 3.1.1. Основные понятие о пакетах Давайте сначала рассмотрим процесс установки программ в Windows. Как правило, дистрибутив Windows-программы состоит та установочного файла (обычно называется setup.exe или install.exe) и нескольких вспомогательных файлов (например,

3.3.3.1. Установка пакетов

3.3.3.1. Установка пакетов Для установки пакета (или пакетов — в командной строке можно указать несколько пакетов) используется опция -i:rpm — i пакетЕсли вы хотите наблюдать за процессом установки (это очень полезно, если устанавливается большой пакет или же производится

3.3.3.2. Удаление пакетов

3.3.3.2. Удаление пакетов Для удаления пакета используется опция -е. При удалении не нужно задавать полное имя файла пакета, достаточно названия самой программы. Например, если изначально пакет назывался program-base-0.94-2.i386.rpm, то для его удаления достаточно ввести команду: rpm -e

16.9. Форматы пакетов RPC

16.9. Форматы пакетов RPC На рис. 16.5 приведен формат запроса RPC в пакете TCP.Поскольку TCP передает поток байтов и не предусматривает границ сообщений, приложение должно предусматривать способ разграничения сообщений. Sun RPC определяет запись как запрос или ответ, и каждая запись

Конвертеры пакетов

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

Источник

Установка программ в Linux

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

Устанавливаем программы в Linux

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

Способ 1: Менеджер пакетов и официальные хранилища

Самый часто использующийся способ — менеджер пакетов. Такой компонент присутствует в каждом дистрибутиве, позволяет скачивать и устанавливать ПО из официальных хранилищ. Например, в Debian/Ubuntu таким инструментом выступает apt (Advanced Packaging Tool). Все директории берутся из официальных интернет-источников. Если таких не существует, можно загрузить пакет, который находится на носителе. В RedHat, CentOS и Fedora таким менеджером является yum (Yellowdog Updater, Modified) и работает примерно по такому же принципу. Третьим популярным пакетным менеджером считается pacman — особенный инструмент дистрибутива Arch Linux. Сейчас давайте детальнее рассмотрим, как осуществляется управление такими менеджерами.

Debian, Ubuntu, Linux Mint

Как мы уже сказали выше, в Debian и основанных на нем платформах инсталляция каталогов с официальных хранилищ производится через инструмент apt. Вся процедура не займет много времени, а за пример мы возьмем популярный браузер Mozilla Firefox.

  1. Откройте меню и запустите «Терминал». Сделать это можно также нажатием горячей клавиши Ctrl + Alt + T.

Сначала убедитесь в том, что все установленные пакеты обновлены. Введите sudo apt-get update и нажмите на клавишу Enter.

Все действия через утилиту apt производятся от имени суперпользователя, поэтому придется указать пароль этой учетной записи. Обратите внимание, что вводимые таким образом символы в строке не отображаются.

После успешного окончания обновления библиотек введите sudo apt-get install firefox . Аргумент install отвечает за установку, а firefox указывает название пакета, нужного для загрузки.

По окончании операции отобразится новая строка ввода. Если никаких ошибок не возникло, браузер будет доступен к запуску через значок в меню.

Как видите, apt реализована достаточно просто. Еще стоит учесть, что в последней версии Ubuntu писать, apt-get совсем необязательно, можно сократить просто до apt , а уже потом вводить install . Вот несколько примеров популярных приложений, которые доступны для установки через официальные хранилища:

Читайте также:  Кто изобрел ос linux

sudo apt install vlc — видеоплеер.
sudo apt install gnome-music — музыкальный плеер.
sudo apt install gimp — графический редактор.
sudo apt install gparted — ПО управления разделами жесткого диска.

RedHat, CentOS и Fedora

В дистрибутивах, где за основу взята платформа RedHat, основным менеджером выступает yum. Работает он по аналогии с уже рассмотренным инструментом, только здесь происходит управление каталогами формата RPM. Инсталляция программного обеспечения из официальных репозиториев практически не отличается и выглядит так:

    Запустите консоль любым удобным методом.

Обновите список системных репозиториев через sudo yum update .

Подтвердите действие вводом пароля рут-доступа.

Примите соглашение с добавлением новых файлов, указав вариант y.

По окончании обновления пропишите sudo yum install thunderbird и активируйте ее. Мы за пример взяли почтовый клиент Thunderbird, вы же можете заменить последнее выражение в строке на любое другое нужное ПО.

Здесь также потребуется указать вариант y, чтобы началось скачивание.

Ожидайте завершения загрузки и распаковки компонентов приложения.

По аналогии с предыдущим менеджером пакетов приведем несколько примеров использования yum для установки определенных программ:

sudo yum install java — компоненты java.
sudo yum install chromium — браузер Chromium.
sudo yum install gparted — программа управления накопителями.

Arch Linux, Chakra, Manjaro

Осталось рассмотреть последнюю третью ветвь дистрибутивов, за основу которых была взята Arch Linux. Здесь установлен менеджер pacman. Он работает с пакетами форматов TAR, а загрузка компонентов производится через специально отведенные сайты по протоколам FTP или HTTP. Мы взяли за пример дистрибутив Manjaro со стандартным графическим интерфейсом и хотим наглядно продемонстрировать процедуру использования pacman.

    Откройте меню графической оболочки и перейдите к работе в классической консоли.

Установите, например, популярный открытый браузер Chromium. Для этого введите sudo pacman -S chromium . Аргумент -S как раз и отвечает за то, что команде необходимо провести скачивание и инсталляцию программы.

Подтвердите подлинность учетной записи суперпользователя, введя пароль.

Примите установку компонентов, выбрав вариант y.

Ожидайте завершения загрузки: для успешного выполнения этой процедуры потребуется подключение к интернету.

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

Примеры добавления другого популярного ПО выглядят так:

sudo pacman -S firefox
sudo pacman -S gimp
sudo pacman -S vlc

Теперь вы знаете, как производится инсталляция программного обеспечения на трех различных платформах Линукс с использованием официальных хранилищ через встроенный менеджер. Хотим обратить внимание, что из-за неправильного ввода пакета установки на экране в большинстве случаев появляется подсказка с правильным вариантом, тогда достаточно просто переписать команду, исправив ошибку.

Способ 2: Менеджер пакетов и пользовательские хранилища

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

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

В результатах отыщите подходящий вариант и нажмите на соответствующую ссылку.

Ознакомьтесь с возможными пакетами и выберите подходящий.

Перейдите на страницу ПО.

Попав на страницу PPA, внизу вы увидите команды, с помощью которых и производится инсталляция.

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

Debian, Ubuntu, Linux Mint

Вы уже знакомы со стандартным пакетным менеджером, который устанавливается на эти платформы. Рассматриваемый способ установки софта тоже подразумевает использование этого инструмента, но с предварительным выполнением дополнительных действий. Выше мы уже разбирали пример добавления Chromium в систему, теперь же давайте ознакомимся с тем, как это делается через пользовательские репозитории.

    Отыщите на указанном выше сайте ссылку на репозиторий, затем запустите консоль и вставьте ее туда. Мы возьмем за пример последнюю версию этого веб-обозревателя. sudo add-apt-repository ppa:saiarcot895/chromium-dev .

Подтвердите действие, введя пароль.

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

По окончании процедуры обновите системные библиотеки: sudo apt-get update .

Используйте уже знакомую команду для установки браузера из добавленного репозитория sudo apt install chromium-browser .

Примите добавление новых компонентов, выбрав вариант Д.

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

Как видите, ничего сложного в использовании таких хранилищ нет. Нужно лишь отыскать подходящую версию ПО на указанном выше сайте и вставить приведенные там команды в консоль. После добавления каталогов останется только произвести инсталляцию новой версии уже знакомым вариантом — через apt install.

RedHat, CentOS и Fedora

Для указанных операционных систем лучше использовать хранилища http://mirror.lihnidos.org и http://li.nux.ro, там вы найдете больше подходящих директорий форматов RPM, что касается их установки напрямую из консоли, без предварительного скачивания с сайта, выполняется оно в несколько действий:

    За пример хотелось бы взять компоненты языка программирования Ruby. Сначала на сайте вам нужно отыскать подходящий пакет, а далее в консоли ввести примерно такой адрес wget http://mirror.lihnidos.org/CentOS/7/updates/x86_64/Packages/ruby-2.0.0.648-34.el7_6.x86_64.rpm . Ссылка будет меняться в зависимости от того, какой репозиторий вы используете. После ввода активируйте команду.

Читайте также:  Hp deskjet ink advantage 3525 драйвер windows

Далее на компьютер будет загружен пакет, останется только установить его привычным образом, поэтому укажите sudo yum install + name_package .

Активируйте рут-доступ путем ввода пароля от главной учетной записи.

Ожидайте завершения проверки сценариев и совместимостей.

Подтвердите установку, выбрав подходящий вариант.

Arch, Chakra, Manjaro

Большинство пользовательских репозиториев хранит для Arch Linux хранит в себе только файлы формата TAR.GZ, а метод их инсталляции в систему немного отличается. Стоит отметить, что все необходимые каталоги вы сможете найти на сайте aur.archlinux.org. Для доступа к этому хранилищу на компьютере под управлением Manjaro сначала потребуется выполнить sudo pacman -S base-devel yaourt — так добавятся дополнительные компоненты.

    Первоочередно загрузите найденный пакет в домашнюю папку через curl -L -O https://dl.discordapp.net/apps/linux/0.0.9/discord-0.0.9.tar.gz . Ссылка на скачивание архива TAR.GZ всегда указывается на странице программы при просмотре сайта AUR.

Распакуйте скачанный файл в ту же папку с помощью tar -xvf discord-0.0.9.tar.gz , где discord-0.0.9.tar.gz — название необходимой директории.

Используйте утилиту makepkg -sri , чтобы собрать и сразу же установить программу. По завершении этой процедуры можно будет переходить к работе с софтом.

Способ 3: Установка DEB-пакетов

Формат файлов DEB используется для распространения программного обеспечения и является стандартным типом данных операционных систем на базе Debian. В таких дистрибутивах по умолчанию установлены инструменты инсталляции софта такого формата как через графическую оболочку, так и через «Терминал». Максимально детально все методы добавления DEB-пакетов расписаны в другой нашей статье, которую вы можете найти по следующей ссылке. Что же касается других типов платформ, где нет встроенных утилит установки файлов DEB, процедура инсталляции немного усложняется.

Подробнее: Установка DEB-пакетов в Debian / Ubuntu / Mint

RedHat, CentOS и Fedora

Как известно, в RedHat и основанных на нем платформах пакетный менеджер работает с форматом RPM. Другие форматы не устанавливаются с помощью стандартных инструментов. Исправляется эта проблем простым конвертированием с помощью дополнительного консольного приложения. Вся операция займет буквально пару минут.

    Установите утилиту для конвертирования через yum install alien .

Запустите процесс преобразования, введя sudo alien —to-rpm package.deb , где package.deb — название необходимого пакета.

По завершении конвертирования новый пакет будет сохранен в ту же папку и его останется только распаковать через sudo yum localinstall package.rpm , где package.rpm — название того же файла, но только теперь формата RPM.

Arch Linux, Chakra, Manjaro

В дистрибутивах на Arch Lixux используется стандартный менеджер pacman, который изначально был написан для установки приложений с расширением TAR.GZ. Поэтому для управления DEB-пакетами потребуется загрузить дополнительный инструмент и осуществлять добавление файлов и каталогов уже непосредственно через него.

    Для скачивания и установки утилиты используйте yaourt -S dpkg .

Во время добавления нужно будет несколько раз подтвердить добавление новых объектов и ввести пароль суперпользователя.

Осталось только указать sudo dpkg -i name_package.deb и дождаться окончания распаковки. Во время инсталляции на экране может появиться предупреждение об отсутствии некоторых зависимостей, но это не помешает в дальнейшем программе работать корректно.

Способ 4: Установка RPM-пакетов

Из описаний выше вы уже знаете, что RPM-пакеты по умолчанию используются в RedHat, CentOS и других подобных дистрибутивах. Что касается их распаковки, то запуск доступен производиться прямо из файлового менеджера. Достаточно просто открыть папку хранения программы и запустить ее двойным щелчком левой кнопки мыши. Установка запустится, а по ее завершении найти приложение можно будет через меню или открыть ее через ввод соответствующей команды в консоли. Помимо этого, для поиска софта отлично подойдет это же стандартное ПО «Установка приложений».

Для распаковки RPM-пакетов в дистрибутивах Debian, Ubuntu и Linux Mint обычно используются дополнительные инструменты, но только в тех случаях, когда не удается найти в сети аналогичный DEB-пакет. Развернутые инструкции по этой теме вы найдете в статье далее.

Подробнее: Установка RPM-пакетов в Ubuntu / Debian / Mint

В ОС Arch Linux, Chakra, Manjaro и им подобным пока нет нормально работающей утилиты, которая конвертировала бы RPM-пакеты в поддерживаемый формат TAR.GZ. Поэтому мы можем только посоветовать заняться поиском этой же программы в поддерживаемом расширении. Лучше всего делать это на официальном источнике aur.archlinux.org, где присутствуют ссылки на скачивание большинства популярных приложений с сайта разработчиков или зеркала с архивом TAR.GZ.

Способ 5: Установка программ в архивах TAR.GZ

По стандарту начнем с дистрибутивов на Debian. В этом случае TAR.GZ устанавливается путем компилирования содержимого архива в новый DEB-пакет. Вся процедура делится на четыре простых шага, и ознакомиться с ними вы можете в отдельном нашем материале по следующей ссылке.

Подробнее: Установка файлов формата TAR.GZ в Ubuntu / Debian / Mint

В RedHat добавление ПО через компилирование конфигурационного файла выглядит немного иначе:

    Сначала через консоль добавьте в систему средства разработки: sudo yum groupinstall «Development tools» .

Затем распакуйте имеющийся архив через tar -zxf archive_name.tar.gz .

По завершении разархивации переместитесь в готовую папку через cd archive_name и выполните там поочередно такие команды:

./configure
make
sudo make install .

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

Насколько вы знаете, пакетный менеджер pacman по умолчанию нормально работает с архивами формата TAR.GZ, поэтому при использовании Arch, Chakra или Manjaro вам следует выполнить соответствующую инструкцию из Способа 2.

Сегодня вы были ознакомлены с пятью различными методами инсталляции программного обеспечения в операционных системах на базе ядра Линукс. Как видите, для каждого дистрибутива нужно использовать подходящий метод. Мы также рекомендуем уделить время поиску необходимого для ОС формата, чтобы операция установки прошла максимально быстро и просто.

Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Оцените статью