Меню Рубрики

Установка deb пакетов slackware

Slackware. Утилита Src2pkg или как не сделать из слаки свалку

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

Набрав в гугле «как собрать программу из исходников» начинающий линуксоид сразу наткнется на известную мантру:
./configure
make
make install
Вот таким вот образом система и превращается в помойку. Вот поставили вы таким образом сотню программ, а теперь попробуйте-ка удалить 50 из них. В лучшем случае вам поможет скачка той же версии исходников, что и установленная программа, ./configure с теми же параметрами, make и только затем make uninstall, и то если разработчик позаботился о деинсталляции своего творения. В худшем случае-ползайте по всем папкам вашей системы и вычищайте руками все файлы, связанные с программой.

И тот, и другой способ нудные, долгие и с кучей нюансов. Поэтому мы будем изучать другой способ установки программ, на примере ОС Slackware 13.

Итак. Для начала спешу всех слаководов обрадовать (и огорчить слаконенавистников). Менеджер пакетов в слаке есть, был и будет есть.

Да, он не такой функциональный как в Debian или Ubuntu, и пакеты там не deb и не rpm. Но кто сказал что это плохо?

Пакет в слаке представляет собой tgz-архив (а также с 13-ой версии еще и txz), состоящий из бинарников и установочного скрипта. Для установки пакета используется команда installpkg, для удаления-removepkg.

UPD: спасибо за замечание kyb27

Поясню принцип рассматриваемого способа установки. У нас есть исходники, из которых мы посредством утилиты src2pkg делаем пакет, который потом устанавливаем через installpkg. Плюсом такого метода установки является то, что в любое время мы можем снести нашу программу командой removepkg.

С теорией закончили, перейдем к практике.

С установкой программы src2pkg проблем быть не должно. Все же поясню на примере (все команды от рута):
mkdir /home/src2pkg
cd /home/src2pkg
wget distro.ibiblio.org/pub/linux/distributions/amigolinux/download/src2pkg/src2pkg-2.2-noarch-3.tgz
installpkg src2pkg-2.2-noarch-3.tgz
Все, утилита установлена.

Теперь попробуем с ее помощью собрать и установить программу mc.
mkdir /home/mc
cd /home/mc
wget —content-disposition www.midnight-commander.org/downloads/40
UPD: за замечание спасибо Toseter.

Теперь читаем маны, конфигуры и прочее, если нам нужны опции компиляции программы. Если нет, то все еще проще.
В моем случае команда для сборки пакета из сорцов имела след. вид:
root@ironnet:/home/mc# src2pkg -e=’—sysconfdir=/etc/mc —without-x —without-edit’ -C mc-4.7.0.4.tar.bz2
где:
-e — опция для компиляции с параметрами
-С — положить созданный пакет в текущий каталог
mc-4.7.0.4.tar.bz2 — файл сорцов

Вывод получается вот какой:
Found source archive: mc-4.7.0.4.tar.bz2
Deleting old build files — Done
Creating working directories:
PKG_DIR=/tmp/mc-4.7.0.4-i486-1
SRC_DIR=/tmp/mc-4.7.0.4-src-1
Unpacking source archive — Done
Correcting source permissions — Done
Checking for patches — None found
Found configure script — Done
Configuring sources using:
LDFLAGS=»-Wl,-L/lib,-L/usr/lib» CFLAGS=»-O2 -m32 -march=i486 -mtune=i686″ ./configure —prefix=/usr —sysconfdir=/etc/mc — -without-x —without-edit —libdir=/usr/lib
Configuration has been — Successful!
Compiling sources — Using: ‘make’
Compiling has been — Successful!
Checking for Makefile rule: ‘install’ Okay
Creating content in JAIL root — Using: ‘make install’
Safe content creation — Successful!
Processing package content:
Correcting package permissions — Done
Stripping ELF binaries — Using: strip -p —strip-unneeded Done
Checking for standard documents — Done
Compressing man pages — Done
Creating slack-desc — From default text
Searching for links in: mc-4.7.0.4-i486-1 — Done
Adding links to doinst.sh — Adding links-creation to the doinst.sh
Deleting symbolic links — Removing links from the package directory
Rechecking package correctness —
Checking for misplaced dirs — Done
Rechecking package permissions — Done
Creating package: mc-4.7.0.4-i486-1.tgz — Done
Package Creation — Successful! Package Location:
/home/mc/mc-4.7.0.4-i486-1.tgz
Пакет готов. Ставим его:
root@ironnet:/home/mc# installpkg mc-4.7.0.4-i486-1.tgz
Verifying package mc-4.7.0.4-i486-1.tgz.
Installing package mc-4.7.0.4-i486-1.tgz:
PACKAGE DESCRIPTION:
# mc
#
# No description was given for this package.
#
# Packaged by src2pkg
Executing install script for mc-4.7.0.4-i486-1.tgz.
Package mc-4.7.0.4-i486-1.tgz installed.
Панели открылись, все в порядке. Поздравляю с успешной установкой.
Для того, чтобы удалить наш пакет, используем команду
removepkg mc-4.7.0.4-i486-1.tgz
Естественно что по истечении какого-то времени мы забудем, какой именно версии у нас mc. Но и здесь есть выход.

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

