Конференция работает на сервере Netberg

Radeon.ru

Конференция Radeon.ru

Страница 1 из 1 [ Сообщений: 4 ]  Версия для печати [+]
Показать сообщения за  Поле сортировки  
Некоторые программы которые всем часто нужны лучше собирать самому а не использовать готовые RPM пакеты.
Например Mplayer — в готовых RPM пакетах он собран не со всеми кодеками, а также иногда без поддержки enca ( этот пакет нужен для автоматического подбора кодировки шрифта внешних субтитров — например для просмотра аниме )
Также чтобы использовать свежий wine — его нужно собирать самому.
Перед сборкой Mplayer и wine нужно установить драйвер для видеокарты.

И вот какие проблемы возникают при сборке программ из исходников:
О некоторых вещах нигде не говорилось — и я хотел про них написать и обсудить их.
Собирая из исходников очень часто возникает проблема что нужны какие нибудь библиотеки по зависимостям.
Но может возникнуть проблема что собранные программы не видят друг друга.
Например я уже поставил библиотеку которая нужна для удовлетворения зависимости а — программа сообщает что не видит по прежнему эту библиотеку.
Поэтому я всегда собираю программы с ключами указания директорий установки —
./configure --libdir=/usr/lib --bindir=/usr/bin
make
make install
таким образом программы будут ставиться в одни директории ( вернее библиотеки и исполняемые файлы )

Также при сборке Mplayer и wine возникает проблема что эти программы собираются без поддержки alsa — драйвера для звуковой карты. Хотя драйвер alsa установлен и звуковая карта работает.
То есть видимо Mplayer и wine просто не видит директорий alsa.
Я решаю это таким образом:
ставлю пакеты alsa:
alsa-driver-1.0.18rc1.tar.bz2
alsa-firmware-1.0.17.tar.bz2
alsa-lib-1.0.17a.tar.bz2
alsa-oss-1.0.17.tar.bz2
alsa-plugins-1.0.17.tar.bz2
alsa-plugins-1.0.18rc2.tar.bz2
alsa-tools-1.0.17.tar.bz2
alsa-utils-1.0.17.tar.bz2
alsa-utils-1.0.18rc2.tar.bz2
pyalsa-1.0.17.tar.bz2

собираю их с ключами
./configure --libdir=/usr/lib --bindir=/usr/bin
make
make install

скачать пакеты alsa можно отсюда:
http://www.alsa-project.org/main/index.php/Main_Page
я назвал некоторые две версии пакетов alsa — потому что какая то версия ставиться а какая то нет — но одна из двух версий пакетов ставиться точно.

Поставив alsa можно быть уверенным что Mplayer и wine соберутся с поддержкой alsa
( проверено для систем Fedora 8 и Mandriva 2008 )
Также анимешникам может понадобиться поддержка пакета enca
( он нужен для автоматического определения кодировки шрифта внешних субтитров )
( без этого пакета субтитры будут отображаться некорректно )
В fedora 8 нужно установить для 64 битной версии пакеты:
enca-1.9-3.fc6.i386.rpm
enca-1.9-3.fc6.x86_64.rpm
enca-devel-1.9-3.fc6.i386.rpm
enca-devel-1.9-3.fc6.x86_64.rpm
для 64-битной версии fedora 8 нужно ставить именно все 4 пакета — иначе будут неполадки.
После этого Mplayer увидит enca когда запускаешь ./configure
я соответственно собираю Mplayer с ключами:
./configure --libdir=/usr/lib --bindir=/usr/bin --enable-gui
где —enable-gui включит графический интерфейс.

После сборки Mplayer
в консоли нужно набрать mplayer -gui
Он не запуститься и выдаст ошибку что нет скинов для плеера и путь куда их нужно положить
/usr/local/share/mplayer/skins
( может другой путь написать — в зависимости от операционной системы )
Поэтому нужно скачать скины Abyss и Blue — распаковать их и папки Abyss и Blue скопировать в директорию /usr/local/share/mplayer/skins и преименовать папку Blue в default.
Скины можно скачать отсюда:
http://www.mplayerhq.hu/design7/dload.html
После чего плеер будет запускаться — и жаловаться что не хватает шрифтов для субтитров —
тогда ему нужно положить шрифт в невидимую директорию в домашней папке.
Например моя домашняя папка /home/chslava/.mplayer
.mplayer — это невидимая папка
В нее нужно положить шрифт например Arial.ttf и переименовать его в subfont.ttf
Также для использования пакета enca нужно сделать следующее:
В директории ./mplayer в файл config необходимо вписать

