Установка mc, порты, пакеты

 
 
 
 
 
 
 
 

                                              
 

КОНТРОЛЬНАЯ РАБОТА

Дисциплина  «Сетевые информационные технологии»

    Тема  «Установка mc, порты, пакеты» 
     
     
     
     
     
     
     
     
     

 

СОДЕРЖАНИЕ

 

1 Установка MC

     Midnight Commander – один из файловых менеджеров.

     По своему виду Midnight Commander напоминает Norton Commander. Очень удобная программа для работы с файлами.

     Собственно, установка происходит следующим  образом:

      

     1. Идём в порты

     cd /usr/ports/misc/mc

     2. Запускаем конфигурацию

     make config

       

     3. Устанавливаем

     make install clean

     4. Если всё установилось без  ошибок, набираем в командной  строке rehash и запускаем его командой mc.

     Для того, чтобы всё установилось требуется, чтобы в системе были установлены следующие программы:

gamin 
gettext 
gio-fam-backend 
glib 
gmake 
libiconv 
librarylibtool 
mc 
pcre 
perl 
pkg-config 
python

     При установке из портов, отсутствующие  программы сами вытянутся из Интернет.

     2. Если у компьютера есть подключение  к Интернет, то для установки можно использовать пакеты, которые лежат на сервере FreeBSD командой:

     pkg_add -K -rf mc

     Это нечто, напоминающее yum в операционной системе CentOS. Ключ -K скачает пакет  на компьютер, а -rf это ключи, что  устанавливается из репозитория и показывать процесс установки.

 

2 Установка  приложений: порты  и пакеты

 

     ПО для FreeBSD поставляется в двух видах "дистрибутивов" - пакет и порт. Оба этих понятия появились, чтобы облегчить и автоматизировать процесс установки программы в системе.

     Пакет - это вроде как уже откомпилированный бинарник. Из себя представляет единственный Файл, оканчивающийся на .tbz.

     Порт - это "суповой наборчик" исходников и конфигурационных скриптов, предназначенный для полностью автоматической компиляции и установки на целевой машине. Из себя представляет папку с конфигурационными файлами Makefile, distinfo, pkg-descr, pkg-plist, /files, а также файл архива, который следует перед запуском make положить в папку /usr/ports/distfiles. Процедура установки порта по времени на порядки дольше, чем установка пакета, поскольку вовлекает процесс компиляции.

     Преимущества  пакетов

  • Сжатый tar-архив обычно меньше, чем сжатый tar-архив, содержащий исходный код приложения.
  • Пакеты не требуют никакой дополнительной компиляции. Для таких больших приложений, как Mozilla, KDE или GNOME, это может быть важно, в частности, если вы работаете на медленной системе.
  • Пакеты не требуют понимания процесса компиляции программного обеспечения во FreeBSD.

     Преимущества  портов

  • Пакеты обычно компилируются с консервативными параметрами, потому что они должны работать на максимальном количестве систем. При установке из порта вы можете изменять параметры компиляции для того, чтобы (к примеру) генерировался код, специфичный для процессора Pentium IV или Athlon.
  • Некоторые приложения имеют опции времени компиляции, связанные с тем, что они могут или не могут делать. К примеру, Apache может быть настроен с широким набором различных опций. При построении из порта вы можете не принимать параметры по умолчанию, и задать их самостоятельно.

     В некоторых случаях для одного и того же приложения будут иметься  несколько пакетов для указания конкретных настроек. Например, Ghostscript имеется как пакет ghostscript и как пакет ghostscript-nox11, в зависимости от того, установили вы сервер X11 или нет. Такой тип грубой настройки возможен при использовании пакетов, но быстро становится недостижим, если приложение имеет более одного или двух параметров компиляции.

  • Условия лицензирования некоторых дистрибутивов программного обеспечения запрещает распространение в двоичном виде. Они должны распространяться в виде исходного кода.
  • Некоторые не доверяют дистрибутивам в двоичном виде. При использовании исходного кода вы (по крайней мере теоретически) можете прочесть его и попытаться найти потенциальные проблемы самостоятельно.
  • Если у вас есть собственные патчи, вам нужен исходный код для того, чтобы их применять.
  • Некоторым нравится иметь исходный код, чтобы его можно было просматривать и править, заимствовать из него (конечно, при разрешающем это лицензионном соглашении) и тому подобное.

