Как установить .tar.bz2 файл

Синтаксис

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

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

Рассмотрим синтаксис.

Создание архива:

Распаковка:

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

  • «-А». Присоединение имеющегося архива к стороннему архиву.
  • «-с». Создание нового сжатого файла.
  • «-d». Определение отличий между двумя определенными архивами, удаление документов.
  • «-r». Присоединение файлов к архиву. Они располагаются в конце.
  • «-t». Формирование перечня содержимого в архиве.
  • «-u». Обновление архивных данных, дополнение данными с аналогичными именами.
  • «-х». Извлечение требуемых документов из архива.

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

  • «-С» (—directory=DIR). Изменение адреса каталога перед проведением мероприятий на dir.
  • «-f» (—file). Вывод результата в определённый файл или на конкретное устройство.
  • «-j» (—bzip2). Перенаправление вывода информации к bzip2.
  • «-p» (—same-permissions). Сохранение доступности относительно определенного документа.
  • «-v». (—verbose; —totals). Вывод подробных данных о совершаемых или уже завершенных процессах.
  • «-z». (—gzip). Перенаправление вывода на gzip.

Создание

Для первого примера, создадим новый архив newarhiv.tar из одного документа /root/catalog/test.

С помощью команды cd зайдем в директорию /root/catalog.

Далее будем использовать функцию «-c» создание нового архива, параметр «-v» вывод подробной информации, «-f» результат записать в документ.

Здесь:

  • «-cvf» — функция и опции.
  • «newarhiv.tar» — название нового сжатого документа.
  • «test» — название файла, который нужно запаковать.

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

test2 test3

Запакуем tar.gz все файлы в каталоге «/root/catalog» . Для этого необходимо использовать аргумент «-z» (gzip).

tar/bz2

Файлы в формате bz2 сжимаются лучше, чем gz, соответственно занимают меньше места.

Запакуем документ «newfile» в каталоге «/root/primercataloga» в формате bz2. Для этого будем использовать аргумент «-j»

Просмотр

Откроем newarhiv.tar для просмотра. Для этого, необходимо использовать аргумент «-t».

 Просмотр tar.gz

Откроем oldfile.tar.gz для просмотра. Синтаксис команды тот же, что и при открытии простого «.tar».

Просмотр bz2

Откроем документ oldfile.tar.bz2.

Распаковка

Для извлечения определенного файлового архива потребуется использование функции «х». Извлечем документ newarhiv.

Разархивируем единичный файл

Чтобы разархивировать единичный документ, нужно просто добавить его в конец команды.

Для примера, требуется распаковать файл test из архива arhiv.tar.

Извлекаем отдельный документ tar.gz

Представим для примера, что требуется распаковать index.php из site.tar.bz2. Для этого стоит указать в командной строке:

сайте программ на Fedora, Red Hat

пакетов Для RPM есть замечательная утилита которая,
yum делает примерно тоже самое, apt и что-get делает для
пакетов Как. Debian и apt-get, yum позволяет установить и
загрузить пакет из настроенного хранилища
(репозитория):

install yum имя_пакета

Удалить программу легко также и просто:

yum remove имя_yum

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

yum update

выбрать же или определенную программу для обновления:

update yum имя_пакета

Tar — как запаковать и распаковать tar gz и tar bz2

Tar — это популярный файловый архиватор в Unix/Linux системах.

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

Как установить, создать архив Tar и распаковать его в Windows

Чтобы использовать Tar в Windows, нужно воспользоваться одним из следующих вариантов:

  1. Установить Far Manager.Инструкция по созданию и распаковке архива .tar с помощью Far Manager:
    • Теперь просто выделяете ПКМ (правой кнопкой мыши) или кнопкой клавиатуры Insert нужные вам файлы и папки и жмёте Shift + F1, затем выбираете нужный формат (в нашем случае, TAR) и создаёте архив:Создание архива в Far ManagerПри желании, в поле Добавить к архиву можно изменить название архива, а в поле Ключи можно ввести пароль от него.
    • Чтобы распаковать архив Tar, просто выделяете ПКМ или Insert нужный архив и жмёте Shift + F2Как распаковать Tar в Far ManagerВ поле Распаковать в вводится путь, куда распаковать архив. Если нужно распаковать в текущую папку, нужно оставить поле Распаковать архив пустым. Если архив запаролен, пароль вводится в поле Пароль.
  2. Также, можно обойтись без Far Manager, установив 7-Zip

    Скачать 7-zip архиватор

    Всё управление — создать архив и распаковать его — через ПКМ и Проводник Windows