slang = "ru,rus"
ass = 1
subcp = "enca:ru:cp1251"
fontconfig = 1

для поддержки субтитров

Если при проигровании видео идут сообщения об ошибке
[AO_ALSA] Unable to find simple control 'PCM',0.
то просто включите в настройках audio опцию “Enable Software Mixer”.
Эту опцию нужно включать обязательно — иначе эта ошибка будет все время мелькать при проигрывании песен mp3.

Также в невидимой директории ./mplayer нужно в файле gui.conf
в одной из первых строчек
vo_driver = "xv"
изменить значение на gl или gl2
чтобы получилось
vo_driver = "gl"
Это для использования аппаратного драйвера OpenGL видеокарты — потому что на видеокартах ATI Radeon другие драйверы могут вообще не работать.
Mplayer нужно получать через svn командой в консоли:

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

потому что так вместе с mplayer получит также всякие библиотеки кодеков важные — всякие libfaac и libfaad даже ffmpeg помоему урезаный.
А если просто скачать с сайта официального — то не будет этих важных кодеков.
Теперь про сборку плеера xine:
к сожалению при сборке из исходников идет непредсказуемая ошибка заключающаяся в том что пакет xine-ui не видит уже установленного xine-lib.
Решить эту проблемы мне удавалось только устанавливая и удаляя по 10 раз xine-lib разных версий — пока xine-ui его не увидит.
Причем ставлю соответственно все с ключами ./configure --libdir=/usr/lib --bindir=/usr/bin

Теперь я хотел еще сказать про сборку rpm пакета из исходников:
Ведь часто приходиться перестанавливать операционные системы и тогда приходиться собирать все заново.
Поэтому очень удобно собрать сразу rpm пакеты нужных программ.
Например собрать из исходников плееры xine и Mplayer а также wine — сделать себе rpm пакеты этих программ — которым не будут нужны зависимости от других rpm пакетов.
И в следующий раз — можно просто установить операционную систему и поставить нужные программы из rpm пакетов которые сделал сам — например Mplayer где уже есть поддержка enca.

Создание rpm пакета с помощью программы rpmbuild.
Я чисто практически напишу — без теории — которой и так много в сети.
Плеер xine прекрасно собирается в rpm пакеты при помощи программы rpmbuild
Причем следующие версии xine:
xine-lib-1.1.14.tar.bz2
xine-ui-0.99.5.tar.gz
которые я сам собирал. Внимание — другие версии пакетов xine могут не собираться.
Чтобы собрать rpm пакет нужно перейти в папку с исходниками — выполнив в консоли команду
cd /home/chslava ( например /home/chslava — папка где лежит архив с исходниками )
после чего нужно выполнить команду
rpmbuild -ta xine-lib-1.1.14.tar.bz2
собранный rpm пакет будет лежать в папке например:
/usr/src/redhat/RPMS/x86_64
в зависимости от дистрибутива.

Таким образом xine собирается прекрасно и без проблем — которые возникают при сборке из исходников.
Но использовать rpmbuild можно только для тех программ где есть специальный файл сценария для сборки rpm пакета.

Поэтому другие программы — чтобы сделать себе rpm пакет нужно использовать программу
checkinstall
скачать ее можно отсюда:
http://www.asic-linux.com.mx/~izto/chec ... wnload.php
причем rpm пакет с этой странице работает в большинстве операционных систем.


Для использования команды checkinstall нужно сначала сконфигурировать и скомпилировать программу, а затем командой checkinstall приступить к сборке rpm пакета:

./configure
make
checkinstall

( я конфигурировал с ключами ./configure --libdir=/usr/lib --bindir=/usr/bin )

