sudemon |
|
Темы:
2
Сообщения:
47
Участник с: 06 августа 2007
|
Использованиеsh ./tgz2pkg wine-0.9.51-athlon-rat1.tgz #!/bin/sh # Скрипт преобразует пакет Slackware в пакет Arch Linux # Используйте очень осторожно. Работает только в самом Arch Linux # Распространяется как есть. # Автор: sudemon ([email protected]) arch="i686"; filename=$1; fileshort=${filename##*/} pkgname=${fileshort%%-?.*} pkgver=${fileshort%.tgz} pkgver=${pkgver#$pkgname-} pkgver=${pkgver%%-*} pkgrel=${fileshort%.tgz} pkgrel=${pkgrel##*-} echo " Имя файла: $fileshort" echo " Программа: $pkgname" echo " Версия: $pkgver" echo " Сборка: $pkgrel" mkdir -p ./build-$pkgname cp $filename ./build-$pkgname cd ./build-$pkgname tar -zxf $filename install/doinst.sh tar -zxf $filename install/slack-desc echo "" { echo "pkgname=$pkgname" echo "pkgver=$pkgver" echo "pkgrel=$pkgrel" echo "arch=('$arch')" echo "pkgdesc=\"" less install/slack-desc | grep "$pkgname" | sed -e /^$/d | sed -e 1d | sed -e s/$pkgname://g | sed -e /^$/d | grep "" echo "\"" echo "source=($fileshort)" echo "install=('$pkgname.install')" echo "build () {" echo "cd \$startdir/src" echo "rm -rf ./install" echo "rm -rf ./$fileshort" echo "cp -r ./* \$startdir/pkg" echo "}" } > PKGBUILD nano PKGBUILD echo "" { echo "postinstall() {" less install/doinst.sh echo "/bin/true" echo "}" echo "" echo "op=\$1" echo "shift" echo "" echo "\$op \"\[email protected]\"" } > $pkgname.install #nano $pkgname.install makepkg -f cp $pkgname-$pkgver-$pkgrel-$arch.pkg.tar.gz ../ cd ../ rm -rf ./build-$pkgname |
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
Лучше вхять wine.Slackbuild и заглядывая в него написать PKGBUILD и отстроить нативный пакет. Это же костыль, максимум на попробывать. Поэтому почти никогда не пользовался alien….
systemd должен умереть.
|
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
less замени на cat, а кучу echo на: cat > out_file << _EOF_ text text $(cmd) _EOF_ Непосредственный вызов редактора замени на EDITOR или EDITOR с альтернативой: ${EDITOR:-vim} Убрать захардкоженную архитектуру, если сборка на Arch x86_64 пакета ix86 - помещать пакет в группу lib32 с соответствующими путями. Пока вроде все на мой взгляд =)
systemd должен умереть.
|
sudemon |
|
Темы:
2
Сообщения:
47
Участник с: 06 августа 2007
|
Насколько я знаю, для сборки 32бит пакета под 64бит нужно делать chroot в 32-битную систему. Жаль не могу проверить, поэтому не буду это добавлять. А если делать через группу, то где должны находится 32битные программы в Arch x86_64 ? По поводу других советов, то вот результат: #!/bin/sh # Скрипт преобразует пакет Slackware в пакет Arch Linux # Используйте очень осторожно. Работает только в самом Arch Linux # Распространяется как есть. Дата: 24.12.07 # Используйте -i в конце команды чтобы сразу установить пакет. # Автор: http://archlinux.org.ru/forum/index.php/topic,425.0.html arch="i686"; filename=$1; fileshort=${filename##*/} pkgname=${fileshort%%-?.*} pkgver=${fileshort%.tgz} pkgver=${pkgver#$pkgname-} pkgver=${pkgver%%-*} pkgrel=${fileshort%.tgz} pkgrel=${pkgrel##*-} mkdir -p ./build-$pkgname cp $filename ./build-$pkgname cd ./build-$pkgname tar -zxf $filename install/doinst.sh tar -zxf $filename install/slack-desc cat > PKGBUILD << _EOF_ pkgname=$pkgname pkgver=$pkgver pkgrel=$pkgrel arch=('$arch') pkgdesc="$(cat install/slack-desc | grep $pkgname | sed -e s/$pkgname://g | sed -e 1!d)" source=($fileshort) install=('$pkgname.install') build () { cd \$startdir/src rm -rf ./install rm -rf ./$fileshort cp -r ./* \$startdir/pkg } _EOF_ ${EDITOR:-nano} PKGBUILD cat > $pkgname.install << _EOF_ postinstall() { $(cat install/doinst.sh) /bin/true } op=\$1 shift \$op "\[email protected]" _EOF_ ${EDITOR:-nano} $pkgname.install makepkg -f cp $pkgname-$pkgver-$pkgrel-$arch.pkg.tar.gz ../ cd ../ rm -rf ./build-$pkgname if [ "$2" = "-i" ]; then echo "Для установки пакета требуется пароль root:" su -c "pacman -U $pkgname-$pkgver-$pkgrel-$arch.pkg.tar.gz" fi |
amigo |
|
Темы:
35
Сообщения:
2126
Участник с: 05 февраля 2007
|
Странно, чем PKGBUILD не устроил автора? правильнее было бы писать PKGBUILDы, чем заниматься ерундой… Хотя может я не почувствовал соль из-за отсутствия слаковых пакетов?
Разберемся, голубчик!
|
sudemon |
|
Темы:
2
Сообщения:
47
Участник с: 06 августа 2007
|
Как раз таки устраивает. Пользуюсь для исходников и проприетарного ПО. Например у меня уже есть нужная программа в .tgz, а тратить трафик и время на тоже самое но в pkg.tar.gz я не хочу. Писать PKGBUILD это долгое занятие, намного быстрее сразу поставить пакет в систему: tgz2pkg amarok-1.4.6-i486-1.tgz -i При этом он потом нормально удалится средствами pacman. PS: Я просто поделился кодом, может кому нибудь понадобится. PPS: Исполняя этот скрипт, я пишу PKGBUILD, который кстати в процессе выполнения можно редактировать. |
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
sudemon Ты прав, но у тебя есть уже готовый бинарный пакет, залезь на aur.archlinux.org или посмотри в ABS BUILDPKG для пакетов lib32-* путь должен быть /opt/lib32 (это префикс, подобный /usr или /usr/local), хотя стандарта там нет (официально Arch не поддерживает Multilib). Есди прога 32битная, нужно бы сделать ещё враппер для запуска, типа: mv bin/proga bin/proga.bin cat > bin/proga << EOF #!/bin/sh linux32 bin/proga.bin [email protected] EOF Если прога ищет какие-то свои файлы по жестко вписанным локациям, сделать симлинки. В общем смотри сколько По поводу других советов, то вот результат: я бы все таки nano на vim заменил, имхо, в большинстве случаев так будет, а переопределить - установить EDITOR в нужное тебе значение и юзай
systemd должен умереть.
|
h4tr3d |
|
Темы:
34
Сообщения:
2656
Участник с: 12 июля 2007
|
Amigo Имхо, возникла потребность в пакете, а src скачать возможности нет, пусть, своего потребителя найдет.
systemd должен умереть.
|
amigo |
|
Темы:
35
Сообщения:
2126
Участник с: 05 февраля 2007
|
Тады его можно и в аур :)
Разберемся, голубчик!
|