Как добавлять репозитории программ и ключи подписей в linux?

Установка программ в Debian ориентированных дистрибутивах

К Debian ориентированным дистрибутивам относятся: сам Debian с любым окружением рабочего стола (GNOME, KDE, XFCE и так далее), Ubuntu (сюда относятся Kubuntu, Xubuntu, Lubntu и так далее), Linux Mint с любым окружением рабочего стола, MX Linux, Pop!_OS, Astra Linux. И многие другие дистрибутивы, которые основываются именно на пакетной базе Debian. Просмотреть так называемое дерево дистрибутивов Linux и узнать, какой дистрибутив основывается на пакетной базе Debian можно на WIKI. Начнем мы с установки утилитой dpkg, данная утилита устанавливает заранее скачанные из сети пакеты, например, тот же Google Chrome. Для того что бы установить пакет, в терминале выполняем команду:

sudo dpkg -i и название пакета

Обратите внимания, что для установки вы должны находится в этом же каталоге, что и скачанная ранее программа. В данном примере ключ -i обозначает установку – install, для удаления используется ключ -r. Крайне рекомендуется после установки утилитой dpkg установить зависимости, их можно установить командой:

Если вы скачали несколько программ, то установить их можно командой:

Таким образом, все программы из каталога с расширением .deb будут установлены:

Установка программ из репозитория происходит командой:

sudo apt install и название пакета

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

Таким образом мы установим из репозитория нужную нам программу. Далее рассмотрим как удалять установленные программы в Debian, Ubuntu, Linux Mint, Astra Linux и так далее. Для удаления программ используются команды sudo apt remove или для полного удаления sudo apt purge, а далее необходимо указать название программы которую хотим удалить. На примере все того же synaptic это будет выглядеть следующим образом:

sudo apt remove synaptic

или

sudo apt purge synaptic

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

sudo apt autoremove

и

sudo apt autoclean

Устанавливать программы или пакеты можно через графические менеджеры программ, рассмотрим пример установки в Synaptic. Открываем его и в поисковой строке вводим название необходимой программы, например, нужно установить браузер Chromium, вводим его название:

Нажимаем искать и в результатах поиска находим пакет с названием “chromium-browser”, далее нажимаем правой клавишей мышки на названии пакета и выбираем пункт “Отметить для установки”:

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

После нажатия на кнопку “Применить” начнется установка. В Synaptic можно отсортировать пакеты которые установлены в вашей системе, для этого достаточно нажать на букву “C”, которая находится под кнопкой “Отметить все”. Зеленым будут отмечены именно те пакеты, которые установлены в вашей системе:

Для удаления программ в Synaptic нажимаем правой клавишей мышки на пакете, возьмем для примера все тот же Chromium, и выбираем один из пунктов “Отметить для удаления” или “Отметить для полного удаления”, в последнем случае, программа удалится со всеми ее зависимостями:

Synaptic по умолчанию в некоторых системах отсутствует, его заменяют другим приложением для установки и удаления программ в операционных системах Linux. Рассмотрим на примере той же Ubuntu приложение “Менеджер программ”, по сути, оно практически ничем не отличается от других, которые идут с рабочим окружением GNOME, в том же Debian вы увидите крайне похожее приложение для установки программ. Тут все программы разбиты по категориям:

Для поиска нужной программы в Менеджере программ в поисковой строке точно так же как и в Synaptice вводим название необходимой программы, например все тот же Chromium, и из списка выбираем нужное:

Нажимаем на названии программы и переходим на страницу с описанием, где вверху появится кнопка “Установить”, нажимаем на нее и программа будет установлена:

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

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

В Ubuntu существуют две основные графические утилиты управления программами: «Центр приложений Ubuntu» и «Менеджер пакетов Synaptic». Кроме того, все действия можно легко совершать и через консоль. Каждому из этих инструментов посвящена одна из следующих статей. Так же после их описания я расскажу про программу управления обновлениями системы.

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

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