2.1 Установка пакета

     Для установки пакетов программного обеспечения для FreeBSD из локальных  файлов или с сервера в сети вы можете использовать утилиту pkg_add(1). 

     Загрузка  пакета вручную и  его локальная  установка

     # ftp -a ftp2.FreeBSD.org

     Connected to ftp2.FreeBSD.org.

     220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.

     331 Guest login ok, send your email address as password.

     230-

     230-     This machine is in Vienna, VA, USA, hosted by Verio.

     230-         Questions? E-mail [email protected].

     230-

     230-

     230 Guest login ok, access restrictions apply.

     Remote system type is UNIX.

     Using binary mode to transfer files.

     ftp> cd /pub/FreeBSD/ports/packages/sysutils/

     250 CWD command successful.

     ftp> get lsof-4.56.4.tgz

     local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz

     200 PORT command successful.

     150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).

     100% |******************************************| 92375       00:00 ETA

     226 Transfer complete.

     92375 bytes received in 5.60 seconds (16.11 KB/s)

     ftp> exit

     # pkg_add lsof-4.56.4.tgz

 

     Если  нет исходных текстов локальных  пакетов (например, набор CD-ROM с FreeBSD), то проще всего, наверное, воспользоваться опцией -r для pkg_add(1). Это приведёт к тому, что утилита автоматически определит правильный формат объектных файлов и релиз, а затем загрузит и установит пакет с сервера FTP.

 

     # pkg_add -r lsof

 

     В примере выше нужный пакет будет  загружен и установлен без всякого  дополнительного взаимодействия с  пользователем. Если вместо основного  сайта указать другое зеркало  пакетов FreeBSD, то для переопределения  используемых по умолчанию значений вам необходимо задать соответствующим образом значение переменной PACKAGESITE. Для загрузки файлов утилита pkg_add(1) использует функцию fetch(3), которая принимает во внимание различные переменные окружения, включая FTP_PASSIVE_MODE, FTP_PROXY и FTP_PASSWORD. Если вы находитесь за сетевым экраном или для работы с FTP/HTTP необходимо использовать прокси, то определите соответствующие переменные. Обратитесь к справочной странице по fetch(3) для получения полного списка переменных. Заметьте, что в примере выше вместо lsof-4.56.4 используется lsof. При использовании функций загрузки с сети номер версии в имени пакета должен быть опущен. Утилита pkg_add(1) автоматически загрузит последнюю версию приложения.

     Файлы пакетов распространяются в форматах .tgz и .tbz. Каждый CD из комплекта FreeBSD на 4 дисках содержит пакеты в каталоге /packages. Расположение пакетов похоже на то, как организовано дерево /usr/ports. Каждая категория имеет собственный каталог, и каждый пакет помещается в каталог All.

     Структура каталогов системы пакетов соответствует  структуре системы портов; они  взаимодействуют друг с другом для  формирования единой системы пакетов/портов.

2.1.1 Управление пакетами

 

     pkg_info(1) является утилитой для вывода списка и описаний различных установленных пакетов.

     # pkg_info

     cvsup-16.1          A general network file distribution system optimized for CV

     docbook-1.2         Meta-port for the different versions of the DocBook DTD

     ...

 

     pkg_version(1) является утилитой для вывода отчёта о версиях всех установленных пакетов. Она сравнивает версию имеющегося пакета с текущей версией, находящейся в дереве портов.

     # pkg_version

     cvsup                        =

     docbook                    =

     ...

 

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

 
Символ      Значение
     = Версия установленного пакета соответствует версии, находящейся  в локальном дереве портов.
     < Установленная версия старее, чем та, что имеется  в дереве портов.
     > Установленная версия новее чем та, что есть в дереве портов. (Скорее всего, локальное дерево портов устарело.)
     ? В индексном  файле портов установленный пакет  не может быть найден. (Это может  случиться, например, если установленный  порт был удалён из Коллекции Портов или переименован.)
     * Имеется несколько версий пакета.

Для удаления ранее  установленных пакетов с программным  обеспечением используйте утилиту  pkg_delete(1).