Которая и вернет нам имя нашего пакета, а заодно и версию mc.
Немного вкусноты напоследок:
программа src2pkg имеет еще много других опций, в том числе и создание пакета из сорцов с предварительным скачиванием последних во временную диру.

UPD: тихо и незаметно обновилась версия программы.

источник

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

Управление пакетами является неотъемлемой частью любого дистрибутива Linux. Программное обеспечение в составе Slackware, как и многие сторонние инструменты, распространяется в виде исходного кода, который может быть скомпилирован, но процесс компиляции тысяч различных приложений и библиотек длителен и скучен. Поэтому многие предпочитают устанавливать уже скомпилированные пакеты программ. Фактически, при установке Slackware основная работа программы setup состоит в обработке списка пакетов инструментами управления пакетами. Далее мы рассмотрим различные инструменты, используемые для работы с пакетами Slackware.

Читайте также:  Установка закладных для откатных ворот

pkgtool

Самый простой способ выполнения задач обслуживания пакетов – вызвать pkgtool(8), управляемый меню интерфейс к другим инструментам. pkgtool позволяет вам установить или удалить пакеты, а также посмотреть содержимое пакетов и список установленных пакетов в удобном интерфейсе ncurses.

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

Установка, удаление и обновление пакетов

Хотя pkgtool лидирует по удобству, installpkg(8) способен справиться с нештатными задачами, такими как быстрая установка пакета, установка целого набора пакетов или создание сценария установки. installpkg принимает список пакетов для установки и устанавливает их без дополнительных вопросов. Как и все инструменты управления пакетами Slackware, он полагает, что вы знаете, что делаете, и не пытается быть умнее вас. В простейшем варианте installpkg просто принимает список пакетов для установки и делает в точности то, что от него ожидалось.

Конечно, можно устанавливать несколько пакетов разом при помощи символов подстановки оболочки. Следующая команда установит со смонтированного CD-ROM серию «N» целиком:

В любое время можно посмотреть список установленных пакетов, получив список файлов каталога /var/log/packages, который содержит не только имена каждого приложения в системе, но и их версии. Чтобы узнать, какие файлы были установлены из этого пакета, посмотрите содержимое, например, при помощи cat:

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

Удаление пакета даже проще установки. Команда удаления, как и ожидалось, removepkg(8). Просто укажите ей, какие пакеты удалить, и removepkg проверит содержимое базы данных и удалит все файлы и каталоги этого пакета с одной оговоркой. Если этот файл входит в несколько установленных пакетов, он будет пропущен, и, если в каталоге есть новые файлы, каталог будет оставлен на месте. Поэтому удаление пакетов дольше, чем их установка.

Наконец, обновление пакета (как вы уже, наверное, догадались) выполняет upgradepkg(8), который сперва устанавливает новый пакет, затем удаляет файлы и каталоги, оставшиеся от прежнего пакета. Нужно запомнить одну важную вещь – upgradepkg не проверяет, что номер версии установленного пакета выше, чем у «нового», поэтому подходит и для установки предыдущих версий.