Знакомство с доступными инструментами установки и удаления программ начнём, пожалуй, с Центра приложений:

Центр приложений Ubuntu

Из-за этого установочные файлы для Windows могут быть на порядок больше по размеру, чем те же файлы для Ubuntu.

Почти никогда. После установки некоторых обновлений и драйверов всё же требуется перезагрузка.

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

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

Если вы считаете это недостатком, возможно, вы и правы. Однако это значительно упрощает процесс установки, а если вы хотите изменить путь установки, то можете перепаковать deb-пакет, изменив все необходимые параметры, сделать это в конце концов очень просто.

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

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

Чаще всего забывают про работающие «в фоне» консольные программы управления пакетами.

Установка программ с помощью apt

Перед тем как говорить непосредственно про Debian, нужно рассмотреть apt. Этот пакетный менеджер был специально разработан для Debian и потом стал использоваться в других основанных на нем дистрибутивах. Синтаксис для работы с утилитой такой:

$ sudo apt опции команда имя_пакета

Вот основные команды apt, которые вы можете использовать для управления пакетами:

  • download — скачать пакет, но не устанавливать;
  • update — используется для обновления информации о списках пакетов в репозиториях;
  • upgrade — обновление системы без удаления пакетов;
  • full-upgrade — полное обновление системы с удалением конфликтующих зависимостей;
  • install — установка пакета;
  • remove — удаление пакета без удаления конфигурационных файлов;
  • purge — полное удаление пакета;
  • autoremove — автоматическое ненужных удаление пакетов;
  • search — поиск пакета в локальной базе данных;
  • show — посмотреть информацию о пакете.

Кроме того, утилите можно передать некоторые опции, основные:

  • -c — сторонний конфигурационный файл;
  • -o — строка конфигурации;
  • -t — версия релиза для которой устанавливать пакет;
  • -f — выполнить операцию принудительно.

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

А для удаления пакета наберите:

Вы можете искать пакеты с помощью команды search:

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

С помощью политик вы можете настроить из каких репозиториев будет выполняться установка deb пакетов в debian в первую очередь. Мы рассматривали репозитории Debian и как их добавлять в отдельной статье. Допустим, вы добавили backports, testing и unstable. Теперь, чтобы настроить для них приоритеты откройте конфигурационный файл /etc/apt/preferences и добавьте в него строки:

Package: *
Pin: release a=stretch-backports
Pin-Priority: 650

Package: *
Pin: release a=testing
Pin-Priority: 600

Package: *
Pin: release a=unstable
Pin-Priority: 100

Чем выше значение Priority, тем выше приоритет. Сначала мы указываем с помощью инструкции Package имя пакета, а затем репозиторий и его приоритет. В нашем примере самый высокий приоритет имеет репозиторий stable, если там пакета нет, он будет установлен из backports, и только потом из testing и из unstable. Теперь добавление нестабильных репозиториев не будет ломать систему. А если вы захотите установить пакет из нестабильного репозитория, то просто укажите его с помощью опции -t. Например, для testing:

Очень удобно и не ломает систему.

Пакет для репозитория

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

Файл репозитория для yum:

Экспортируем ключ для пакета:

Собираем все в архив:

Создаем SPECS файл для пакета:

Собираем пакет:

На этом этапе нас спросят пароль от нашего PGP ключа.

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

Не забываем подписать метаданные:

Теперь установим наш репозиторий в систему:

В дальнейшем данный пакет будет доступен по адресу: https://repo.chelaxe.ru/chelaxe-release-1.0-1.el7.centos.noarch.rpm

После установки должен появиться репозиторий chelaxe и PGP ключ:

Самое важное тут это SPEC файлы, расписывать о них не стану, но предоставлю ряд ссылок:

  1. https://www.altlinux.org/Spec
  2. https://docs.fedoraproject.org/quick-docs/en-US/creating-rpm-packages.html
  3. https://www.opennet.ru/docs/HOWTO-RU/RPM-HOWTO-48.html