После этого программа предложит заполнить по очереди в консоли поля:
1 — Summary: [ xine ]
2 — Name: [ xine ]
3 — Version: [ 1]
4 — Release: [ 1 ]
5 — License: [ GPL ]
6 — Group: [ Applications/System ]
7 — Architecture: [ noarch ]
8 — Source location: [ /home/chslava/xine-lib ]
9 — Alternate source location: [ ]
10 — Requires: [ ]

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

Все.
После этого программа создаст rpm пакет который будет находиться в папке /usr/src/redhat/RPMS/x86_64 ( в зависимости от дистрибутива )


Я создал себе rpm пакеты xine с помощью программы rpmbuild ( сначала создается rpm пакеты исходников xine-lib а затем уже xine-ui ).
С помощью программы checkinstall я создал себе rpm пакеты mplayer, ffmpeg, x264.

Пакеты ffmpeg и x264
исходники от них можно взять отсюда:
http://ffmpeg.mplayerhq.hu/
http://www.videolan.org/developers/x264.html
эти пакеты нужны для установки программы для конвертирования видео для psp для linux для невзломанных psp
вот эта программа:
http://pspvc.sourceforge.net/
Называется она pspvc linux
кроме ffmpeg и x264 по ссылкам выше для программы pspvc необходимо установить следующие пакеты:
faac http://sourceforge.net/projects/faac/
faad http://sourceforge.net/projects/faac/
nasm ( обычно есть в дистрибутиве )
yasm ( обычно есть в дистрибутиве )
xvid можно скачать отсюда: http://www.xvid.org/Downloads.43.0.html

написал на всякий случай все необходимое для программы pspvc for Linux
Я собираю все с ключами ./configure --libdir=/usr/lib --bindir=/usr/bin

faac, faad , xvidcore не удалось сделать rpm пакет – но они быстро собраються и так.

Faac и faad перед ./configure нужно выполнить ./bootstrap


Вообщем мне удалось зато сделать rpm пакеты Mplayer, xine, wine, ffmpeg, x264.

Мне кажется это очень удобно – когда в следующий раз придется ставить оперционную систему можно будет просто из rpm пакетов все установить – все нужные программы.
Причем эти rpm пакеты уже собраны под свое железо и с поддержкой всего необходимого.
То есть эти rpm пакеты будут работать также быстро и без ошибок как и установленные из исходников.
То есть свои rpm пакеты намного лучше чем скачанные – в которых как я уже писал много недостатков.

Мне кжается очень удобно сделать для своего дистрибутива rpm пакеты самому

Вообщем здесь я рассмотрел всякие трудности при сборке популярных программ Mplayer, xine, wine.
Предлагаю писать здесь о возникающих трудностях при сборке из исходников.

А также мне как то жалко – я правда не очень понимаю – но checkinstall помоему собирает rpm пакеты под конкретный процессор.
Я так понимаю что если я собрал для своего процессора AMD — то на процессорах Intel на других компьютерах уже не заработает мой rpm пакет?
И наверное под KDE и Gnome нужно разные RPM пакеты собирать?
Вот это жалко..
Придется под два компьютера с разными процессорами собирать два раза rpm пакеты..
Было бы круто собрать универсальные пакеты – которые можно на разном железе использовать..
Но наверное так не получиться..
Если кто нибудь знает этот вопрос – наишите пожалуйста – можно ли создавать универсальные rpm пакеты самому?
Чтобы они работали и на процессорах AMD и на Intel а также желательно и в KDE и Gnome.
chslava, а слабо нормальный пакет замутить, чтоб со всеми зависимостями был, и файлы других стандартных пакетов не заменял?
SrID
В смысле? Я просто не понимаю вопрос..
Вот то что я писал – rpm пакеты созданные в программах rpmbuild и checkinstall
не будут зависеть от других пакетов.
То есть эти rpm пакеты уже включают в себя все необходимые библиотеки.

Эти rpm пакеты ставятся и не требуют никаких зависимостей.

По поводу того — замещают ли они уже установленные —
так почему они должны замещать?
Не надо одинаковые ставить.
Если нет уже установленного ffmpeg – то он и не будет ничего замещать.

