Установка программного обеспечения в Windows производится при помощи мастера установки (setup.exe/install.exe). В Linux же используют два основных способа установки ПО:
- при помощи пакетов;
- при помощи исходных кодов.
Пакет содержит все необходимое (включая зависимости) для работы программы. Существует два основных типа пакетов:
- Deb-пакеты - применяемые в Debian и основанных на ней дистрибутивах (Ubuntu, Mint и др.).
- RPM-пакеты - применяются в Red Hat совместимых дистрибутивах (RHEL, Fedora, Mandriva и пр., производное от Red-Hat Packet Manager).
- Каталоги http://rpmfind.net и http://rpm.pbone.net
Если найти программу в виде пакетов не получается, то стоит попробовать найти и установить программу из исходных кодов (желательно, в каталог /usr/src), для чего вначале необходимо распаковать архив в данных каталог, перейти в него и выполнить определенные команды.
./configure # проверка необходимых библиотек (зависимостей), создаст файл Makefile
make # скомпилирует программу на основании файла Makefile
make install # установит программу и доп. файлы в дерево ФС (программы в каталог /usr/bin, документацию в /usr/share/doc, конфиги в /etc и т.д.)
В отличии от архива с исходными кодами ПО, пакет хранит также всю служебную информацию для процесса установки (пути установки, доп. действия, зависимости, конфликты (между уже установленными программами)).
Репозитории - хранилища пакетов ПО (могут быть как локальными, так и удаленными). Используют для централизованного управления обновлением пакетов. В Debian и основанных на ней дистрибутивах используются программы для управления dpkg (простой менеджер пакетов, работает в текстовом режиме и не умеет разрешать зависимости пакетов) и apt (мощный менеджер пакетов, работает в текстовом режиме, умеет разрешать зависимости и поддерживает репозитории).
dpkg [ключи] действие # вызов программы dpkg (нужен root)
sudo dpkg -i /путь/package.deb # установка пакета deb (обновление при наличии старой версии выполняется автоматически)
sudo dpkg -r package # удаление пакета
-l [образец] # вывести все установленные пакеты, имена которых соответствуют образцу (маски * и ?), если образец не задан, выводятся все пакеты
-L <имя_пакета> # вывести имена файлов из указанного пакета
-p <имя_пакета> # вывести информацию об установленном пакете
-s <имя_пакета> # вывести информацию о статусе пакета
--unpack <имя_пакета.deb> # распаковать, но не устанавливать пакет
alien - программа для установки RPM пакетов в Debian, преобразовывается файл в deb-формат. Установка подобных пакетов крайне не желательна.
sudo apt-get install alien # установка программы alien
sudo alien package_file.prm # установка rpm-пакета
sudo apt-get remove alien # удаление программы alien
apt-get - программа для управления пакетами, которая поддерживает источники пакетов и умеет разрешать зависимости. Просматривает файл с источниками (репозитариями) DEB-пакетов /etc/apt/sources.list. Программа находит указанный пакет (в Интернет или на диске), читает служебную информацию, разрешает зависимости (устанавливает необходимые другие пакеты) и затем устанавливает указанный пакет. Все загруженные пакеты записываются в каталог /etc/cache/apt/archives.
sudo nano /etc/apt/sources.list # указание источников пакетов
Основные репозитории:
- main - основные программы, распространяются свободно и регулярно поддерживаются (обновляются).
- restricted - программы, которые распространяются по несвободным лицензиям, а также имеют ограниченную поддержку.
- universe - программы с открытыми лицензиями, поддержка программ не гарантируется
- multiverse - программы, которые распространяются несвободно и без всякой поддержки и гарантий.
- security - исправления пакетов из репозиториев main и restricted.
- backports - неофициальные пакеты свежих версий программ, собранные из исходных кодов энтузиастами (любителями).
apt-get [опции] команды [пакет]
update # синхронизация файлов описаний пакетов с источниками пакетов
upgrade # обновление пакетов из источников
dist-upgrade # обновление дистрибутива и всех пакетов в нем
install # установка пакетов
remove # удаление пакетов
check # поиск нарушенных зависимостей
clean # очистка локального хранилища пакетов
autoclean # очистка пакетов, которые не могут быть получены и использованы
# после каждого изменения файла sources.list необходимо обновлять описания пакетов
sudo apt-get update
# переустановка пакета в случае сбоя
sudo apt-get --reinstall install <пакет>
# зачистка пакета (удаление программы и конфиг-файлов)
sudo apt-get --purge remove <пакет>
# обновление пакета и дистрибутива
sudo apt-get upgrade <пакет>
sudo apt-get dist-upgrade
# очистка кэша пакетов (каталог /var/cache/apt/archives
sudp rm /var/cache/apt/archives/*.deb # удаление пакетов из кэша
sudo apt-get clean # удаление пакетов из кэша (включена в автозапуск)
# каталоги кэша
/var/cache/apt/archives/ # хранение полученных файлов
/var/cache/apt/archives/partial/ # хранение получаемых файлов (пакетов)
/var/state/apt/lists/ # информация о состоянии каждого ресурса пакетов
/var/state/apt/lists/partial/ # хранение информации в процессе скачивания
# опции (ключи) команды apt-get
-d, --download-only # скачать пакеты без установки
-f, --fix-broken # исправить систему с нарушенными зависимостями (если некоторые пакеты были удалены при помощи dpkg с нарушением зависимостей)
-m, --ignore-missing, --fix-missing # игнорировать отсутствующие пакеты
-q, --quiet # тихий режим (вывод минимума сообщений - для сценариев bash)
-s, --simulate # симулирует процесс установки (проверка возможности установки)
-y, --yes # автоматически отвечать "да"
-b, --compile, --build # скомпилировать пакеты исходного кода после получения
--no-upgrade # не производить обновление пакетов (используют вместе с install)
--force-yes # принудительное выполнение операции
--purge # полное удаление пакета (зачистка)
--reinstall # переустановить пакет
# программа aptitude позволяет использовать псевдографический интерфейс для установки