и одна полезная команда:

она отобразит готовые макросы для сборки.

Собираем Tmux

Теперь соберем, для примера, что нибудь полезное. Собирать будем tmux — терминальный мультиплексор, без которого работать мне не комфортно. Стоит отметить tmux есть в base репозитории CentOS 7, но версия там 1.8, а мы соберем 2.7. Так же у пакета из base репозитория есть зависимость libevent, мы же соберем tmux со статическими библиотеками последних версий.

Вариант использования официальных репозиториев

Для того чтобы уменьшить вероятность поломки вашей системы из-за непроверенных обновлений, можно немного сократить количество репозиториев в системах Debian и в Ubuntu.

Вообще в Debian дан список самых безопасных репозиториев по умолчанию. Можем лишь закомментировать репозитории с исходниками, так как скорее всего вам они пока не понадобятся. Напомню, что такие строки начинаются со слова deb-src. А если понадобятся вы их просто раскомментируете. После правки у нас осталось 3 источника пакетов:

alex@deb:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n
     1  deb http://deb.debian.org/debian/ bullseye main
     2  deb http://security.debian.org/debian-security bullseye-security main
     3  deb http://deb.debian.org/debian/ bullseye-updates main

Ubuntu при установке прописала намного больше своих репозиториев. Но их тоже можно свести к трем. Например, я считаю нужным отключить universe, multiverse и jammy-backports репозитории на сервере. После правки список репозиториев также состоит из 3-ёх строк:

alex@ubu:~$ egrep -v '^#|^$' /etc/apt/sources.list | cat -n
     1  deb http://ru.archive.ubuntu.com/ubuntu jammy main restricted
     2  deb http://ru.archive.ubuntu.com/ubuntu jammy-updates main restricted
     3  deb http://ru.archive.ubuntu.com/ubuntu jammy-security main restricted

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

$ sudo apt update

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

А если хотите обновить систему, то выполните команду:

$ sudo apt upgrade

Эта команда уже скачивает все обновления и устанавливает их.

Кстати утилита apt – это и есть менеджер пакетов. Рассмотрим её и другие менеджеры пакетов в следующих статьях.

Установка RPM-пакетов

Для управления пакетами формата RPM в Linux используется соответствующая команда — rpm. Она производит установку, удаление, а также опрос состояния программ. Требуемый функционал этой команды определяется специальными опциями. Например, самыми распространёнными являются: -i – установка, -e – удаление, -U – обновление и -q – запрос. Если с первыми тремя опциями всё довольно просто, то последняя, т. е. -q очень часто используется совместно с другими опциями, т. е. она служит для включения опций конкретных запросов, например, команда:

$ rpm -qa

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

$ rpm -i apache2.rpm

В результате будет произведена установка веб-сервера «Апач», т. к. это в данном случае предписывает опция -i. Сам же файл программы должен быть предварительно загружен или иным способом помещён в файловую систему. Бывает и так, что при работе с приложениями  возникают сложности — чаще всего с зависимостями, например:

$ sudo rpm -U openssh-2.9p2-12.i386.rpm
error: failed dependencies:
openssh = 2.9p2-7 is needed by openssh-askpass-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-askpass-gnome-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-clients-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-server-2.9p2-7

Этот вывод означает, что при попытке обновить приложение  openSSH будут затронуты другие, зависящие от него программы. Это помогает сориентироваться, в том, что ещё нужно сделать для выполнения успешного обновления приложения openSSH, т. е. удовлетворить зависимости

Следует обратить особое внимание на то, что опция —force, для принудительной установки/обновления здесь не помощник — запросто можно сломать приложение. Для того, чтобы заранее узнать, какие зависимости имеются у требуемого приложения, нужно выполнить команду следующего вида:

$ rpm -q --whatrequires openssh
openssh-askpass-2.9p2-7
openssh-askpass-gnome-2.9p2-7
openssh-clients-2.9p2-7
openssh-server-2.9p2-7

