Yellow Leaf

Yellow Leaf


Поиск по сайту


Вход
Правила портала
Регистрация
Забыли пароль?
О команде проекта
Справка по оформлению постов


Последние комментарии к новостям и статьям
Re: Использование нескольких интернет-каналов для повышения надёжности соединения
Re: Доступн для загрузки пакет с играми для Ubuntu Linux - GamePack 9.10.2
Re: Вышла новая версия библиотеки QRemoteSignal
Re: Организация трансляции потока с веб-камеры с помощью ffserver
Re: Общий принтер в локальной сети на Linux
Ещё комментарии >>>


 


Новые файлы
Debian: cue2tracks_0.2.11_all (Дополнение для CUE 2 Tracks v0.2.11)
Gentoo: cue2tracks-0.2.11 (Дополнение для CUE 2 Tracks v0.2.11)
CUE 2 Tracks v0.2.11
Jabber-Shell 20090303
EasySoft AutoRun 0.4.1


Новое на форуме
Движок сайта. версия 2.0
Не получаеться поднять VPN сервер на Ubuntu server 10.04
Нужен логопед, срочно
Словить процесс
проблемы с разделом жесткого диска


Проекты
Jabber-Shell
Qmmp
QStarDict
PHPSAAdmin


Друзья сайта
 Open Kazan - Казанское сообщество пользователей OpenSource 


Посетителей с 08.09.2006

4736741


Внешний вид портала


RSS-Ленты
Новости
Файлы


 

   
  Яндекс цитирования  

«Жёлтый Лист» - cайт о мире юникс
Новости Форум Статьи Файлы Пользователи
   

Использование rpm-пакетов в Gentoo

MooSE 2008-02-15 15:11:10

Эта статья написана для сборника статей о Gentoo по просьбего одного из его авторов - Евгения Батогова a.k.a JohnBat26. Здесь я постараюсь описать возможные способы установки rpm-пакетов в Gentoo. Сразу хочу отметить, что в любом случае лучше всего ставить программы из исходных текстов, используя команду emerge. Использовать же rpm нужно только в самом крайнем случае, когда архив с исходными текстами не доступен (например для коммерческих программ).

Итак. Есть два способа установить rpm-пакет:

  1. Установить в систему менеджер пакетов rpm и пользоваться им.
  2. Написать ebuild для распаковки и установки rpm-пакета.

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

Будем пологать что мы хотим установить в систему пакет prog-0.1.i386.rpm. Независимо от того, какой способ выбран понадобиться утилита rpm:


emerge rpm

Теперь рассмотрим первый способ установки. Для начала полезно просмотреть зависимости пакета:


rpm -qp --qf "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" prog-0.1.i386.rpm

Получаем примерно вот такой список:


/bin/bash
/bin/sh
/bin/sh
/bin/sh
/bin/sh
libX11.so.6
libXext.so.6
libXt.so.6
libc.so.6
libc.so.6(GCC_3.0)
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.2)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libdl.so.2
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libfontconfig.so.1
libfreetype.so.6
libglib-2.0.so.0
libgobject-2.0.so.0
libgtk-x11-2.0.so.0
libm.so.6
libm.so.6(GLIBC_2.0)
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.1)
libpthread.so.0(GLIBC_2.2)
libpthread.so.0(GLIBC_2.2.3)
libpthread.so.0(GLIBC_2.3.2)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

Убеждаемся что всё это у нас есть. Если чего-то не хватает - прикидываем в каком пакете оно может быть и ставим этот пакет. Наконец, когда всё что нужно у нас установлено, устанавливаем сам rpm-пакет:

rpm -Uvh --nodeps prog-0.1.i386.rpm

Всё. Пакет установлен. Однако всё-таки лучше было бы написать для него ebuild. Для работы с rpm-пакетами в portage есть класс rpm. Самый простой способ ознакомиться с ним это прочитать его исходный код, которые расположен в файле /usr/portage/eclass/rpm.eclass. Приведу простой пример ebuild'а для установки rpm:

# Подключаем класс rpm
inherit rpm

# Описываем программу
DESCRIPTION="Cool prog"
HOMEPAGE="http://example.com"
SLOT="0"
KEYWORDS="~x86"
IUSE=""
RESTRICT="nomirror"

# Описываем зависимости
DEPENDS="x11-libs/qt"

# Указываем откуда брать пакет
SRC_URI="http://example.com/files/prog-0.1.i386.rpm"

# Дальше всё будет сделано само. Кроме собственно установки.

# Устанавливаем пакет:
src_install() {
        cp -vR ${S}/* ${D}/
}

Дальше нужно сохранить этот ebuild в нужном месте (обратитесь к документации portage) и выполнить:

ebuild /path/to/file.ebuild digest
ebuild /path/to/file.ebuild merge

Всё. Пакет установлен. Причём штатными средствами Gentoo (что немало важно).

Огромное спасибо пользователю Alex за помощь в написании статьи.

Ключевые слова:gentoo, portage, ebuild, rpm,

Версия для печати


Комментарии:

quadrik 2008-02-15 18:41:20 (*)

Круто! Можно написать ebuild для 1С :) а то приходилось "напрямую" из rpm ставить

[Ответить]


ladm 2008-02-15 21:36:32 (*)

а можно про него по-подробнее? в личку или сюда.. что ставил и как все это работает?

[Ответить]


quadrik 2008-02-16 01:11:34 (*)

работает нормально. написал ebuild для постгреса с патчами от 1С, поставил драйвер для ключа, установил rpm-ы сервера приложений 1С под 64 бита. rpm-ы взял на диске. ориентировался на статью:
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup

[Ответить]


Shlomo 2008-02-17 11:52:57 (*)

Круто! А как собирать пакеты из сорсного rpm? такое вообще возможно?

[Ответить]


quadrik 2008-02-17 12:19:16 (*)

Shlomo, А зачем?

[Ответить]


MooSE 2008-02-17 16:17:01 (*)

Shlomo, можно. Всё тот же класс rpm. Читай его документацию:)

[Ответить]


Содержание*:
=

При копировании материалов с этого сайта ссылка на источник обязательна! Уважайте труд авторов!


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

рублей


Обратная связь


© 2006-2010 Вадим Калинников aka MooSE
Сайт размещён на VPS от Агава


ремонт sharp компания алтуфьево ремонт sharp . Jimm для телефонов nokia и samsung. ICQ для сотового телефона Jimm.