Мой домашний компьютер |
| Главная | Содержание | 1440x900 | О сайте |
Содержание: |
Управлять пакетами стало просто
Автор: Sheng Bao
Оригинал статьи: Package Management Made Easy (Июнь 2006 года) Перевод: Николай Ганенков Материал статьи доступен на условиях Creative Commons License. (by-nc-sa) Содержание:
Многие считают Linux сложной потому, что управление пакетами программ не такое приметивное, как в Windows. В первое время я тоже пытался найти файл, аналогичный setup.exe. Кроме того, когда я использовал RPM, меня очень пугал "кашмар зависимостей пакетов", когда мне предлагали установить какие-то еще пакеты для того, чтобы соблюсти зависимости. Теперь, благодаря кропотливой работе многих энтузиастов открытого кода, мы можем преддложить способ управления программными пакетами получше, чем стиль CNR (click and run - щелкни и запусти), который используется в Windows. Эта статья познакомит Вас с такими инструментами как YUM и APT-GET, предназначенными для приведение в порядок пакетов с программами и другими инструментами для работы с ними. Также упомянем особенности управления пакетами в различных дистрибутивах. Способы распространения программ в LinuxОбычно используют два типа программ для Linux: двоичные исполняемые файлы и скрипты. Небольшие скрипты утанавлить не требуется. Скрипты - это обычные текстовые файлы, предназначенные для интерпретатора, указанного в переменной окружения. Распространение небольших скриптов занятие очень простое: просто копируем их и все. Так что в этой статье под программным обспечением имеются ввиду сложные скрипты и двоичные исполняемые файлы. Так как большинство программ для Linux с открытыми исходными текстами, они распространяются в виде исходного кода. Обычно исходный код содержится в tar.gz или tar.bz2 вместе со скриптом configure. Скрипт configure предоставляет системе такую информацию, как какие библиотеки и заголовочные файлы необходимы, чтобы скомпилировать программу, чтобы сгенерировать файл Makefile. Затем компилятор преобразует исходный код, основываясь на правилах, определенных в Makefile. Как правило существует install, который копирует созданные файлы в конечную директорию. Метод исходного кода слишком сложен для начинающего пользователя. Когда я начинал изучать, всегда сталкивался с такими проблемами, как отсутствие библиотек или неправильный путь. А еще начинающие пользователи обычно не знают смысла сообщений об ошибках, и конечно же, у них недостаточно знаний для того, чтобы их исправить. Например, самой большой ошибкой, которую я сделал, было извлечение исходного кода в раздел FAT32, в котором символические ссылки не поддерживаются. К тому же непросто удалить приложение, если нет правила деинсталляции в Makefile и если Вы не указали отдельный каталог, когда создавали конфигурацию, для того, чтобы отделить свои файлы от остальной системы. Из-за всех этих трудностей, иногда создают пакеты, содержащие двоичные файлы для непосредственной установки. Самыми известными примерами пакетов в двоичном формате являются RPM и DEB. Их легко установить, обновить или удалить. Но проблемы все равно существуют. Возьмем для примера RPM. Проблема зависимости очень сложна. Иногда настолько трудно проверить зависимости, что я или зацикливаюсь или слишком много пакетов нужно установить дополнительно. Таким образом хочется чего-то такого, что сможет справиться с каждой возникающей проблемой, начиная с аккуратной установки и заканчивая обновлением и удалением пакетов программ. Linux - операционная система, которая жестко ориентирована на сеть. Вам надо только подключить компьютер к Internet. Теперь можно попросить менеджер пакетов все сделать за Вас. YUM и APT-GET позволили мне почувстовать, что управление пакетами в Linux сделано проще, чем в Windows. В этой статье внимание будет сосредоточено больше на использовании YUM для Fedora Core, чем на apt-get, потому что YUM более современный, по сравнению с apt-get, который разрабатывался много лет назад. Дальше статья организована следующим образом. Во-первых, я объясню понятие хранилище (репозиторий), которое будет часто упоминаться в этой статье. Затем будет большая часть, рассказывающая об использовании YUM в Red Hat/Fedora Core. Я расскажу о трех способах добавления репозитория: Инсталляция rpm-пакетов, которые содержат всю необходимую информацию, Редактирование /etc/yum.conf и импорт GPG-ключа и Создание нового файла в каталоге /etc/yum.repos.d, соответствующего хранилищу и импорт GPG-ключа. Эта часть будет также содержать информацию и о других хранилищах и одополнительных модулях YUM. В конце этой части будут приведены примеры использования YUM. После этого я объясню, как использовать APT-GET в Red Hat/Fedora Core. Существует множество графических интерфейсов для YUM, которые помогут Вам справиться с пакетами. Два из них обсуждаются в GUI для YUM. Далее следует короткий обзор APT-GET для Debian и его аналогов, и в конце демонстрация возможностей Менеджера пакетовSynaptic. , включенного в Fedora Core 5. О репозиторияхЭта статья познакомит Вас с несколькими методами использования инструментов управления пакетами для получения программ из Интернета и управления ими. Место, откуда мы получаем пакеты называется репозиторий. Ваш дистрибутив наверняка предусматривает доступ к некоторым хранилищам. Но они не могут содержать все доступные программы, которые могут работать с Вашим дистрибутивом. Множество энтузиастов хотели бы "упаковать" программку для Вашего дистрибутива. Если хотите использовать такое программное обеспечение, Вы должны добавить такие URL в Ваш список хранилищ. Также, Ваш дистрибутив может иметь множество зеркал. Если хотите увеличить скорость скачивания, Вы должны вручную добавить ближайшее зеркало в список репозиториев. Использование YUM с Red Hat/Fedora CoreЯ использовал YUM только с Fedora Core 2, 4 и 5.
Этот дистрибутив устанавливает YUM по умолчанию.
Устанавливаем rpm-пакет
Здесь я хочу продемонстрнировать, как добавить два дополнительных
широко известных хранилища пакетов freshrpms и linva, используя rpm.
Следующие команды применимы только для Fedora Core 5. Если Вы используете
другой дистрибутив, обратитесь к ayo.freshrpms.net
и rpm.livna.org, чтобы найти rpm-пакет
соответствующий Вашему дистрибутиву. Располагаются они по аналогичным адресам.
rpm -ivh http://ayo.freshrpms.net/fedora/linux/5/i386/RPMS.freshrpms/freshrpms-release-1.1-1.fc.noarch.rpm rpm -ivh http://rpm.livna.org/fedora/5/i386/livna-release-5-4.noarch.rpmЭти команды добавят freshrpms и livna к Вашему списку репозиториев. Редактирование /etc/yum.conf и импорт GPG-ключаЕсть несколько других способов добавить YUM-репозитории. Один из них - добавить информацию о репозитории в /etc/yum.conf. Здесь http://svn.rpmforge.net/svn/trunk/rpms/yum/ имеется несколько примеров. Вам нужно добавить информацию об репозитории из этого примера в Ваш /etc/yum.conf. Создание нового файла в каталоге /etc/yum.repos.d, соответствующего репозитарию и импортирование его GPG-ключаДругой способ - создать соответствующие файлы в каталоге /etc/yum.repos.d. На моем компьютере этот каталог содержит следующие файлы: [root@orioleQ yum.repos.d]# ls dries.repo fedora-legacy.repo livna.repo fedora-core.repo fedora-updates.repo livna.repo~ fedora-development.repo fedora-updates-testing.repo livna-testing.repo fedora-extras-development.repo freshrpms.repo fedora-extras.repo livna-devel.repo Давайте в качестве примера возьмем dries.repo. Создадим файл
/etc/yum.repos.d/dries.repo [dries] name=Extra Fedora rpms dries - $releasever - $basearch baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/fedora/linux/$releasever/$basearch/dries/RPMS/ enabled=0 gpgcheck=1Обратите внимание, что бит "enabled" в этом файле мы установили в "0" (выключено), так что репозитарий dries не будет конфликтовать с репозитарием RPMForge при автоматическом обновлении. Затем импортируем GPG-ключ из репозитария freshrpms. rpm --import http://freshrpms.net/packages/RPM-GPG-KEY.txtИ выполняя rpm --import http://apt.sw.be/dries/RPM-GPG-KEY.dries.txtимпортируем GPG-ключ для репозитария dries. ДругоеВ мире существует много созданных энтузиастами репозитариев.
Просто найдите их и добавьте в свой список репозитариев.
Здесь я привожу список некоторых хранилищ пакетов
и Вы можете выбрать подходящий источник для своей системы.
rpm --import the.RPM-GPG-KEY.fileчтобы импортировать GPG-ключ. Полезные дополнения YUMСуществует много дополнений, которые могут
оптимизировать работу с YUM, такие как
yum-utils и yum-fastestmirror. yum -y install yum-fastestmirrorи yum -y install yum-utilsчтобы их установить. Они помогут Вам работать с YUM, например, находя самое быстрое зеркало. Применение YUM для установки пакетовУстанавливать пакеты при помощи YUM очень просто. Он проверит и установит все, что необходимо. Это пример сообщений оболочки: [root@orioleQ yum.repos.d]# yum -y install xine Loading "installonlyn" plugin Loading "kernel-module" plugin Loading "fedorakmod" plugin Setting up Install Process Setting up repositories dries [1/5] updates [2/5] core [3/5] freshrpms [4/5] extras [5/5] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for xine to pack into transaction set. xine-0.99.4-4.fc5.rf.i386 100% |=========================| 30 kB 00:01 ---> Package xine.i386 0:0.99.4-4.fc5.rf set to be updated --> Running transaction check --> Processing Dependency: libaa.so.1 for package: xine --> Processing Dependency: libxine.so.1 for package: xine --> Processing Dependency: xine-lib >= 1.0.0 for package: xine --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for xine-lib to pack into transaction set. xine-lib-1.1.1-2.fc5.rf.i 100% |=========================| 41 kB 00:03 ---> Package xine-lib.i386 0:1.1.1-2.fc5.rf set to be updated ---> Downloading header for aalib to pack into transaction set. ftp://fedora.bu.edu/fedora/extras/5/i386/aalib-1.4.0-0.rc5.7.i386.rpm: [Errno 4] IOError: [Errno ftp error] timed out Trying other mirror. aalib-1.4.0-0.rc5.7.i386. 100% |=========================| 5.9 kB 00:00 ---> Package aalib.i386 0:1.4.0-0.rc5.7 set to be updated --> Running transaction check --> Processing Dependency: libdvdcss for package: xine-lib --> Processing Dependency: libfame-0.9.so.1 for package: xine-lib --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for libdvdcss to pack into transaction set. libdvdcss-1.2.9-2.fc5.rf. 100% |=========================| 5.0 kB 00:00 ---> Package libdvdcss.i386 0:1.2.9-2.fc5.rf set to be updated ---> Downloading header for libfame to pack into transaction set. libfame-0.9.1-10.fc5.i386 100% |=========================| 5.2 kB 00:00 ---> Package libfame.i386 0:0.9.1-10.fc5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: xine i386 0.99.4-4.fc5.rf dries 2.3 M Installing for dependencies: aalib i386 1.4.0-0.rc5.7 extras 70 k libdvdcss i386 1.2.9-2.fc5.rf dries 44 k libfame i386 0.9.1-10.fc5 freshrpms 226 k xine-lib i386 1.1.1-2.fc5.rf dries 4.2 M Transaction Summary ============================================================================= Install 5 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 6.8 M Downloading Packages: (1/5): xine-lib-1.1.1-2.f 100% |=========================| 4.2 MB 02:49 (2/5): aalib-1.4.0-0.rc5. 100% |=========================| 70 kB 00:01 (3/5): libdvdcss-1.2.9-2. 100% |=========================| 44 kB 00:01 (4/5): libfame-0.9.1-10.f 100% |=========================| 226 kB 00:28 (5/5): xine-0.99.4-4.fc5. 100% |=========================| 2.3 MB 01:43 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: aalib ######################### [1/5] Installing: libfame ######################### [2/5] Installing: libdvdcss ######################### [3/5] Installing: xine-lib ######################### [4/5] Installing: xine ######################### [5/5] Installed: xine.i386 0:0.99.4-4.fc5.rf Dependency Installed: aalib.i386 0:1.4.0-0.rc5.7 libdvdcss.i386 0:1.2.9-2.fc5.rf libfame.i386 0:0.9.1-10.fc5 xine-lib.i386 0:1.1.1-2.fc5.rf Complete! Использование APT-GET в Red Hat/Fedora CoreКак известно, APT (advanced package tools) есть хороший менеджер программных пакетов, преимущественно используемый в Debian и онованных на Debian дистрибутивах Linux (Ubuntu например). На своем компьютере я установил и Ubuntu 5.10 и Fedora Core 4, потому что иногда я могу установить программу только при помощи apt-get а иногда я могу установить только rpm-пакет. В самом деле, многие платные программы распростроняются в RPM-формате, такие как NI LabVIEW, и оффициально не поддерживаются в другом виде, так что на работе я использую Fedora Core 4. Но удобства apt-get "соблазняют" меня использовать чаще Ubuntu. Я давно приспособил APT-GET к Fedora Core. Существует много мест, откуда можно установить apt-get для дистрибутива RH/FC. Во-первых можно использовать RPM-пакет. Доступен на http://apt.freshrpms.net/. Перейдите в каталог, соответствующий Вашему дистрибутиву и архитектуре CPU. Загрузите все файлы с префиксом "apt-" и установите при помощи команды rpm. В моем случае, я использовал следующие строки. rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-0.5.15cnc7-6.fc4.i386.rpm rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-devel-0.5.15cnc7-6.fc4.i386.rpm Затем Вы должны сконфигурировать "apt". Используя редактор, откройте файл /etc/apt/sources.list . Настраиваем этот файл не так, как принято в Debian. В /Интернет существует много apt - ресурсов для Fedora Core. Я продемонстрирую несколько примеров. Перейдите на http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/. rpm http://ayo.freshrpms.net fedora/linux/2/i386 core updates freshrpmsОткрываем http://apt.kde-redhat.org/apt/sources.list. Копируем строки и добавляем их в свой /etc/apt/sources.list. Затем, для того чтобы обновить список доступных пакетов, выполняем команду "apt-get update". Вы можете также поискать в Интернет ресурсы для apt-get, соответствующие Вашей системе и добавить их в свой /etc/apt/sources.list как я описал. Графический интерфейс YUMЗдесь я хочу упоминуть два графических интерфейса YUM: kyum и Yumex. yum -y install yumex yum -y install kyumТак как пользоваться ими очень легко - просто щелкаем и применяем - я выкладываю только их скриншоты. Пожалуйста, подключитесь к Интернету, когда будете ипользовать эти программы. Kyum:
YumEx: Использование apt-get в Debian и его аналогахЯ не хочу говорить много здесь об этом, так как это очень очень старая тема. В некоторых случаях есть смысл использовать Debian. Так как уже обсуждали, как использовать apt-get в Fedora Core, нет необходимости что-то уточнять дополнительно. Только запомните, не запускайте одновременно много apt-пакетов в менеждерах. Иначе Вы получите ошибку, говорящую E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? В мире существует множество ресурсов для apt-get. Но их скорость различается. Некоторые быстрее, некоторые медленнее. Вам нужно добавить их в свой /etc/apt/sources.list. Как правило предоставляется информация о том, какие строки Вам надо добавить в /etc/apt/sources.list. Synaptic в Debian/UbuntuAPT-GET - хороший инструмент, впервые появившейся в Debian. Но когда хочется просмотреть пакеты по категориям или проверить установлены они или нет, лучше выбрать Synaptic. Когда Вы хотите установить программу, Просто щелкните правой кнопкой мыши по квадратику перед названием программы и выберите "Mark for installation". Для установленных пакетов можно выбрать "mark for reinstall", "mark for removal" или "mark for complete removal". Это скриншоты.Пометить для установки:
Обработка установленного пакета:
Менеджер пакетов Fedora Core 5Fedora Core 5 сама по себе предоставляет простой в использовании графический интерфейс Менеджера пакетов. Пользоваться им проще, чем kyum или Yum. Единственное неудобство в том, что можно применить только с Fedora Core 5. Можно просматривать и отбирать по категориям.
Каждый каталог имеет также дополнительные пакеты. Щелкните по "Optional packages".
Можно воспользоваться поиском.
ОбсуждениеЯ создал страничку со списком ПО, которое я использую в моих исследованиях и учебе. Можете связаться со мной, если у Вас есть новые идеи на эту тему.БлагодарностиI wish to thank the editor, Viktor Horvath, for his careful revision and comments on my draft.And thanks to You Xu, who will be a PhD candidate on Computer Science in WUSTL after this summer vacation (2006). He reviewed my draft and gave me many comments. I also want to thank Ying Huang, an excellent Chinese young lady majoring in Software Engineering, Nanjing University. She encourages me and lets me feel confident when I encounter difficulties. Коллекция URLsЭти ссылки и другие, которые упоминались в этой статье, были работоспособными на момент написания этой статьи (июнь 2006). Возможно некоторые из них теперь не работают.
|
Ссылки: |
| Главная | Содержание | 1440x900 | О сайте |
|
|