Как видно, опция включения запроса -q предписывает выполнить сам запрос с требованием —whatrequires для фразы «openssh», т. е. «определить зависимости приложения openssh», и далее следует логичный вывод. Используя информацию из этого вывода можно скачать файлы нужных зависимостей и установить или обновить их последовательно, используя соответствующие ключи. Для удобства достаточно эти зависимости указать списком:

$ sudo rpm -U openssh-*

Для проверки результата нужно воспользоваться опцией запроса:

$ rpm -q openssh
openssh-2.9p2-12

Этот вывод означает, что в ОС корректно установлен (в результате предыдущих действий) openSSH. Нужно заметить, что для команды необязательно указывать точное название программы  и версий — она правильно распознаёт их и при сокращённой записи их наименований.

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

В дистрибутиве Manjaro установка программ происходит примерно так же, только разница заключается в пакетном менеджере. Так как Manjaro основывается на дистрибутиве Arch, то она унаследовала пакетный менеджер Pacman. Это самый быстрый пакетный менеджер, но помимо этого, в Manjaro так же имеется пользовательский репозиторий AUR, который унаследован все из того же Arch Linux. Как можно понять из названия, AUR это пользовательский репозиторий, в который добавляются программы пользователями, а не разработчиками. Тут стоит отметить, что рекомендуется устанавливать программы именно из официальных репозиториев, а пользоваться репозиторием AUR следует только при крайней необходимости.

Включить AUR можно в Pamac, или как он называется в Manjaro – “Установка и удаление программ”:

Нажимаем на три точки и выбираем пункт “Настройки”:

Далее переходим на вкладку “Сторонние” включаем AUR передвинув ползунок в соответствующем пункте:

Установка программ происходит точно так же как и в выше приведенных дистрибутивах, на вкладке “Установленные” будут отображаться программы, которые установлены у вас в системе. Точно так же программы разбиты на категории, так что поиск можно проводить по категориям программ. Про установку программ в Manjaro из терминала на сайте есть отдельная статья, доступная по этой ссылке, дублировать ее нет смысла.

Публикация репозиториев

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

  • Выполнить публикацию репозитория.
  • Обновить данные в публикации.
  • Настроить веб-сервер nginx.

Начнем с публикации.

Публикация

Для публикации нам потребуется ключ gpg. Если у нас его нет, создаем:

gpg —default-new-key-algo rsa4096 —gen-key —keyring pubring

Real name: pubtest

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

Ключ создан, его можно увидеть командой:

gpg —list-keys

Теперь сделаем первую публикацию:

aptly publish repo test filesystem:pubtest:test

Система запросит пароль для GPG-ключа в отдельном окне.

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

После публикации в каталоге /var/www/aptly/test мы должны увидеть:

ls /var/www/aptly/test

dists  pool

В папке dists метаданные для опубликованных дистрибутивах, pool — загруженные пакеты (в нашем примере симлинки на пул в основном каталоге — /opt/aptly).

Для удобства работы с нашим репозиторием можно опубликовать открытый ключ GPG — он будет необходим для подключения к репозиторию со стороны клиентов. Вводим:

gpg —export —armor > /var/www/aptly/test/pubtest.asc

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

Обновление публикации

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

Синтаксис такой:

aptly publish update <дистрибутив>

Например:

aptly publish update focal filesystem:pubtest:test

Система должна запросить пароль для нашего GPG-ключа.

Также полезно запускать команду со следующими опциями:

aptly publish update -batch -force-overwrite -gpg-key=»${gpgkey}» -passphrase=»${gpgpass}» focal filesystem:pubtest:test

* где:

  • batch — запуск команды без привязки к tty. Нужно для работы команды вне интерактивного контекста.
  • force-overwrite — перезаписать пакеты, при необходимости.
  • gpg-key — идентификатор нашего ключа (смотрим командой gpg —list-keys).
  • passphrase — парольная фраза для gpg-ключа.

