LinuxForum.Fans
Тема

я что-то делаю не правильно...

Автор: Fat-Zer 17 сообщений 3310 просмотров
#187529

собираю lfs, задолбался вводить однообразные команды, написал скрипт:

Показать
[console]lfs@goblin /mnt/lfs/usr/src $ cat ebuild.sh
#!/bin/bash

DISTDIR=$LFS/usr/src/distros/distfiles
SRCDIR=$LFS/usr/src
WORKDIR=$LFS/usr/src/build

die()
{
echo $@
exit -1
}

usage()
{
echo "usage: ebuild.sh <package> <action>"
echo "action: untar|config|compile|install"
}

untar() {
local COMPRESSOR
case $PF in
*.tar.gz | *.tgz) COMPRESSOR=gzip ;;
*.tar.bz2 | *.tbz2) COMPRESSOR=bzip2 ;;
*.tar.xz | *.txz) COMPRESSOR=xz ;;
*) die unknown archive ;;
esac
($COMPRESSOR -dc $PD || die "decompress failed") | (tar -xC $SRCDIR || die "tar failed")
}

post_untar()
{
S="$(ls -d $SRCDIR/$PN* | tail -1)"
if [ -z "$S" ] ; then
die no such source directory: $PN
fi
PS=$WORKDIR/$PN
mkdir -p $PS
}

config()
{
post_untar
(
cd $PS
$S/configure $CONFIGOPTS
) || die configure failed
}

compile()
{
post_untar
(
cd $PS
make $MAKEOPTS $@
) || die make failed
}

check()
{
compile check
}

inst()
{
compile install
}

PN=$1
PD="$(ls $DISTDIR/$PN* | tail -1)"

if [ -z "$PD" ] ; then
die no such package: $PN
fi
PF="$(basename $PD)"

PS=""
S=""


case $2 in
untar) untar; post_untar; ;;
config) config;;

compile) compile;;
check) check;;
install) inst;;
pre_install)
untar;
config;
compile; ;;
all)
untar;
config;
compile;
check;
inst; ;;
*) usage; exit -1;;
esac
[/console]

мне одному кажется, что я начал изобретать велосипед? :o

#187532

Кто мягко шагает, тот далеко продвинется на своем пути (с)

#187545
Fat-Zer написал:
собираю lfs, задолбался вводить однообразные команды, написал скрипт:
Fat-Zer написал:
мне одному кажется, что я начал изобретать велосипед?

нет. делайте дальше так, и вы изобретёте Gentoo :)

#187649
drBatty написал:
нет. делайте дальше так, и вы изобретёте Gentoo

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

раз лулзов нет, то как поприличней записать это?

text
PD="$(ls  $DISTDIR/$PN* | tail -1)"
#187654
Fat-Zer написал:
раз лулзов нет, то как поприличней записать это?

PD="$(ls $DISTDIR/$PN* | tail -1)"

вам просто надо проверить существование директории, но вы не знаете, что это за директория? просто непонятно...

#187656
drBatty написал:
вам просто надо проверить существование директории, но вы не знаете, что это за директория? просто непонятно...

Я думаю, эта команда выбирает последний файл из листинга директории.

#187661
Lupo Alberto написал:
Я думаю, эта команда выбирает последний файл из листинга директории.

да. но с какой целью?

#187668
drBatty написал:
да. но с какой целью?

Пока Fat-Zer всё сам не разъяснил wink , попробую предположить, что нужно получить последнюю версию архива с исходными кодами для определённой программы.

#187677
Lupo Alberto написал:
попробую предположить, что нужно получить последнюю версию архива с исходными кодами для определённой программы.

ну тогда это никак красивей не записать...
хотя можно конечно к каждому файлу записать в xattr атрибут user.installing=true, и устанавливать те файлы, которые успешно закачены, проверенны, но не установлены.

#187699
Lupo Alberto написал:
, попробую предположить, что нужно получить последнюю версию архива с исходными кодами для

в точку

drBatty написал:
ну тогда это никак красивей не записать...

ясно...

drBatty написал:
хотя можно конечно к каждому файлу записать в xattr атрибут user.installing=true, и устанавливать те файлы, которые успешно закачены, проверенны, но не установлены.

не...такое я городить не буду smile

#187734

мне тут смысл вещей открываться начал:
[console]
goblin linux-2.6.37 # make help
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files

..............
[/console]
вторая цель ведь с этим товарищем связана:

#187754

Fat-Zer, дык один чухонский студент слишком много смотрел быдлоящик...

#187857
Fat-Zer написал:
мне тут смысл вещей открываться начал:

кстати, это первое, что надо сделать при сборке ядра.

#187858
drBatty написал:
кстати, это первое, что надо сделать при сборке ядра.

Если подразумевается make mrproper, то не вполне очевидна обязательность его выполнения. Разве что, если захочется начать всё «с чистого листа...».

#187859
Lupo Alberto написал:
Если подразумевается make mrproper, то не вполне очевидна обязательность его выполнения. Разве что, если захочется начать всё «с чистого листа...».

а как иначе?
Если хочется сохранить конфигурацию, то надо:
[console]cp .config ~/old_config
make mrproper
cp ~/old_config .config
make oldconfig
[/console]

#187860
drBatty написал:
а как иначе?

Это раньше было одним из рекомендуемых требований.
А сейчас, если у меня новые «исходники» — команда не нужна; если пересобираю новое ядро, но с незначительными изменениями, эта команда, IMHO, также избыточна. Не претендую на истину, но я ей не пользуюсь. В крайнем случае — make clean, чтобы избежать копирования конфигурационного файла туда-сюда.

#187861
Lupo Alberto написал:
Не претендую на истину, но я ей не пользуюсь.

ну я не знаю. так в README написано...

Войдите или зарегистрируйтесь, чтобы ответить.