Как запаковать архив tar.gz и tar.bz2 в Ubuntu, Debian, CentOS

tar cfvz archive.tar.gz *.php

где tar — команда, cfvz — ключи, archive.tar.gz — имя будущего архива, *.php — список файлов, которые нужно заархивировать.Список можно заменить директорией, которую нужно запаковать целиком, для этого указываем путь до неё, абсолютный или относительный

tar cfvz archive.tar.gz /forpack

Теперь подробнее про ключи

  • -с — команда, которая означает «создать архив»
  • -f — команда на упаковку файлов и директорий в один файл архива
  • -v — включает визуальное отображение процесса архивации
  • -z — использовать для сжатия GZip

Также, можно использовать для сжатия BZip2. Для этого нужно использовать ключ -j вместо -z.В этом случае, команда для запаковки tar.bz2 будет выглядеть так

tar cfvj archive.tar.bz2 /forpack

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

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

tar cfvz wp-content.tgz wp-content –exclude=wp-content/updraft –exclude=wp-content/uploads –exclude=wp-content/cacheТут мы запаковываем каталог /wp-content/ на WordPress, исключая раздел Updraft wp-content/updraft, раздел Загрузки wp-content/uploads и Кеш wp-content/cache.

Важный момент — чтобы исключить ошибки, не указывайте слеш / в конце пути исключаемого каталога.

Как распаковать архив tar.gz и tar.bz2 Ubuntu, Debian, CentOS

Чтобы распаковать архив tar.gz или tar.bz2, в команде нужно заменить -с на ключ -x, а также указать путь до архива, абсолютный или относительныйКоманда для распаковки архива в текущую директорию выглядит так

tar xfvz archive.tar.gz

С помощью ключа -С можно указать путь, куда нужно распаковать архив

tar xfvj archive.tar.bz2 -C /var/www

Просмотр архивов tar в Linux

Для просмотра содержимого архивов можно использовать ключ -t

tar -tf archive.tar.bz2

Будет выведен список файлов и директорий в архиве. При добавлении ключа -v также будет выведена подробная служебная информация о правах доступа, размерах файлов и прочем.

Иные возможности tar

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

tar –help (3 в среднем: 5,00 из 5) Загрузка…

Запрет обновления пакета

Бывает когда ненужно ставить версию пакета новее установленной.
К примеру отсутствует поддержка чего либо в новой версии либо, она не корректно работает на системе.

Через dpkg

В терминале:

sudo echo 'имя_пакета hold' | sudo dpkg --set-selections 

имя пакета берется из команды, которой вы ставили этот пакет.
Чтобы разрешить обновлять делаем так:

echo 'имя_пакета install' | sudo dpkg --set-selections

Смотрим статус пакета:

dpkg --get-selections | grep 'имя_пакета'

Через apt

Здесь все проще.
Чтобы заблокировать пакет:

sudo apt-mark hold имя_пакета

Чтобы разблокировать пакет:

sudo apt-mark unhold имя_пакета

Через aptitude аналогично.

Описание ключей tar

Команды для действия

Ключ Описание
-A Добавление файлов в архив.
-c Создание нового архивного файла.
-d Показать отличающиеся данные между каталогом-исходником и содержимым архива.
—delete Удалить файлы внутри архива.
-r Добавить файлы в конец архива.
-t Показать содержимое архива.
-u Добавить файлы, которых нет в архиве.
-x Извлечь файлы из архива.

* нельзя использовать несколько вышеперечисленных ключей в одной команде.

Дополнительные опции