Всех эти инструменты принимают полезные параметры. Например, —root позволяет installpkg устанавливать пакеты в произвольный каталог. Параметр —dry-run указывает upgradepkg вывести, что им будет предпринято, без фактического внесения изменений в систему. За подробной информацией (как всегда) обратитесь к страницам руководств man.

Форматы сжатия пакетов

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

Стоит подчеркнуть, что расширения .tgz и .txz (если короче, файлы .t?z) общеупотребительные неуникальные расширения для для сжатых файлов .tar. В этом много преимуществ, их легко собрать на почти любой системе UNIX (многие другие форматы пакетов требуют специальных инструментов) и также просто разобрать.

Тем не менее, важно понимать, что хотя все пакеты Slackware являются файлами .t?z, но обратное неверно, не все .t?z файлы являются пакетами Slackware. installpkg не умеет волшебным образом устанавливать произвольные файлы .t?z, только пакеты Slackware.

slackpkg

slackpkg – это автоматизированный инструмент для управления пакетами Slackware. Он впервые был включён в /extra в Slackware-12.1, а начиная с выпуска Slackware-12.2 поставляется в наборе /ap базовой установки.

slackpkg можно использовать для загрузки пакета из Интернет и установки также, как используете installpkg для установки пакетов Slackware из каталога /extra установочного диска. Это особенно полезно для обновлений безопасности или важных обновлений приложений, опубликованных на серверах Slackware, некоторые из которых вы можете захотеть использовать на своей системе.

Без slackpkg процесс мог быть таким:

При помощи slackpkg он сокращается до:

Очевидно, что это упрощает довольно распространённую задачу.

Для использования slackpkg настройте систему на использование зеркала Slackware, отредактировав от root /etc/slackpkg/mirrors . Найдите зеркало, соответствующее версии и архитектуре Slackware, и раскомментируйте его. Этот список зеркал предлагает доступ по HTTP и FTP , но раскомментированным должно быть только одно зеркало.

После выбора зеркала обновите список файлов сервера командой slackpkg update . Это нужно проделывать при выпуске новых пакетов (рекомендуется регулярная проверка журнала изменений Slackware, дополнительную информацию см. в главе 18 «Отслеживание обновлений»).

Для поиска пакета используйте slackpkg search foo , для установки – slackpkg install foo .

После установки пакета при помощи slackpkg, его можно удалить или обновить при помощи pkgtool или других команд управления пакетами как описано в разделе «Установка, удаление и обновление пакетов».

Дополнительную информацию смотрите на страницах руководств man slackpkg(8) и slackpkg.conf(5), а также на вебсайте http://www.slackpkg.org/.

rpm2tgz

Одним из самых распространённых форматов пакетов программ для Linux является RPM; нередко разработчики предлагают свои приложения для загрузки только как исходный код или файл RPM. В этом случае у вас есть три варианта:

Сборка из исходного кода или создание собственного пакета Slackware обычно не столь сложно, как можно подумать, а установка прямо из исходного кода не рекомендуется из-за отсутствия простого способа отслеживания того, что было установлено в систему после выполнения команды make install . Создание пакетов Slackware выходит за рамки настоящей главы. Остаётся использование полезной утилиты rpm2tgz.

rpm2tgz преобразует пакет RPM в пакет Slackware, который затем может быть установлен при помощи pkgtool или installpkg. Это, с одной стороны, избавляет от сборки собственного пакета Slackware, а с другой – предоставляет возможность удалять, обновлять и отслеживать установленное.

Читайте также:  Установка php pear linux

Чтобы попробовать rpm2tgz, загрузите из доверенного источника файл RPM и сконвертируйте его:

Результатом будет файл .tgz, поэтому оригинальный RPM после преобразования может быть удалён. Для установки только что полученного пакета Slackware используйте installpkg, равно как для установки всех других пакетов, необходимых приложению для работы.

Навигация по главам

Предыдущая глава: Основные сетевые утилиты

источник

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

Содержание

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

