arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Тут вопросец назрел. К *.install отсылать не надо, редактировать каждый раз его довольно печально. В общем, идея. Есть скриптец, который обновляет дровишки из аура. Нужно, чтобы при обновлении ядра этот скрипт запускался. Ну или при обновлении ядра автоматически тянулись эти пакеты. Нет, ну можно конечно вручную собирать ядро и тогда дописать в секцию "post_upgrade" запуск скрипта, но это по понятным причинам неудобно. Как бы это так все оптимизировать-автоматизировать? Есть мысля, что можно как то к mkinitcpio прицепиться, который запускается после каждого обновления, но как - я не знаю. Ман по пакману покурил, вроде ничего похожего не нашел, в йогурте как будто бы тоже |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Курить man mkinitcpio, искать по слову HOOKS. Подсказка: есть возможность сделать свой хук, выполняющийся на этапе сборки. |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Natrioага, спасибо. Действительно то что нужно. Есть только одно "но". Если просто запустить mkinitcpio -p linux, то все работает как надо. Если же в процессе обновления ядра, то выползет ошибка - нельзя будет установить пакеты, если уже запущена (а она есно запущена) копия пакмена. Посему еще один идиотский вопрос - как это ограничение обойти?) Указание альтернативного лог-файла не помогает. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Да, проблема. В принципе, можно сделать самофоркающийся скрипт, который будет активироваться из хука, ждать завершения пакмана и только потом делать своё чёрное дело. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
А в зависимости к ядру эти дрова никак не получится прописать? |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
lampslaveЯдро репозиторное, оно от них не зависит. Речь идёт о сборке, а не установке пакетов. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Я понимаю, что репозиторное. Но может быть есть какой-то обработчик, который позволяет сопоставить заданному пакету дополнительную зависимость? Смотрит же pacman на список игнорированных пакетов, а ведь тут почти то же самое, только в обратном направлении. А в конце концов можно просто алиас сделать и не мучиться: alias upgrade="pacman -Syu дрова" |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
lampslaveфишка в том, что эти дрова либо вообще не обновляются (rts5229), либо обновляются ранее ядра (broadcom-wl, nvidia-bumblebee). Natrioну это мне и представлялось решением. Просто думал, мб как то можно, кхм, погуманнее :) |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
ну я в общем то забил на эту проблему. Впрочем, немного по другой причине - когда выполняется генерация initrd отсутствует возможность нормального редактирования pkgbuild'а (совершаемые действия не показываются на экране, а какой нить нано и вовсе не покажется). Оставлю, как я делал, вдруг кому понадобится 1. Создаем собсна хук: # touch /usr/lib/initcpio/install/drvupd #!/bin/bash build() { yaourt -S package1 package2 ... --dbpath /var/lib/pacman/drv_upd --logfile /var/lib/pacman/drv_upd/drv_upd.log } help() { cat <<HELPEOF This hook updates some drivers from AUR when kernel is updated HELPEOF } # mkdir /var/lib/pacman/drv_upd # cd /var/lib/pacman/drv_upd # ln -s ../local # ln -s ../sync 3. Добавляем в файл /etc/mkinitcpio.conf в строку хуки наш хук drvupd. Я добавлял в самом начале. 4. Редактируем файл /etc/mkinitcpio.d/linux.present. Ищем строку с fallback_options, дописываем туда -S drvupd (чтобы 2 раза наш хук не запускался, ибо оно не нужно). Т.е. должно получиться примерно следующее: # cat /etc/mkinitcpio.d/linux.preset 3:16, 13-02-04 # mkinitcpio preset file for the 'linux' package ALL_config="/etc/mkinitcpio.conf" ALL_kver="/boot/vmlinuz-linux" PRESETS=('default' 'fallback') #default_config="/etc/mkinitcpio.conf" default_image="/boot/initramfs-linux.img" #default_options="" #fallback_config="/etc/mkinitcpio.conf" fallback_image="/boot/initramfs-linux-fallback.img" fallback_options="-S autodetect -S drvupd" Как то так. Костыльно чуть более, чем полностью, но как будто бы работает нормально, багов обнаружено не было. "Решено". |