Ключ Описание
—atime-preserve Оставить прежнюю метку времени доступа для файла.
-b N Задать размер блока N x 512.
-C Смена каталога. По умолчанию, используется тот, в котором мы находимся.
—checkpoint Показать имена папок при чтении архивного файла.
-G Использование старого формата инкрементального резервирования при отображении или извлечения.
-g Использование нового формата инкрементального резервирования при отображении или извлечения.
-h Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки.
-i Игнорировать блоки нулей.
-j Использование bzip2.
—ignore-failed-read Игнорировать не читаемые файлы.
-k При распаковке, существующие файлы не заменяются соответствующими файлами из архива.
-L N Смена магнитной ленты после N*1024 байт.
-m При извлечении игнорировать время модификации объекта.
-M Многотомные архивы.
-N DATE Сохранять только более новые файлы относительно DATE
-O Направление извлекаемого на стандартный вывод.
-p Извлечение защищенной информации.
-P Не отбрасывает начальный слэш (/) из имен.
-s Сортировка файлов при извлечении.
—preserve Аналогично -ps
—remove-files Удалить исходные файлы после добавления в архив.
—same-owner Сохранить владельца при извлечении.
—totals Вывод байт при создании архива.
-v Протоколирование действий — отображение списка объектов, над которыми происходит действие.
-V NAME Создание архива на томе с меткой NAME.
—version Показать версию tar.
-w Требовать подтверждения для каждого действия.
-W Проверка архива после записи.
—exclude FILE Исключить файл FILE.
-X FILE Исключить файлы FILE.
-Z Фильтрует архив с помощью compress.
-z Использование gzip.

* актуальный список опций можно получить командой man tar.

Неправильная установка

Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.

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

sudo make install

Для удаления пакета, установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).

sudo make uninstall

Необходимое программное обеспечение

Пакеты с буквами mm в конце описания — это пакеты для C++ программ. Список для bmpx, но подойдёт почти для любой GTK2/Gnome программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.

Compile: Runtime:
X libx11-dev libx11-6
GlibMM libglibmm-2.4-dev libglibmm-2.4-1c2a
GTK+ libgtk2.0-dev,gtk-doc-tools libgtk2.0-0
GTKMM libgtkmm-2.4-dev libgtkmm-2.4-1c2a
Glade libglade2-dev libglade2-0
GladeMM libglademm-2.4-dev libglademm-2.4-1c2a
XML libxml2-dev libxml2
XML++ libxml++2.6-dev libxml++2.6c2a
DBus libdbus-1-dev,libdbus-glib-1-dev libdbus-1-2,libdbus-glib-1-2
Alsa libasound2-dev libasound2
HAL libhal-dev,libhal-storage-dev libhal1,libhal-storage1
Gamin libgamin-dev libgamin0
Neon libneon25-dev libneon25
TagLib libtagc0-dev libtagc0
Startup-Notify libstartup-notification0-dev libstartup-notification0
Boost libboost-dev,libboost-filesystem-dev libboost-filesystem1.33.1
MusicBrainz libmusicbrainz4-dev libmusicbrainz4c2a
GStreamer libgstreamer0.10-dev,libgstreamer-plugins-base0.10-dev libgstreamer0.10-0,libgstreamer-plugins-base0.10-0

Создание и распаковка архивов в Linux

В варианте с Linux VPS на базе OpenVZ и Xen для работы с архивами достаточно базовых компонентов системы, а только Tar, Gzip и Bzip2, которые при создании сжатого архива работают как единое целое, т.к. сам по себя архиватор Tar не предусматривает возможность сжатия данных. Для этой цели как раз и используется Gzip или Bzip2. Картотеки, созданные с применением Gzip, обычно имеют расширение .tar.gz, а при использовании Bzip2 — .tar.bz2.

В то же время, многие архиваторы (пример, Gzip или bzip2) не умеют сжимать несколько файлов, а работают только с одним файлом или входным потоком. Потому чаще всего эти программы используются вместе. tar создает несжатый архив, в который вмещаются выбранные файлы и каталоги, при этом сохраняя некоторые их атрибуты (такие как права доступа).