В Ubuntu, как и в других операционных системах, есть понятие зависимостей. Это значит, что программу можно установить, только если уже установлены пакеты, от которых она зависит. Такая схема позволяет избежать дублирования данных в пакетах (например, если несколько программ зависят от одной и той же библиотеки, то не придётся пихать эту библиотеку в пакет каждой программы — она поставится один раз отдельным пакетом). В отличие от, например, Slackware или Windows, в Ubuntu зависимости разрешаются пакетным менеджером (Synaptic, apt, Центр приложений, apt-get, aptitude) ­— он автоматически установит зависимости из репозитория. Зависимости придётся устанавливать вручную, если нужный репозиторий не подключен, недоступен, если нужного пакета нет в репозитории, если вы ставите пакеты без использования пакетного менеджера (используете Gdebi или dpkg), если вы устанавливаете программу не из пакета (компилируете из исходников, запускаете установочный run/sh скрипт).

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

Репозиторий — место централизованного хранения пакетов программного обеспечения. Использование репозиториев позволяет упростить установку программ и обновление системы. Пользователь волен выбирать, какими репозиториями будет пользоваться, и даже может создать собственный. Список используемых репозиториев содержится в файле /etc/apt/sources.list и в файлах каталога /etc/apt/sources.list.d/ , проще всего его посмотреть через специальное приложение, которое можно вызвать через главное меню: Система→Администрирование→Источники Приложений, или через Менеджер пакетов Synaptic.

Если вы не добавляли локальные репозитории (например, CD/DVD диски), то для установки программ из репозиториев вам понадобится интернет.

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

С использованием графического интерфейса

Выберите Система → Администрирование → Менеджер пакетов Synaptic и получите более функциональный инструмент для работы с пакетами. В частности вы можете например устанавливать программы частично, если вам, например, не нужна документация или еще что-то. Запустите программу Менеджер пакетов Synaptic Система→Администрирование→Менеджер пакетов Synaptic. По запросу введите свой пароль. В запустившейся программе нажмите кнопку «Обновить», подождите, пока система обновит данные о доступных программах.

В списке доступных программ сделайте двойной клик на нужной программе (либо клик правой кнопкой — пункт «Отметить для установки»). После того, как все нужные программы помечены для установки, нажмите кнопку «Применить». Подождите, пока необходимые пакеты будут скачаны и установлены. Схожие функции выполняет программа «Установка и удаление приложений» её можно легко найти в меню Приложения→Установка/удаление…

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

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

Запустите терминал. Обновить данные о доступных в репозиториях программах можно командой:

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

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

Если потребуется — ответьте на задаваемые вопросы (для положительного ответа нужно ввести Y или Д). Программа будет установлена, если она уже установлена — она будет обновлена.

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

Для поиска программы в списке доступных пакетов воспользуйтеcь командами:

где keyword — название программы, часть названия программы или слово из её описания.

Установка определенной версии пакета

Ищем нужную версию пакета:

Устанавливаем нужную версию пакета:

Установка из deb-пакета

Если нужной программы нет в основном репозитории, и у автора программы нет своего репозитория, либо если репозитории недоступны (например, нет интернета), то программу можно установить из deb-пакета (скачанного заранее/принесённого на USB накопителе/…). Если deb-пакет есть в официальном репозитории, то его можно скачать с сайта http://packages.ubuntu.com. Часто deb-пакет можно скачать с сайта самой программы. Можно также воспользоваться поиском на сайте http://getdeb.net. Минус такого подхода — менеджер обновлений не будет отслеживать появление новых версий установленной программы.

Читайте также:  Установка козырька при утеплении лоджии

С использованием графического интерфейса