# pkg_delete xchat-1.7.1

 

     Вся информация о пакете хранится в каталоге /var/db/pkg. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога.

2.2  Установка портов

     Когда речь заходит о Коллекции Портов, то первым делом надо понять, что именно подразумевается под словом ''скелет''. По сути скелетом порта является минимальный набор файлов, который указывает вашей системе FreeBSD, как корректно откомпилировать и установить программу. Скелет каждого порта включает:

  • Makefile. Makefile содержит различные директивы, которые определяют, как приложение должно быть откомпилировано и куда в вашей системе оно должно быть установлено.
  • Файл distinfo. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе для успешной сборки порта, и их контрольные суммы, для проверки при помощи md5(1) того, что файлы в процессе загрузки не были повреждены.
  • Каталог files. Этот каталог содержит патчи, использование которых необходимо для компиляции и установки программы в вашей системе FreeBSD. Патчи - это, как правило, маленькие файлы, в которых содержатся изменения, которые нужно внести в какой-то конкретный файл. Патчи также называются ''diff-файлами'' или просто ''диффами'', потому что они генерируются программой diff(1).

     Этот  каталог также может содержать  другие файлы, используемые для построения порта.

  • pkg-descr. Это более подробное, зачастую многострочное описание программы.
  • pkg-plist. Это список всех файлов, которые будут установлены портом. В нем также содержатся указания системе портов на удаление определенных файлов во время удаления порта.

     В некоторых портах присутствуют и  другие файлы, такие, как pkg-message. Система портов использует эти файлы для обработки особых ситуаций.

     В порт включаются инструкции относительно того, как выполнять построение из исходного кода, но не сам код. Исходный код программы, в каком бы то виде он ни был, называется ''дистрибутивным'' (distfile).

     Для установки портов нужно войти в систему как пользователь root.

2.2.1 Установка портов на FreeBSD из архива

 

     Если  была выбрана установка FreeBSD в режиме MINIMAL, и не было установлено дерево портов, то нужно его установить. Для установки требуется сначала скачать архив ports.tar.gz c ftp://freebsd.org. Скачивать надо порты имеющие статус stable. Это значит, что все зависимости учтены и не получится так, что потребуется какой-нибудь архив не присутствующий на ресурсах в Интернет.

     Для закачивания архива на сервер, с  рабочей станции Windows нам потребуется  специальная программа, которая  может по SSH заливать файлы. Тут я  знаю две программы.

     1 - SSH Security Shell

     2 - WinSCP

     Заливаем  с помощью вышеказанных программ архив в каталог /usr. Заходим в каталог /usr и запускаем распаковку этого архива:

     cd/usr

     tar zxvf ports.gz

     После того, архив распакован, можно начинать устанавливать программы. Например, для того, чтобы начать работать с операционной системой лучше установить Midnight Comander. Для этого в консоли набираем:cd /usr/ports/misc/mc [Enter].

     Далее набираем: make config [Enter]

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

     После кофигурирования начинаем установку: make install [Enter] и собственно, завершением всего будет очистка: make clean[Enter].

     То  есть получается всё так:

     make config

     make install

     make clean

     Если  порт надо удалить, то можно воспользоваться  либо pkg_delete предварительно вывести список командой pkg_info, или если в лом удалять все зависимости, а приложение надо переставить, то make deinstall.

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

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