Дабы распаковать tar.gz архив в текущую директорию нужно выполнить команду:

x — дозволяет вам извлекать файлы из архива.
v — делает вывод tar подробным. Это означает, что на экран будут выведены все выисканные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, станет ограничена.
f — является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла картотеки.
z — позволяет вам обрабатывать архив, сжатый gzip’ом (с расширением .gz). Если вы забудете указать эту функцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.

Распаковать tar файл:

Распаковать и разархивировать tar.gz файл:

Распаковать и разархивировать tar.bz2 файл:

Как установить tar gz в Ubuntu

Не для всех программ уже есть готовые пакеты для вашего дистрибутива, также новые версии программ могут распространяться только в форме tar.gz архива или просто исходников.

У многих новых пользователей Ubuntu возникает вопрос, как же устанавливать программы или игры в формате tar.gz. Ведь менеджером пакетов они не открываются, а двойным кликом открывается архив.

Дело в том, это на самом деле еще не программа, это действительно архив.

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

Чтобы все это превратилось в готовую к установке и выполнению программу нужно выполнить сборку (компиляцию). Но не бойтесь всех этих новых терминов, на самом деле все намного проще чем кажется, вам не нужно будет ничего ни писать, ни исправлять, достаточно только ввести несколько команд в терминале. В этой инструкции будет рассмотрена установка tar.gz в Ubuntu.

  • Подготовка системы
  • Установка из tar gz в Ubuntu
  • Выводы

Подготовка системы

Готовить почти нечего, компилятор GCC уже предустановлен в системе, и уже можно переходить к сборке.

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

Поэтому придется установить дополнительные утилиты для создания и сборки пакетов Ubuntu.

Наберите следующую команду для установки этих инструментов:

sudo apt-get install checkinstall build-essential  autoconf automake

Установка из tar gz в Ubuntu

Теперь можно переходить к сборке программы и установке tar.gz Ubuntu

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

cd ~/путь_к_папке_с_архивом

Дальше извлечем исходники из архива с программой:

 tar -xvf имя_архива.tar.gz

И переходим в папку с только что полученными исходными файлами:

cd ./имя_архива

Обычно программы в Linux состоят из большого количества файлов, и при их сборке нужны различные параметры и опции, поэтому вместо того, чтобы запускать компилятор для каждого из файлов вручную, в Linux используется утилита make. Она на основе файла Makefile подбирает правильные команды компиляции для каждого файла и собирает всю программу.

Программы часто используют внешние библиотеки, а в разных дистрибутивах путь к файлам библиотек разный, поэтому перед тем, как запускать make нужно выполнить скрипт configure для проверки зависимостей. Этот скрипт можно создать на основе файла configure.in.

Но это необязательно, во многих программах скрипт конфигурации не предусмотрен и программа не требует проверки зависимостей перед сборкой, тогда файла configure.in просто нет в папке с исходниками.

Если так, то просто пропустите следующие инструкции и переходите к сборке.

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

./bootstrap

./autogen.sh

Если же этих скриптов не оказалось в исходниках, просто последовательно выполните следующие команды:

aclocal$ autoheader$ automake –gnu –add-missing –copy –foreign

$ autoconf -f -Wall

Если все прошло успешно установка из исходников Ubuntu может быть продолжена. Теперь, наверное, самое сложное, запускаем configure:

./configure

Например, нам не хватало libfuse.so. С помощью поисковой системы мы узнали, что эта библиотека есть в пакете libfuse. Теперь просто ее установим:

sudo apt install libfuse

Затем опять выполняете configure, чтобы посмотреть нет ли других неразрешенных зависимостей. И повторяете все до тех пор, пока не увидите слово Sucessful или Complete в конце вывода скрипта.

И только теперь установка tar.gz в Ubuntu может быть продолжена и программа собрана. Команда make скомпилирует программу из исходников, а скрипт checkinstall соберет deb пакет:

make

Самое сложное уже позади, на этом этапе ошибки почти никогда не возникают.

checkinstall

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

dpkg -i имя_программы.deb

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

Подробное описание каждого шага

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