Тут сложный вопрос на самом деле – впринципе частично например входит ffmpeg в Mplayer ( вместе с ним идут некоторые библиотеки помоему – или может не ffmpeg а всякие faac )
То если ставишь Mplayer а потом faac – то какие то библиотеки будут замещаться – в одинаковых директориях.
Но я не вижу в этом проблемы. Ведь будут замещаться одинаковыми библиотеками – в одинаковых директориях — скорее одинаковые библиотеки заменяться и появятся еще недостающие.
Ну например faac поставляется с Mplayer – но все же их недостаточно для некоторых программ и нужно ставить полностью faac.
То действительно Будут замещаться одинаковые файлы библиотек – которые уже существуют.
Но конфликтов из-за этого не возникает.

То есть тогда нужно делать действительно чтобы были зависимости – понимать как сделать эту систему зависимостей rpm пакетов.
То есть вопрос первый – позволяют ли эти программы rpmbuild и checkinstall создавать пакеты проверяющие зависимости.
Если это действительно можно сделать в этих программах – то это отлично – просто я лично еще до этого не дошел в любом случае..
Ну а если в этих программах нельзя создавать rpm пакеты проверяющие зависимости – то что либо сделать будет очень трудно.
Я например не являюсь программистом. Я просто пользователь.
И если программы rpmbuild и checkinstall не позволяют этого сделать – то я уже тоже ничего не смогу.
Может быть программист действительно смог бы сделать сам то что вы говорите.
Плюс мог бы написать программу которая позволяла бы что такое делать.
Это на самом деле очень интересно.
Но это явно сильно превышает мой уровень – такие задачи.
Мне кстати наоборот удобнее что созданные мной rpm пакеты не требуют зависимостей никаких. А то меня достает все время эти зависимости.
Например некоторые программы ссылаются на какую нибудь библиотеку – которую вообще не знаешь где найти.
Так что мне не очень страшно если дублирующие библиотеки заменяться при установке например Mplayer который включает частично faac и потом установке faac.
Вообещм я кстати поянл ваш вопрос хорошо – пока дописал этот пост.
Вообщем мне кажется это невозможно – если вы не программист и не работаете в разработке Linux систем )))
Правда может я не знаю просто – но помоему эти программы rpmbuild и checkinstall не позволяют такого сделать?
Но это очень на самом деле интересно.

Добавлено:
Важное дополнение:
rpm пакеты собранные checkinstall в чистой системе не заработали. Сейчас чтобы проверить переустановил fedora 8
А вот xine rpm пакеты которые собирались в rpmbuild — отлично заработали.
Причем зависимости смотрит — у меня xine-lib штатный был установлен — так мой rpm пакет не захотел устанавливаться.
А когда я удалил штатный xine-lib — то мой rpm поставился и xine отлично работает в fedora 8
А вот xine собраный для Mandriva 2008 — почему то не работает — ошибку xine выдает.

Так что только в fedora 8 заработали rpm пакеты xine
Про сборку wine
Я тут долго писал как я пытался собирать wine с поддержкой alsa.
Ну это конечно метод неправильный..
— правильно было поставить пакет
alsa-lib-devel
и тогда wine собирается с поддержкой alsa.

Потому что с alsa игры хорошо работают — а вот с oss шипеть звук начинает через какое то время.
Ну это вообще ветка про то как что собирает )
Поэтому не ругайтесь если я с ошибками пишу — я потом буду исправлять что неправильно написал.
Так вот: в Fedora 8 64 битной чтобы собрать wine c поддержкой alsa нужно снять галочку с пакета alsa-lib-devel-1.0.15-1.fc8.x86_64 и одновременно поставить галочку пакет alsa-lib-devel-1.0.15-1.fc8.i386

Кстати wine-1.1.10 существенно лучше работает по сравнению с wine-1.1.6 ( с другими не сравнивал) — эффектов в играх больше можно включить.
И лишний раз я убедился что rpm пакеты wine которые собранные намного хуже работают чем если самостоятельно wine собираешь :)
Вообщем 100% самому нужно собирать wine плюс новые версии wine лучше работают.
Новая тема    Ответить  [ Сообщений: 4 ] 


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Удалить cookies конференции

Пишите нам | Radeon.ru