Менеджеры пакетов и зависимости
Большинство дистрибутивов Linux используют менеджеры пакетов для установки и удаления программного обеспечения. Менеджеры пакетов предоставляют некоторые преимущества, такие как возможность использования центрального репозитория, из которого (почти) можно загрузить любое программное обеспечение, организация частей программного обеспечения в пакеты, которые могут быть установлены как одна связная группа, и основные преимущества: автоматический обработка зависимостей и отслеживание изменений, вносимых пакетами, чтобы их можно было удалить.
Определенные части программного обеспечения могут требовать, чтобы определенные библиотеки или другие программы выполняли обязанности, которые были бы излишними, если бы они были повторно реализованы в этой части программного обеспечения. Пакеты позволяют выражать эти зависимости.
Отличия: форматы пакетов и стратегии
Существует несколько разных менеджеров пакетов. Каждый был создан потому, что существующие не отвечали потребностям некоторых людей. Каждый менеджер пакетов требует пакетов в своем собственном формате.
Кроме того, разные дистрибутивы имеют разные требования к программному обеспечению, которое включено. Существует ряд программ, которые могут иметь различные возможности в зависимости от параметров, которые предоставляются при его компиляции из исходного кода в исполняемый файл компьютера. Некоторые дистрибутивы хотят предоставить полный набор функций и богатый опыт, в то время как другие хотят предоставить как можно более простой и простой опыт, и между ними есть все. Кроме того, дистрибутив может решить по-разному форматировать свою структуру каталогов или использовать другую систему инициализации. Они могут решить связать программное обеспечение по-разному: может быть пакет под названием «dev-utils» в двух разных дистрибутивах, но одна версия включает в себяyacc
в то время как другой нет. Из-за этих разных потребностей дистрибутивы выбирают компиляцию программного обеспечения по-разному.
Вот почему, даже если у вас есть пакет в правильном формате для вашего менеджера пакетов, он может не работать, если пакет был предназначен для другого дистрибутива. Например, этот пакет может зависеть от yacc
установки, и он выразил эту зависимость через требование пакета «dev-utils», но ваши «dev-utils» не включают yacc
. Теперь установлен пакет с неудовлетворенной зависимостью.
Это на самом деле не проблема.
Большая часть дистрибутива Linux - это поддержка центрального хранилища программного обеспечения. Дистрибутив позаботится о сохранении всего этого для вас. Это на самом деле делает установку программного обеспечения очень простой. Обычно вы используете менеджер пакетов для поиска и выбора некоторых пакетов, а затем говорите им об их установке; он позаботится об остальном для вас. Процесс установки программного обеспечения Windows включает в себя поиск программного обеспечения на сторонних веб-сайтах, попытку найти подходящую ссылку для загрузки, загрузку, проверку на вирусы и запуск программы установки, которая затем задает вам кучу ненужных вопросов. Весь этот беспорядок не является стандартом для Linux.
Хранилище не может включать в себя все
Теперь могут быть случаи, когда требуемая часть программного обеспечения отсутствует в репозитории вашего дистрибутива. Пакеты, предоставляемые репозиторием программного обеспечения, являются одной из отличительных особенностей дистрибутивов. Когда вы не можете найти нужное программное обеспечение в репозиториях вашего дистрибутива, есть три возможных пути (на самом деле, два плюс способ действительно все испортить).
Репозитории Сообщества
Многие дистрибутивы имеют неофициальные репозитории, которые поддерживаются людьми, не связанными с дистрибутивом. Ubuntu называет их PPA, Fedora называет их Fedora People Repositories. Arch Linux не имеет конкретного имени для сторонних репозиториев , но у него есть свой AUR, который представляет собой набор «рецептов» для пакетов (примечание: существует только один AUR). Сначала вы можете попробовать установить пакет из одного из этих источников, поскольку их легко удалить, если они не работают.
Компилировать из источника
Если вы не можете найти неофициальный репозиторий с тем, что вам нужно, компиляция из исходного кода не составит труда. Вам необходимо установить пакет разработки вашего дистрибутива; это включает в себя базовые вещи, такие как компилятор, компоновщик, парсер и другие инструменты, которые обычно необходимы для компиляции программного обеспечения. Затем вы найдете исходный код проекта (который почти всегда упакован в .tgz
или или .tbz
(называется «tarball»)). Загрузите его в свой собственный каталог, извлеките его (используя tar -xf filename.tgz
, и обычно перейдите в тот каталог, который он создал. этот каталог может быть файлом с именем README
или INSTALL
. Если он существует, продолжайте и читайте его; большинство из них говорят вам сделать то же самое. Следующие несколько шагов выполняются в командной строке. Запустите ls
и найдите исполняемый файл с именемconfigure
, Если он существует, запустите его, выполнив ./configure
; иногда это может занять пару минут. Обычно это запускает несколько тестов, чтобы выяснить, как настроен ваш дистрибутив, и убедиться, что у вас есть инструменты, необходимые для компиляции этого программного обеспечения. Следующим шагом является запуск make
. Это фактически компилирует программное обеспечение, и, вероятно, это займет некоторое время - от нескольких минут до часов, в зависимости от размера программного обеспечения, которое вы компилируете. Как только это будет сделано, вы бежите make install
. Это устанавливает программное обеспечение, которое включает в себя копирование продуктов компиляции в соответствующие места в вашей файловой системе. После этого программа становится доступной для использования.
Это был длинный раздел, но он кратко обозначен как «README, ./configure, make, make install» . Это рутина, чтобы помнить.
Установите пакет из другого дистрибутива (не делайте этого)
Я перечисляю это только потому, что это и альтернатива, но это почти наверняка не закончится хорошо. Можно установить пакеты для других дистрибутивов, и вы можете захотеть это сделать. Ну, не надо. Не делайте этого, пока не поймете свою систему очень хорошо. На самом деле, я не собираюсь помещать здесь какие-либо команды, показывающие, как это сделать, даже если это возможно. Если вы дошли до того момента, когда кажется, что это единственный вариант, не устанавливайте пакет с помощью менеджера пакетов; вместо этого вытащите вещи из пакета и поместите их в вашу систему вручную вместе с примечаниями о том, что вы сделали, чтобы вы могли отменить их при необходимости.
Бит командной строки
Некоторые люди предпочитают командную строку за преимущества, которые она дает им. Их можно обобщить в три вещи:
- Простота автоматизации
- Скорость (по сравнению с щелчком повсюду в графическом интерфейсе)
- Выразительность
Самым большим из них является выразительность; Есть вещи, которые можно сделать из командной строки, что невозможно в графическом интерфейсе.
Наконец, инструкции на основе командной строки часто даются на полезных форумах, таких как этот, потому что гораздо проще передать правильную информацию, чем давать инструкции типа «щелкни здесь, потом там».