Перейдите при помощи Nautilus в папку, где находится deb-пакет, откройте свойства файла (правая клавиша → Свойства), во вкладке «Права» разрешите выполнение файла (галочка у «Разрешить исполнение файла как программы»). Далее закрываем свойства файла, и по двойному щелчку Nautilus предложит нам открыть код или выполнить файл. Запускаем. Либо возможно это сделать специальным установщиком GDebi (установить можно из Центра приложений, вписав в поиск GDebi, либо вписав в командную строку:

После установки запускаем deb-пакет с помощью установщика программ GDebi все, что от вас потребуется — это просто нажать кнопку «Установить пакет».

Возможные ошибки

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

Запустите терминал (Меню: Приложения — Стандартные — Терминал). Установка выполняется с помощью программы dpkg

Нужно будет ввести свой пароль. Не забывайте, что при вводе в терминале пароль не отображается. Заметьте, что при использовании dpkg нужно ввести полное имя файла (а не только название программы). Прочитайте, что dpkg выводит в терминал — там будет либо сообщение об успешной установке, либо описание ошибки (например, неудовлетворённые зависимости). Можно одной командой установить сразу несколько пакетов, например, следующая команда установит все deb-пакеты в директории:

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

Запрет обновления пакета

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

Через dpkg

имя пакета берется из команды, которой вы ставили этот пакет. Чтобы разрешить обновлять делаем так:

Через apt

Здесь все проще. Чтобы заблокировать пакет:

Чтобы разблокировать пакет:

Установка программ с собственным инсталлятором из файлов sh, run

Иногда программы могут распространяться с собственным инсталлятором. Это ничем не отличается от ситуации в Windows. Только здесь, распаковав tar.gz архив с дистрибутивом программы, вы вместо setup.exe увидите что-то наподобие install.sh. Это заранее собранный пакет ПО, который оформлен в виде скрипта или бинарника, он берёт на себя работу по размещению файлов в нужных местах и прописыванию нужных параметров. При этом пропадает возможность управлять таким ПО с помощью пакетного менеджера. Пользоваться такими пакетами нежелательно, но если выбора нет, то переходим в директорию с файлом, например:

Разрешаем выполнять этот файл:

Иногда программу можно установить и без прав суперпользователя (без sudo ), но это, скорее, исключение.

Иногда дистрибутив программы распространяется в виде самораспаковывающегося архива. В таком случае это будет просто один единственный файл .sh который и нужно запустить. Дальше вы просто получите мастер где нужно будет ответить на ряд вопросов, так же как это делается в Windows. Так устанавливаются официальные драйверы nVidia, ATI, среда разработчика NetBeans и т.п.

Есть программы, которые не нуждаются в инсталляции и распространяются в виде обычного архива tar.gz, который просто достаточно куда-то распаковать. В Windows также есть такие программы, их еще часто называют словом Portable. Устанавливать такие программы не требуется, достаточно распаковать в любое место, но стандартное место обычно — это каталог /opt. Конечно, пункты на запуск в меню вам придется добавлять вручную, для этого нужно щелкнуть правой кнопкой по заголовку меню Программы и выбрать Правка меню.

Установка из исходников

Если для вашей системы нигде нет deb-пакетов, то программу можно собрать (скомпилировать) самому из исходных кодов, которые можно скачать на официальном сайте любой Open Source программы либо из source-репозитория дистрибутива.

Я рекомендую по возможности избегать этого способа установки программ. Основное, что вам понадобится — это средства для компиляции, для этого сначала нужно установить пакет build-essential. Дальше, нужно распаковать архив с кодами программы в какую-то временную папку. Потом нужно найти файл README или INSTALL, прочитать его и выполнить то, что там написано. Чаще, установка программ таким способом ограничивается последовательным выполнением следующих команд:

Но в некоторых случаях могут быть отличия. Кроме того, после выполнения скрипта ./configure вы можете получить сообщение о том, что в системе не установлено библиотек нужных для компиляции программы. В таком случае нужно будет установить их самому и повторить процесс. Обычно процесс компиляции занимает определенное время и напрямую зависит от мощности вашего компьютера.

Вот так. Желательно, конечно, по возможности избегать установки программ не с помощью deb-пакетов, то есть другие способы не рекомендуются. Однако их нужно знать, чтобы не запутаться в потоке информации.

Автоматическая установка зависимостей при сборке из исходников

Такой тип установки лучше чем просто ./configure && make && make install, и подходит для установки программ отсутствующих в репозиториях.

Переходим в папку с распакованными исходниками и командуем:

Команда auto-apt сама доставит необходимые пакеты для сборки, и позволит задавать меньше вопросов.

Создание deb пакета для более простой работы в дальнейшем, (установка, удаление, и прочее):

источник

Добавить комментарий

Adblock
detector