2.2.2 Установка портов с CD-ROM

 

     Официальные образы CD-ROM Проекта FreeBSD больше не содержат дистрибутивные файлы. На них есть достаточно места, которое лучше использовать для предкомпилированных пакетов. Продукты на CD-ROM, такие, как FreeBSD PowerPak, включают дистрибутивные файлы, и вы можете заказать их от таких поставщиков, как FreeBSD Mall.

     Вставьте CD-ROM с FreeBSD в привод. Смонтируйте  его в каталог /cdrom. (Если используете другую точку монтирования, то задайте make-переменную CD_MOUNTPTS.) Чтобы начать установку, перейдите в каталог с нужным вам портом:

 

     # cd /usr/ports/sysutils/lsof

 

     Оказавшись  в каталоге lsof, вы увидите структуру порта. Следующим шагом является компиляция, или построение (''build'') порта. Это выполняется простой выдачей команды make в ответ на приглашение командного процессора. Как только вы это сделаете, то увидите вывод команды, выглядящий примерно так:

 

     # make

     >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.

     >> Attempting to fetch from file:/cdrom/ports/distfiles/.

     ===>  Extracting for lsof-4.57

     ...

     [вывод  команды при распаковке опущен]

     ...

     >> Checksum OK for lsof_4.57D.freebsd.tar.gz.

     ===>  Patching for lsof-4.57

     ===>  Applying FreeBSD patches for lsof-4.57

     ===>  Configuring for lsof-4.57

     ...

     [вывод  команды при конфигурации опущен]

     ...

     ===>  Building for lsof-4.57

     ...

     [вывод  команды при компиляции опущен]

     ...

     #

 

     Заметьте, что как только компиляция закончится, вы снова вернётесь к приглашению  вашего командного процессора. Следующим шагом является установка порта. Чтобы это сделать, нужно просто добавить одно слово к команде make, а именно слово install:

 

     # make install

     ===>  Installing for lsof-4.57

     ...

     [вывод  команды при установке опущен]

     ...

     ===>   Generating temporary packing list

     ===>   Compressing manual pages for lsof-4.57

     ===>   Registering installation for lsof-4.57

     ===>  SECURITY NOTE:

           This port has installed the following binaries which execute with

           increased privileges.

     #

 

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

2.2.3 Установка портов из Интернет

 

     Установка порта из Интернет производится точно  так же, как если бы вы делали её с CD-ROM. Единственным отличием между ними является тот факт, что дистрибутивный файл загружается из Интернет, а не считывается с CD-ROM.

     Выполняются те же самые шаги:

 

     # make install

     >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.

     >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.

     Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%

     439860 bytes transferred in 18.0 seconds (23.90 kBps)

     ===>  Extracting for lsof-4.57

     ...

     [вывод  команды при распаковке опущен]

     ...

     >> Checksum OK for lsof_4.57D.freebsd.tar.gz.

     ===>  Patching for lsof-4.57

     ===>  Applying FreeBSD patches for lsof-4.57

     ===>  Configuring for lsof-4.57

     ...

     [вывод  команды процесса конфигурации  опущен]

     ...

     ===>  Building for lsof-4.57

     ...

     [вывод  команды компиляции опущен]

     ...

     ===>  Installing for lsof-4.57

     ...

     [вывод  команды процедуры установки опущен]

     ...

     ===>   Generating temporary packing list

     ===>   Compressing manual pages for lsof-4.57

     ===>   Registering installation for lsof-4.57

     ===>  SECURITY NOTE:

           This port has installed the following binaries which execute with

           increased privileges.

     #

 

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

     Для загрузки файлов система портов использует утилиту fetch(1), которая принимает во внимание различные переменные окружения, включая FTP_PASSIVE_MODE, FTP_PROXY и FTP_PASSWORD. Если вы находитесь за сетевым экраном или для работы с FTP/HTTP вам необходимо использовать прокси, то определите соответствующие переменные. Обратитесь к справочной странице по fetch(3) для получения полного списка переменных.

     Пользователям, которые не могут быть постоянно  подключены к сети, поможет команда make fetch. Просто запустите эту команду в каталоге самого верхнего уровня (/usr/ports), и требуемые файлы будут загружены. Эта команда будет работать также и с вложенными категориями, например: /usr/ports/net. Заметьте, что если порт имеет зависимости от библиотек или других портов, то он не будет также загружать дистрибутивные файлы этих портов. Замените fetch на fetch-recursive, если вы хотите выполнить загрузку также и всех этих зависимостей порта.

 

      Список использованной литературы

    1. Установка MC на FreeBSD [электронный ресурс], http://www.miklushov.spb.ru/index.php/установка-mc-на-freebsd/
    1. Руководство FreeBSD. Проект Документации FreeBSD
    1. FreeBSD: пакеты и порты [электронный ресурс], http://microsin.ru/content/view/477/43/
    1. FreeBSD [электронный ресурс],  http://break-people.ru/cmsmade/index.php?page=unix_freebsd
Установка mc, порты, пакеты