Мы теперь можем опубликовать репозиторий и обновить в нем данные. Но для получения доступа по веб, нам нужен веб-сервер.

Настройка NGINX

Для получения доступа к репозиторию по http(s) нам нужно установить и настроить веб-сервер. В данном примере мы рассмотрим простой способ настройки NGINX.

Установка будет немного отличаться для Linux DEB и RPM. Рассмотрим процесс по-отдельности.

а) DEB:

apt update

apt install nginx

б) RPM:

yum install nginx 

NGINX установлен.

После установки веб-сервера, немного сконфигурируем его. Тут тоже процесс отличается для DEB и RPM.

Открываем файл:

а) на deb:

vi /etc/nginx/sites-enabled/default

б) на rpm:

vi /etc/nginx/nginx.conf

Далее процесс схож.

Находим и редактируем строку с директивой root:

root /var/www/aptly

* в нашем примере мы определили корневую директорию для веб-публикаций /var/www/aptly.

Перезапускаем сервис и разрешаем автозапуск nginx:

systemctl restart nginx

systemctl enable nginx

Веб-сервер сконфигурирован.

В нашем примере мы не стали рассматривать процесс настройки https. Но в продуктивной среде правильнее настроить веб-доступ к репозиторию по защищенному каналу. Читайте дополнительно про получение бесплатного сертификата.

Настраиваем брандмауэр, если в нашей системе он используется. Нам нужно открыть порт 80 (и 443, если работаем по https). В зависимости от используемой утилиты управления netfilter, наши действия будут отличаться. Рассмотрим наиболее популярные инструменты — iptables и firewalld.

а) для iptables (как правило, на DEB):

iptables -I INPUT -p tcp —dport 80 -j ACCEPT

iptables -I INPUT -p tcp —dport 443 -j ACCEPT

Для сохранения правил вводим:

apt install iptables-persistent

netfilter-persistent save

б) для firewalld (как правило, на RPM):

firewall-cmd —permanent —add-port=80/tcp

firewall-cmd —permanent —add-port=443/tcp

И для сохранения:

firewall-cmd —reload

Наш сервер готов принимать запросы по http(s). Для проверки открываем браузер и вводим http://<IP-адрес нашего сервер>. Мы должны увидеть список каталогов (или один каталог).

Установка через магазин приложений

Популярный дистрибутив Linux – Ubuntu адаптирован под пользователей, которые не считают себя профессионалами в вопросах компьютерной техники. В данной ОС реализован магазин приложений, в котором легко можно найти необходимую программу всего в одно нажатие мышкой (по аналогии с Mac OS).

ОС Linux

После выпуска Ubuntu эту фишку унаследовали и другие дистрибутивы, в числе которых Fedora, openSUSE, Elementary OS. В последнем случае есть дополнительная особенность в виде нового репозитория с уникальными программами. Его могут наполнять сторонними продуктами все желающие разработчики, которым интересны Open Source продукты. Система самостоятельно распаковывает пакеты с файлами из магазина, они начинают устанавливаться, на рабочем столе появляется ярлык и пользователь может полноценно использовать приложение.

Инструкция по скачиванию программ максимально простая:

  1. Зайти в «Магазин приложений» (может также называться «Менеджер программ», «Центр приложений»).
  2. В верхнем правом углу есть поле для поиска, куда нужно ввести название желаемого приложения.
  3. В результатах поиска найти подходящее ПО и нажать кнопку «Установить».

Больше от пользователя ничего не требуется. Он должен дождаться когда установка приложения в Linux завершится и может приступить к работе.

Интерфейс Центра приложений

Однако стоит отметить и недостаток этого метода. В магазине относительно скромный список программ и некоторых популярных там попросту нет. Соответственно многим пользователям это может принести дискомфорт – они не могут найти важный для себя продукт. К слову, такие популярные вещи как Skype, VS Code и прочие, появились в магазине совсем недавно. Создатели дистрибутива со своей стороны знают об этом недостатке и стараются его устранить.