Установка пакета checkinstall не должна вызвать особых сложностей. В операционных системах, использующих DEB пакеты, установка производится командой:

# sudo apt-get install checkinstall

В операционной системе, использующей RPM пакеты, установка пакета checkinstall выполняется командой:

# sudo rpm -i checkinstall

Если такой пакет в Вашей ОС не обнаружен, то Вам следует посетить домашнюю страницу проекта и скачать требуемую версию для Вашего дистрибутива:

Переход в директорию с исходным кодом программы

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

Хотелось бы напомнить об очень удобном инструменте командной строки Linux — клавише TAB. Кнопка TAB позволяет автоматически дописывать название длинных директорий и файлов. Требуется ввести лишь первые символы названия директории / файла и нажать клавишу TAB, которая автоматически допишет полное название.

Почти все исходники распространяются в архивах формата tar.gz. Для разархивирования архива набираем команду:

# tar xvzf имя_архива.tar.gz

Прочитать дополнительную информацию по работе с любыми архивами можно .

Конфигурируем исходники под свою ОС

Проще говоря, это процесс «настройки» исходного кода под конкретную ОС. В результате этого процесса создается файл с описанием конфигурации.
Конфигурирование исходников обычно осуществляется простой командой:

# ./configure

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

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

# ./configure —help
или прочитать в файле readme или install

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

К примеру, при конфигурировании Pidgin возникла ошибка:

checking for GTK… yes
checking for PANGO… yes
checking for X11… yes
checking for GTKSPELL… no
no
configure: error:
GtkSpell development headers not found.
Use —disable-gtkspell if you do not need it.

В приведенном листинге видно, что GTK, PANGA, X11 соответствуют требованиям компилируемого исходного кода (yes), а проверка GTKSPELL вывела значение no. Скорее всего в этом примере требуется установить libgtkspell-dev.

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

Компилирование исходников

Компилирование исходного кода — процесс «автоматический» при условии успешного выполнения предыдущего пункта.

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

Создание DEB-пакета из исходного кода

Программа checkinstall создает и устанавливает пакет для Вашей ОС. Тип пакета (DEB или RPM) checkinstall определяет сам. Для жесткого указания типа создаваемого пакета используем команду checkinstall с ключами:

# sudo checkinstall -R
# Создает и устанавливает RPM пакет

# sudo checkinstall -D
# Создает и устанавливает DEB пакет

# sudo checkinstall -S
# Создает и устанавливает TGZ пакет (дистрибутивы: Slackware, Zenwalk, DeepStyle, Vektorlinux, Mops)

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

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

Статья опубликована 25.07.2009 · Автор статьи: Зюзгин Иван
Статья относится к linux, ubuntu, debian

Случайные 7 статей:

Комментарии

Установка программ из архивов (тарболов)

программой с Дистрибутив, представляет из себя архив с кучей
обычно и файлов имеет расширение .tar, .tar.gz, .bz, .или ну
tgz что то похожее.

Для архивов помощью с сжатых GZIP (gz, gz2 и т.д.)
выполняем:

tar -имя xvzf_файла

Для архивов сжатых с BZIP помощью (bz, bz2 и т.д.)
выполняем:

tar -xvjf файла_имя

Команды Tar:

  • x – извлечь файлы из подробный;
  • v – архива вывод информации на экран;
  • f – Обязательная Если. опция не указать, Tar будет
    пытаться магнитную использовать ленту вместо файла;
  • z – обработать сжатый архив gzip’ом;
  • j – обработать архив сжатый После’ом.

bzip выполнения, будет создана папка с идентичным, именем
названию пакета.

Далее необходимо эту открыть созданную папку

cd имя_папки

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

Если программа виде в собрана исполняемого файла, то в папке
будет файл находиться, с расширением .sh, обычно он так и
называется Его.sh. install достаточно просто запустить на
исполнение:

./Если.sh

install же программа представлено в исходном коде, следующие
выполняем команды:

./configure
make
make После

install установки делаем:

make clean

как, Все ведите ничего сложного в установке Linux в программ
нет.

94,
67

Ссылка на основную публикацию