Установка программ (утилит) пакетным менеджером. Установка из архивов (тарболов)
Практика
На практике пользователю необходимо уметь взаимодействовать с пакетными менеджерами – устанавливать и удалять пакеты.
Скачивание пакетов и файлов в ОС Linux
Для установки пакетов через исходники, необходимо наличие самих пакетов в системе. Их можно скачать по прямой ссылке, используя утилит wget или curl. Рассмотрим базовые примеры использования данных утилит:
wget
Это очень мощная утилита, способная работать по протоколам HTTP, HTTPS и FTP. Кроме того поддерживается работа через прокси. Команда wget , может выполнять загрузку файлов даже в фоновом режиме - без участия пользователя, в отличии от большинства веб браузеров.
Кроме скачивания файлов, есть возможность сохранять веб страницы или даже целые веб-сайты, благодаря функции открытия ссылок на страницах. Такую возможность еще называют рекурсивной загрузкой.
Команда wget имеет очень простой синтаксис:
$ wget опции адрес_ссылки
Можно указать не один URL для загрузки, а сразу несколько. Опции указывать не обязательно, но в большинстве случаев они используются для настройки параметров загрузки.
Debian
1. dpkg
dpkgСинтаксис dpkg:
dpkg <ключ> <пакет>Установка пакета:
Установка пакета(ов):
-i:dpkg -i package.debУстановка пакета(ов) - 2й вариант:
--install:dpkg --install package.debУстановка всех пакетов из указанной директории и её поддиректорий (рекурсивно):
-R:dpkg -R --install /путь/до/нужной/директорииРаспаковка пакета без установки:
--unpack:dpkg --unpack package.debРаздельная распаковка и установка пакета:
--unpack,--configure:dpkg --unpack package.deb && dpkg --configure package.deb
Для установки пакета через dpkg необходимо наличие скачанного файла пакета в формате .deb в системе
Удаление пакета:
Удаление пакета без зависимостей:
-r:dpkg -r packageПолное удаление пакета:
-P:dpkg -P package
Просмотр информации о пакете:
Просмотр содержимого пакета:
-c:dpkg -c packageПроверить, установлен ли пакет:
-s:dpkg -s packageПросмотреть, куда установлены файлы пакета:
-L:dpkg -L package
2. apt
aptСинтаксис apt:
apt <действие> <пакет> <ключ>Установка или обновление пакета:
Установка пакета:
install:apt install package
Можно также установить программу непосредственно из пакета .deb, скачанного вами ранее: apt install docker.deb
Обновление списков пакетов:
update:apt updateОбновление пакетов:
upgrade,full-upgrade:apt upgrade && apt full-upgrade
Удаление пакетов:
Удаление пакета:
remove:apt remove packageПолное удаление пакета:
purge:apt purge packageУдаление брошенных зависимостей, более не используемых никакими пакетами в системе:
autoremove:apt autoremove
Информация о пакетах:
Информация о пакете:
show:apt show packageСписок всех установленных пакетов:
list --installed:apt list --installedСписок пакетов, требующих обновления:
list --upgradable:apt list --upgradableПоиск пакетов:
apt-cache search <название пакета>
RHEL/Fedora
1. rpm
rpmСинтаксис rpm:
rpm <ключ> <пакет>Установка пакетов:
Установка пакета:
-i:rpm -i package.rpmУстановка пакета - 2й вариант:
--install:rpm --install package.rpmУстановка пакета без учёта его зависимостей:
--nodeps:rpm -i --nodeps package.rpmОбновление пакета:
-U:rpm -U package.rpm
Для установки пакета через rpm необходимо наличие скачанного файла пакета в формате .rpm в системе
Удаление пакетов:
Удаление пакета:
-e:rpm -e package.rpmУдаление пакета - 2й вариант:
--erace:rpm --erace package.rpmУдаление пакета без учёта его зависимостей:
--nodeps:rpm -e --nodeps package.rpm
Сбор информации о пакете:
Краткая информация о пакете
-qi:rpm -qi openssh-serverПолное наименование пакета и его версия
-q:rpm -q gccСписок файлов пакета
-ql:rpm -qlУзнать пакет, которому принадлежит файл
-qf:rpm -qf /etc/sshd_config
*В дистрибутиве ALT Linux директория будет /etc/openssh/sshd_config
Вспомнить полное название пакета
-qa:rpm -qa | grep netscapeВспомнить каталог пакета
-qal:rpm -qal | grep -i monitorsИнформация о неинсталированном пакете
-qip:rpm -qip /net/rdist/dist/contrib/libc6/i386/x11amp-0.65r2-1.i386.rpmУзнать зависимости пакета
-qRp:rpm -qRp /net/rdist/dist/contrib/libc6/i386/x11amp-0.9-alpha2-2.i386.rpmПроверка текущего состояния пакета
-qs:rpm -qs mytetranormal /usr/bin/mytetra normal /usr/share/applications/mytetra.desktop normal /usr/share/doc/mytetra-1.42.2 normal /usr/share/doc/mytetra-1.42.2/readme.txt normal /usr/share/icons/hicolor/48x48/apps/mytetra.png
Данная команда позволяет сравнить текущее состояние файлов пакета с информацией, записанной в базе данных.
Это требуется, например, при проверке, не испорчены ли какие-нибудь важные для системы файлы (такое случается после внезапного отключения питания). При нахождении различий печатается ключевая строка, с обозначением отличий и имя файла, в котором они найдены. Сравниваются следующие параметры:
Проверка целостности указанного пакета
-Vf:rpm -Vf /путь/к/программе# rpm -Vf /bin/mount .M....... /bin/mount .M....... /bin/umount
5 Контрольная сумма (подсчитанная по алгоритму MD5)
S Размер файла
L Куда указывает символьный линк (если проверяемый файл является симлинком)
T Время модификации
D Устройство (раздел), на котором расположен файл
U Владелец
G Группа-владелец
M Права доступа
Проверку лучше выполнять как "root", так как некоторые файлы (например, /usr/X11R6/bin/xterm) могут быть недоступны на чтение другим пользователям и для них всегда будет выдаваться несовпадение по контрольной сумме.
2. dnf - ссылка для устаревшего yum, форком которого является dnf. У них одинаковые синтаксис и основные опции.
dnf - ссылка для устаревшего yum, форком которого является dnf. У них одинаковые синтаксис и основные опции.Синтаксис dnf:
dnf <действие> <пакет> <ключ>Установка или обновление пакета:
Установка пакета:
install:dnf install packageУстановка группы пакетов:
groupinstall:dnf groupinstall 'название группы'Проверка обновлений:
check-update:dnf check-updateУстановка обновлений:
update:dnf updateОбновление конкретного пакета:
update:dnf update packageОбновление группы пакетов:
groupupdate:dnf groupupdate 'название группы'Просмотр списка всех доступных групп:
grouplist:dnf grouplist
Удаление пакета:
Удаление одного пакета с его зависимостями:
remove:dnf remove packageУдаление пакетов из определённой группы:
groupremove:dnf groupremove 'имя группы'
Информация о пакете:
Поиск определённого пакета по названию и описанию:
search:dnf search packageСписок всех пакетов:
list:dnf listСписок всех установленных в системе пакетов:
list installed:dnf list installedИнформация о пакете:
info:dnf info package
Установка пакетов из архивов (тарболов)
Дистрибутив с пакетом, представляет из себя архив с кучей файлов и обычно имеет расширение .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, обычно он так и называется install.sh. Его достаточно просто запустить на исполнение:
./install.shЕсли же программа представлено в исходном коде, выполняем следующие команды:
./configure #Если не сработало, переходим к след. команде
make
make installПосле установки делаем:
make cleanИспользование wget
Команда wget , обычно поставляется по умолчанию в большинстве дистрибутивов, но если нет, ее можно очень просто установить. Например установка с помощью yum будет выглядеть следующим образом:
yum -y install wget
А в дистрибутивах основанных на Debian:
sudo apt install wget
Теперь перейдем непосредственно к примерам:
1. Загрузка файла
Команда wget скачает один файл и сохранит его в текущей директории. Во время загрузки мы увидим прогресс, размер файла, дату его последнего изменения, а также скорость загрузки:
wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
2. Сохранить файл с другим именем
Опция -О позволяет задать имя сохраняемому файлу, например, скачать файл wget с именем wget.zip:
wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
3. Скачать несколько файлов
Вы можете скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:
wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
4. Взять URL из файла
Вы можете сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i. Например создадим файл tmp.txt, со ссылками для загрузки wget, а затем скачаем его:
wget -i /wget/tmp.txt
5. Продолжить загрузку
Утилита wget рассчитана на работу в медленных и нестабильных сетях. Поэтому если вы загружали большой файл, и во время загрузки было потеряно соединение, то вы можете скачать файл wget с помощью опции -c.
wget -c http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
6. Загрузка файлов в фоне
Опция -b заставляет программу работать в фоновом режиме, весь вывод будет записан в лог файл, для настройки лог файла используются специальные ключи wget:
wget -b -o ~/wget.log http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
7. Ограничение скорости загрузки
Команда wget позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция --limit-rate. Например ограничим скорость до 100 килобит:
wget --limit-rate=100k ftp://ftp.iinet.net.au/debian/debian-cd/8.4.0/amd64/iso-dvd/debian-8.4.0-amd64-DVD-1.iso
Здесь доступны, как и в других подобных командах индексы для указания скорости - k - килобит, m - мегабит, g - гигабит, и так далее.
8. Подключение по логину и паролю
Некоторые ресурсы требуют аутентификации, для загрузки их файлов. С помощью опций --http-user=username, –http-password=password и --ftp-user=username, --ftp-password=password вы можете задать имя пользователя и пароль для HTTP или FTP ресурсов.
wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Или:
wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
9. Загрузить и выполнить
Вы, наверное, уже видели такие команды. wget позволяет сразу же выполнять скачанные скрипты:
wget -O - http://сайт/скрипт.sh | bash
Если опции -O не передать аргументов, то скачанный файл будет выведен в стандартный вывод, затем мы его можем перенаправить интерпретатору bash, как показано выше.
10. Сохранить файл в папке
По умолчанию wget сохраняет файл в текущую папку, но это поведение очень легко изменить с помощью опции -P:
wget -P ~/Downloads/ http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
11. Передать информацию о браузере
Некоторые сайты фильтруют ботов, но мы можем передать фальшивую информацию о нашем браузере (user-agent) и страницу с которой мы пришли (http-referer).
wget ‐‐refer=http://google.com ‐‐user-agent=”Mozilla/5.0 Firefox/4.0.1″ //losst.pro
12. Количество попыток загрузки
По умолчанию wget пытается повторить загрузку 20 раз, перед тем как завершить работу с ошибкой. Количество раз можно изменить с помощью опции --tries:
wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
13. Квота загрузки
Если вам доступно только ограниченное количество трафика, вы можете указать утилите, какое количество информации можно скачивать, например разрешим скачать файлов из списка только на десять мегабайт:
wget -Q10m -i download-list.txt
Здесь работают те же индексы для указания размера - k, m, g, и т д.
14. Скачать сайт
Wget позволяет не только скачивать одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в оффлайне. Использование wget, чтобы скачать сайт в linux выглядит вот так:
wget --mirror -p --convert-links -P ./<папка> адрес_сайта
Last updated