Защита репозиториев

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

В Ubuntu по умолчанию доверенными являются репозитории на установочных дисках и основные интернет репозитории — archive.ubuntu.com. При наличие на пользовательском компьютере нескольких подключенных репозиториев, предпочтение отдается доверенным.

При подключении репозитория, защищенного цифровой подписью Вам нужно скачать (обычно с ресурса, рассказывающего про этот репозиторий, или с сервера ключей, что является более предпочтительным в любом случае) открытый ключ и добавить его в систему. Иногда для скачивания предоставляется доступный для установки пакет, который в свою очередь при своей установке сам прописывает ключ репозитория. Если вы скачиваете ключ с сайта репозитория, то вы получите обычный файл с расширением .key, .gpg или другим. Добавить его в систему можно так:

sudo apt-key add repo.key

Где — полученный вами ключ репозитория.

Или при помощи графического интерфейса — запустите «Источники приложений» (Система→Администрирование→Источники приложений), перейдите на вкладку «Аутентификация» и нажмите на кнопку «Импортировать файл ключа…» — откроется диалог выбора файла. Выберите файл ключа и нажмите ОК.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0x12345678

Где вместо keyserver.ubuntu.com можно подставить адрес другого сервера ключей, а вместо 12345678 необходимо написать идентификатор нужного вам ключа.

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

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '\{16\}$' | xargs`

1. Как установить пакет с yum

Чтобы установить пакет под названием Firefox, просто запустите приведённую ниже команду, она автоматически найдёт и установит все необходимые зависимости для Firefox.

yum install firefox

Пример вывода:

Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

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

yum -y install firefox

Начальная настройка

Прежде чем начать работать с репозиторием, создадим конфигурационный файл:

vi /etc/aptly.conf

{
  «rootDir»: «/opt/aptly»,
  «downloadConcurrency»: 4,
  «downloadSpeedLimit»: 0,
  «architectures»: [],
  «dependencyFollowSuggests»: false,
  «dependencyFollowRecommends»: false,
  «dependencyFollowAllVariants»: false,
  «dependencyFollowSource»: false,
  «dependencyVerboseResolve»: false,
  «gpgDisableSign»: false,
  «gpgDisableVerify»: false,
  «gpgProvider»: «gpg»,
  «downloadSourcePackages»: false,
  «skipLegacyPool»: true,
  «ppaDistributorID»: «ubuntu»,
  «ppaCodename»: «»,
  «FileSystemPublishEndpoints»: {
    «pubtest»: {
      «rootDir»: «/var/www/aptly»,
      «linkMethod»: «symlink»,
      «verifyMethod»: «md5»
    }
  },
  «enableMetricsEndpoint»: false
}

* для нас важны опции:

  • rootDir — базовая директория для приложения, где будет храниться база репозиториев.
  • FileSystemPublishEndpoints — точка публикации для репозитория. Данную опцию мы рассмотрим подробнее ниже.
    • pubtest — название для точки публикации.
    • rootDir — каталог, в котором должны находить файлы опубликованного репозитория.
    • linkMethod — способ создания копии. Возможны варианты: symlink, copy, hardlink. У каждого метода свои плюсы и минусы. Решение на усмотрение администратора репозитория.

Мы готовы начать работать с aptly.

Обновление системы

Обновление кэша пакетов

В Debian и Ubuntu прежде чем обновлять систему, нужно выяснить, какие обновления доступны в репозиториях. Это так называемое обновление кэша пакетов. Выполняется оно с помощью команды apt-get update или apt update. Пример:

$ sudo apt-get update
$ sudo apt update

При этом команда apt update дополнительно покажет количество пакетов, которые можно обновить и команду с помощью которой можно посмотреть список таких пакетов.

Получаем список возможных обновлений

Если есть пакеты, которые можно обновить, то мы можем посмотреть их с помощью команды apt list –upgradable, а опция -a выводит больше информации. С помощью apt-get это проделать невозможно.

Пример:

$ sudo apt list --upgradable -a

Обновление системы (без возможности удаления пакетов)

Перед обновлением расскажу про зависимости пакетов. Работа некоторых приложений зависит от других приложений или библиотек. Поэтому почти каждый пакет имеет список зависимостей других пакетов. Обычно вручную с зависимостями не работают. Просто пакетные менеджеры (apt или apt-get) при установке определённого пакета также устанавливают пакеты от которых зависит этот пакет.

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

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

Без возможности удаления пакетов вы можете выполнить обновление с помощью команд apt-get upgrade и apt upgrade. Например:

$ sudo apt-get upgrade
$ sudo apt upgrade

Обновление системы (с возможностью удаления пакетов)

Если вы все-таки хотите обновить пакеты и вас не пугает удаление некоторых пакетов, то выполните следующие команды: apt-get dist-upgrade или apt dist-upgrade

Но это более рискованно, так что обратите особое внимание на то, какие пакеты будут удалены. Ведь удаление некоторых пакетов может просто сломать вашу систему

Пример:

$ sudo apt-get dist-upgrade
$ sudo apt dist-upgrade

Sublime Text 3

Sublime Text — кроссплатформенный текстовый редактор кода.

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

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

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

sudo add-apt-repository ppa:webupd8team/sublime-text-3

sudo apt-get update

sudo apt-get install

Подводные камни репозиториев

Первый подводный риф. Не увлекайтесь добавлением сторонних репозиториев, тут срабатывает эмпирически-философское правило «больше сторонних репозиториев — меньше стабильность системы».

Поищите в Центре приложений Ubuntu программу и если не найдёте, только тогда задумайтесь о добавлении стороннего репозитория с нужной вам программой.

Добавление стороннего репозитория — это вопрос доверия. Верите ли вы автору программ в этом репозитории?

Второй подводный риф. При добавлении стороннего репозитория с помощью ppa:бла-бла/блабла-бла вас не коснётся несколько маленьких проблем. Дело в том, что за кулисами ppa прячется получение и добавление криптографических ключей, а так же добавление нужных записей в ваш список репозиториев.

Если строк ppa:бла-бла/блабла-бла в инструкции не будет, вам придётся всё сделать самим: и добавить криптографические ключи и внести нужную строку. Это не сложно, главное помнить версию вашей Ubuntu и знать, что это делается ради вашей компьютерной безопасности.

Помогу на примере. Захотели браузер Опера. Поискали в Центре приложений Ubuntu и на launchpad.net — нет Оперы. Идём на любимый поисковик и что же выдаёт Гугл по запросу repository Opera? Первым результатом видим «The Opera .deb Repository». Переходим на сайт-репозиторий и читаем инструкцию на втором родном английском. Пишут, что нужно создать файл /etc/apt/sources.list.d/opera.list и добавить строку репозитория

deb http://deb.opera.com/opera/ stable non-free #Opera Browser (final releases)

Нам, пользователю, не доступен на запись системный путь /etc/apt/sources.list.d/ и файлы в нём. Жмите на клавиатуре Alt+F2 и пишите команду gksu gedit, которая запустит Текстовый редактор с правами Администратора, если вам будет дозволено. Добавляйте аккуратно нужную строку репозитория, сохраняйте в /etc/apt/sources.list.d/opera.list и выходите из Админского Текстового Редактора. Не сидите часто под Админом, козлёночком станете.

Часто в инструкциях предлагаются различные репозитория в зависимости от вашей версии Ubuntu. Чтобы узнать её, запустите Системный монитор и во вкладке «Система» вы найдёте искомое.

Осталось добавить в свою систему криптографический ключ репозитория, в данном случае Opera, чтобы проверять им подпись у пакетов. В нашем примере, сайт Опера просит выполнить серию команд в Терминале

wget -O - http://deb.opera.com/archive.key | sudo apt-key add -

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

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo apt-get update 2>&1 | grep -o '\{16\}$' | xargs`
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: