08 августа 2016

Что такое репозитории и для чего они служат в Linux?

Персональные архивы пакетов или PPA (Personal Package Archives) - это и есть репозиторий (сервер-хранилище).
Репозиторий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети. Репозитории подразделяются на официальные и неофициальные. Большинство дистрибутивов Linux, имеют официальные репозитории.

Официальные репозитории.

Официальные репозитории создаются разработчиками дистрибутива для поддержания в актуальном и безопасном состоянии системы. Если вы откроете в Ubuntu текстовый файл но адресу: /etc/apt/sources.list, то найдёте в нём следующие строки:


Закомментированные строки (строки, перед которыми стоит знак решётки (#), считаются закомментированными), как правило не читаются системой, а служат для пояснения администратору системы (администратор системы - пользователь, который во время установки системы ввёл свой пароль) к действующему официальному репозиторию или той строке, которая раскомментирована (без знака решётки - #) и следует за описанием.

Для управления официальными репозиториями предназначена программа  Программы и обновления (Источники приложений), в вкладке Программное обеспечение Ubuntu:


Все изменения: обновление пакетов программ; изменения в системе безопасности; обновление ядра, исправление ошибок и т.п., внесённые в данные репозитории разработчиками Ubuntu, пользователь получает через штатное обновление дистрибутива - Обновление приложений. Периодически система автоматически просматривает все прописанные в ней репозитории и скачивает новые индексы.


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


Неофициальные репозитории

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

Для чего создаются Собственные (неофициальные) репозитории?

Предположим вы хотите установить дополнительно какую-то программу из Менеджера программ Ubuntu, но в нём более поздняя версия для установки, чем на официальном сайте программы или этой программы просто нет в Менеджере программ, но она существует.
Один из продвинутых пользователей Linux создаёт свой собственный репозиторий с актуальной версией программы, где учтены все зависимости пакета и их совместимость с системными файлами. Специально для создания собственного репозитория создана площадка/ресурс под названием launchpad.net.

Как установить программу из Неофициального репозитория?

Сделать это можно как графически, так и в терминале.

1. Терминальный вариант.

Если вы являетесь новичком или просто обычным пользователем Ubuntu, то скорее всего обратили внимание, что на сайтах подобных Compizomania, установка приложения иногда производится с помощью терминальных команд. Для примера я выбрал установку программы i-nex.
 I-Nex - это программа с графическим интерфейсом, позволяющая посредством вкладок  просмотр информации аппаратных устройствах вашего компьютера, пдкючённых устройствах стационарного компьютера: мышь, клавиатура и т.д., а также об установленной системе, используемом ядре, оперативной памяти и многом другом.


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

sudo add-apt-repository ppa:i-nex-development-team/daily
sudo apt update
sudo apt install i-nex


Разберём эти команды по порядку.

Первая команда sudo add-apt-repository ppa:i-nex-development-team/daily  подключает репозиторий программы (выделено красным), созданный непосредственно разработчиком.

Вторая команда sudo apt update, делает обновление системных файлов.

И третья команда sudo apt install i-nex, служит для непосредственной установки пакета i-nex.

 2. Графический вариант.

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

Прежде всего заходим на launchpad.net, вводим в поиск название программы и нажимаем кнопку Search Launchpad:


Выбираете нужный репозиторий:


Просматриваете совместимость репозитория с вашим дистрибутивом и копируете название репозитория:


Откройте Программы и обновления, вкладка Другое ПО, нажмите кнопку Добавить, в Строку APT вставьте скопированный репозиторий  и Добавить источник:


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


И обновите системные файлы:


Остаётся последнее, установить саму программу:

sudo apt install i-nex

Примечание. Все подключёные Неофициальные репозитории отображаются в приложении Программы и обновления, в вкладке Другое ПО. Независимо от того, как вы их подключали, посредством терминала или графически. А также в папке по адресу: /etc/apt/sources.list.d.



Заключение.

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

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

Но в то же время Неофициальный репозиторий может иметь "подводные камни", которые порой приводят к сбоям в системе.

Отчего это происходит?

1. Прежде всего, несмотря на благие намерения пользователя, создавшего репозиторий, он не всегда может быть компетентен в вопросах совместимости и безопасности создаваемых пакетов в репозитории, что приводит порой к конфликту пакетов и сбою в системе.
2. Создатель собственного (неофициального) репозитория программы может просто забросить свой проект, потешив своё самолюбие, победой над собой. И тогда в последующих версиях дистрибутива вы не сможете устанавливать программы из этого репозитория.

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

Удачи.

30 комментариев :

  1. Очень полезный мануал!
    А синаптик тоже с оф. реп. берет пакеты?

    ОтветитьУдалить
    Ответы
    1. А откуда же еще? Sinaptic это GUI для apt. Со всех реп, какие подключены, с тех и берет. Что с официальных, что с неофициальных.

      Удалить
    2. Я думал только с оф. реп.

      Удалить
  2. Лучше расскажите как в терминале убрать вот это: обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 6 пакетов не обновлено. А то постоянно висит 6 пакетов, стандартная mintUpdate нифига не хочет их обновлять. Как научить увидеть их для обновления?

    ОтветитьУдалить
    Ответы
    1. надо пользоваться синаптиком

      Удалить
    2. В апдейтере минта по умолчанию стоят только безопасные обновления. У них там шкала от 1 до 5 по степени безопасности. Если поставить в настройках везде галочки, то будет ставиться все, что есть.

      Удалить
    3. Поставил все галочки и видно всего три. А где остальные три обновы?

      Удалить
    4. А не проще было сказать команду sudo apt-get dist-upgrade

      Удалить
    5. Тебе и сказали - "sudo apt full-upgrade". Только это для 16.04 дистров, но ты ж не сказал какой у тебя так что...

      Удалить
  3. После установки всякой игровой дребени(решил в танки поиграть на старости лет) ))) Система пишет что нет места. Но места "навалом". Значит ли что лучше всё ставить в "/" без "home" и не заморачиваться. Система сама разберётся.Или не так?

    ОтветитьУдалить
    Ответы
    1. хммм... а что, в хом места нет а в "/" есть? как это так - они на разных дисках что ли? )

      Удалить
  4. добавьте поиск пакетов в лаунчпаде если вы пользуете FF http://mycroftproject.com/search-engines.html?name=Launchpad

    ОтветитьУдалить
  5. Нет. Но на "home" 75,Свободно 3, доступно 6 Гига, На "/" 40, свободно 18. Выводы я делать ещё не научился. Не волшебник однако. Вопрос остался. Чистил и очищался всеми доступными способами. Места нет.Странная ситуация

    ОтветитьУдалить
    Ответы
    1. Многие программы, оставляют свои конфигурационные файлы в папке home и после удаления, так что попробуйте в ручном режиме, но аккуратно чтобы не удалить нужное

      Удалить
    2. как правило самыми большими могут быть конфиги браузеров, так что если часто экспериментировали с ними посмотрите в папках .cache и .config

      Удалить
    3. Александр, Вы так толком и не ответили, у Вас home на отдельном разделе? И запускали ли Вы bleachbit с правами админа, или только от пользователя? Чистили ли кэш пакетов в /var/cache/apt/archives? Если нет, то команда вот такая sudo apt-get clean

      Удалить
    4. P.S. Проверьте стандартные папки вроде ~/Документы, ~/Видео, ~/Загрузки, ~/Изображения, ~/Музыка и т.д., возможно, они у Вас чем-то забиты.

      Удалить
    5. Может айноды закончились

      Удалить
    6. ==Может айноды закончились==

      Не исключено. Когда в системе по какой-то причине (чаще всего из-за ошибки) скопилось аномальное количестко мелких (или вообще пустых) файлов, она не может создавать новые файлы, пока не будут удалены старые, даже если место на диске есть. В таком случае говорят, что в системе "кончились айноды", то есть исчерпан лимит на количество файлов. Возможно, установка "всякой игровой дребени" пошла как-то не так и спровоцировала такую ситуацию.
      Используйте команду df -i чтобы узнать, есть ли свободные айноды. Если в графе "Использовано" увидите 100% на домашнем или системном разделе, дело плохо. Придется гуглить с сети, как найти папку с мусоными файлами, и как ее корректно почистить без того, чтоб все намертво зависло.

      Удалить
  6. Если стоит или была установлена виртуальная машина, тоже место занимает)

    ОтветитьУдалить
  7. Хотел установить i-nex, терминал сказал что у меня "Невозможно исправить ошибки, у вас отложены (held) битые пакеты", перепробовал все, как написано здесь http://compizomania.blogspot.com/2013/05/ubuntu-13041210.html, ничего не помогло. Подскажите как можно это исправить?

    ОтветитьУдалить
    Ответы
    1. Установка i-nex:
      sudo add-apt-repository ppa:i-nex-development-team/daily

      sudo add-apt-repository ppa:gambas-team/gambas3

      sudo apt-get update

      sudo apt-get install i-nex

      Если ранее вы добавили репозиторий ppa:nemh/gambas3. Удалите его и используйте только репозиторий ppa:gambas-team/gambas3.

      Удалить
  8. Eduards спасибо вам за подсказку сколько бился на Linux mint KDE 14.04 не мог установить,а тут все установилось.Спасибо!

    ОтветитьУдалить
  9. sudo apt install i-nex
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
    или же используете нестабильную версию дистрибутива, где запрошенные вами
    пакеты ещё не созданы или были удалены из Incoming.
    Следующая информация, возможно, поможет вам:

    Пакеты, имеющие неудовлетворённые зависимости:
    i-nex : Зависит: gambas3-runtime (>= 3.8.0) но он не будет установлен
    Зависит: gambas3-gb-image (>= 3.8.0) но он не будет установлен
    Зависит: gambas3-gb-qt4 (>= 3.8.0) но он не будет установлен
    Зависит: gambas3-gb-form (>= 3.8.0) но он не будет установлен
    Зависит: gambas3-gb-desktop (>= 3.8.0) но он не будет установлен
    Зависит: gambas3-gb-desktop-x11 (>= 3.8.0) но он не может быть установлен
    E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

    Mint XFCE 17.1

    ОтветитьУдалить
    Ответы
    1. Попробуйте так:
      sudo add-apt-repository ppa:i-nex-development-team/stable
      sudo add-apt-repository ppa:gambas-team/gambas3
      sudo apt update
      sudo apt install i-nex

      Удалить
  10. После установки linux mint 13 мне пришлось удалить ее. Некоторые репозитарии были не существующими и я не смог установить некоторые пакеты. 13 же все еще поддерживается разработчиком, но почему репозитарии были закрыты?

    ОтветитьУдалить