ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: php-coder <php-coder@altlinux.ru>
To: community@altlinux.ru
Cc: Vitaly Lipatov <lav@etersoft.ru>
Subject: Предложения по update_kernel_modules.sh (was: Re: [Comm] скрипт обновления ядер/модулей)
Date: Tue, 7 Jun 2005 20:34:01 +0700
Message-ID: <20050607133401.GA4106@mycomp.mydomain> (raw)
In-Reply-To: <20050505185218.GQ22379@osdn.org.ua>


--- Michael Shigorin 2005-05-05 21:52:18 +0300
+++ php-coder 2005-05-26 18:50:44 +0700

MS> Пользуйтесь скриптом Виталика Липатова (прилагаю).

    Пока им не пользовался (потому что ядро и два модуля могу и вручную
    обновить), но вот просто к коду повнимательнее присмотрелся ;)

MS> # Тип ядра (получаем из текущего запущенного)
MS> TYPESYS=`uname -r | cut -d "-" -f2,3`
MS> test -z "$1" || TYPESYS=$1

    Может быть так?

    test -z "$1" || TYPESYS=`uname -r | cut -d- -f2,3`

    _Для_универсальности_ не будет лишней также проверка на ванильное
    ядро или самосборное...

MS> SUDO=sudo
MS> if [ "$UID" == "0" ]
MS> then
MS> 	SUDO=
MS> fi

    Так тоже работает:
    
    [ "$UID" != "0" ] && SUDO=sudo || SUDO=

MS> LISTKER=`$SUDO apt-get install kernel-image-$TYPESYS -y | grep "\#" | grep -v "\["`
MS> LISTKER=`echo $LISTKER | cut -d " " -f 1 | head -n 1`

    Если я правильно понял цель к которой ведут эти две строчки чуть выше,
    то, думаю, что можно это все записать намного короче:

    LISTKER=`$SUDO apt-get install -y kernel-image-$TYPESYS | \
    grep -e "^\ "`

    Т.е. смысл в том, что пакет, который должен установиться всегда
    находится в строке начинающейся с пробела. Других подобных строк я не
    встретил.

MS> echo "Install new kernel $LISTKER"
MS> $SUDO apt-get install $LISTKER -y

    хм... значит чуть выше ядро-то и не устанавливалось? В таком случае
    может использовать ключ --simulate для этого?

    (проглядывая man apt-get) Кстати, еще может быть полезны опция --quiet
    К примеру, она опускает вывод индикаторов хода выполнения задачи.
    Насколько, я понял вы для этого использовали grep -v "\["?

MS> ALLMODULES=`apt-cache pkgnames kernel-modules | sed -e "s/kernel-modules-//g" |\
MS> sed -e "s/-.*$//g" | sort | uniq | grep -v kernel`

    Тут, кажется, есть ошибка. Не все модули обновляются :( К примеру, от
    drm-via-2.6.10-wks26-up-alt5 и drm-vs-smp после "обрезания" останется
    лишь drm. А потом, после uniq, останется лишь запись drm и установится
    лишь drm. А что с drm-via? Я так понял, что ничего :(
    
    Так вот сходу решения не нашел. Зато есть несколько идей:

    - вместо прожорливого sed -e 's/kernel-modules-//g' можно использовать
      cut: cud -c 16- Т.е. мы мерем все символы, начиная с шестнадцатого.

      Вот доказательства ;)

      sed -e "s/kernel-modules-//g"  0,03s user 0,00s system 1% cpu 1,707
      total

      cut -c 16-  0,00s user 0,01s system 0% cpu 1,708 total

      Насколько, я понял cut быстрее..

    - если уже использовать sed, то хотя бы записать это короче:
      sed -e 's/kernel-modules-//g;s/-.*$//g'

    - sort | uniq лучше заменить на sort -u (эффект тот же)

    - вот еще идея! Зачем искать все возможные модули? Может лучше только
      те, которые для используемого ядра? Тогда и меньше будет обрабатываемый
      список:

      [c0der@mycomp ~]$ apt-cache pkgnames kernel-modules WC
      1304
      [c0der@mycomp ~]$ apt-cache pkgnames G std-up WC
      145
     
      Т.е. искать модули содержащие в себе $TYPESYS

      Это у меня предложение такое... :-)

    
    Хотелось бы услышать мнение автора ;-) Поэтому даю ему, на всякий
    случай, Сс:

    Bye!

-- 
+ php-coder
+ php-coder[at]altlinux[dot]ru



  parent reply	other threads:[~2005-06-07 13:34 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-04  7:24 [Comm] xorg, nvidia_glx_common Владимир Гусев
2005-05-04 14:26 ` [Comm] Administrativia: xorg из Sisyphus -- offtopic здесь и сейчас Michael Shigorin
2005-05-05  8:01   ` Владимир Гусев
2005-05-05 18:52     ` [Comm] скрипт обновления ядер/модулей (was: xorg из Sisyphus -- offtopic) Michael Shigorin
2005-05-06 15:52       ` Владимир Гусев
2005-05-06 17:54         ` Andrey Rahmatullin
2005-05-06 20:57           ` Владимир Гусев
2005-05-07  3:58             ` Andrey Rahmatullin
2005-05-10 10:43             ` [Comm] " Michael Shigorin
2005-05-10 13:44               ` Andrey Rahmatullin
2005-06-07 13:34       ` php-coder [this message]
2005-05-05  9:02   ` [Comm] Administrativia: xorg из Sisyphus -- offtopic здесь и сейчас Владимир Гусев
2005-05-05 18:55     ` [Comm] " Michael Shigorin
2005-05-12  9:38   ` [Comm] Кошерно ли ? [was] " Andrey Konovalov aka Krapa
2005-05-12  9:55     ` Genix
2005-05-12 10:15       ` Andrey Konovalov aka Krapa
2005-05-12 10:24         ` Genix
2005-05-12 11:18           ` Andrey Konovalov aka Krapa
2005-05-12 11:27             ` Michael Isachenkov
2005-05-12 11:28             ` Genix
2005-05-12 11:25           ` Sergey Lizogub
2005-05-12 13:19             ` [Comm] что есть кошерно применительно к репозиториям и пакетам (was: Кошерно ли?) Michael Shigorin
2005-05-13  9:51               ` Владимир Гусев
2005-05-13 17:36                 ` [Comm] " Michael Shigorin
2005-05-12 13:09           ` [Comm] Re: Кошерно ли? Michael Shigorin
2005-05-12 12:23     ` [Comm] о бэкпортах и что куда ближе (was: Кошерно ли?) Michael Shigorin
2005-05-04 16:59 ` [Comm] xorg, nvidia_glx_common Alex Yustasov
2005-05-04 20:19   ` [Comm] " Michael Shigorin
2005-05-04 20:58     ` Alex Yustasov
2005-05-04 21:03       ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050607133401.GA4106@mycomp.mydomain \
    --to=php-coder@altlinux.ru \
    --cc=community@altlinux.ru \
    --cc=lav@etersoft.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git