К основному контенту

makeworld или пересобирём всё под archlinux

Дано: ноутбук с процессором Celeron 430M, установлен ArchLinux i686.
Надо: пересобрать все (или почти все) пакеты под указанный процессор.
Имеется ещё другой настольный комп с процессором Core2Quad, с помощью которого будем всё пересобирать.
Для начала нужно вытащить с ноутбука список всех установленных пакетов, для можно использовать подобный скрипт:
pacman -Q | awk '{ print $1 }' | sort > /tmp/pacman-installed.tmp
pacman -Qm | awk '{ print $1 }' | sort | comm -3 /tmp/pacman-installed.tmp - > /tmp/pacman-to-reinstall.tmp

Где в итоге в файле /tmp/pacman-to-reinstall.tmp получаем сортированный список всех установленных пакетов
Рекомендую выборочно почистить данный список от пакетов, пересобирать которые смысла (времени) нет, типа openjdk2 или openoffice-base.
Далее копируем полученный файл на машину, которая будет пересобирать пакеты (хотя можно и пересобирать на том же ноуте, но это неоптимально по времени).
Для удобства создал 2 папки build и maded, в последней дополнительно папку prescott, в которой будут находиться пересобранные пакеты.
Также нужно скопировать файл /etc/makepkg.conf в ~/maded/makepg-prescott.conf и подправить флаги следующим образом:
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Потом просто запускам скрипт следующего содержания:
cd ~/build/
for pkg in $(cat /tmp/pacman-to-reinstall.tmp); do

mkdir $pkg
cd $pkg
echo y | yaourt -G --noconfirm $pkg
makepkg -scf --noconfirm --config ~/maded/makepkg-prescott.conf
if mv *.pkg.tar.gz ~/maded/prescott/; then
echo $pkg >> ~/build/done-prescott.txt
else
echo $pkg >> ~/build/error-prescott.txt
fi
cd ..
rm $pkg -r
done

В итоге в папке maded/prescott будут находиться полученные пакеты, файл ~/build/done-prescott.txt будет содержать список пересобранных пакетов, а файл ~/build/error-prescott.txt список пакетов, которые пересобрать не получилось.
Если процесс прервётся по какой-либо причине, вам будет известно, какие пакеты обработаны, поэтому просто можно запустить процесс вновь, удалив обработанные пакеты из файла /tmp/pacman-to-reinstall.tmp
Далее просто нужно перенести полученные пакеты на ноутбук (в моём случае) и установить командой sudo pacman -U *.pkg.tar.gz
Подобным образом можно пересобрать пакеты под необходимую вам архитектуру, изменив соответствующие флаги и параметры.
К примеру, можно так сразу собрать пакеты, оптимизировав под несколько разных процессоров, сэкономив на трафике и скорости, в данном примере под prescott и athlon-xp:
cd ~/build/
for pkg in $(cat /tmp/pacman-to-reinstall.tmp); do
mkdir $pkg
cd $pkg
echo y | yaourt -G --noconfirm $pkg
makepkg -scf --noconfirm --config ~/maded/makepkg-prescott.conf
if mv *.pkg.tar.gz ~/maded/prescott/; then
echo $pkg >> ~/build/done-prescott.txt
else
echo $pkg >> ~/build/error-prescott.txt
fi
makepkg -scf --noconfirm --config ~/maded/makepkg-athlon-xp.conf
if mv *.pkg.tar.gz ~/maded/athlon-xp/; then
echo $pkg >> ~/build/done-athlon-xp.txt
else
echo $pkg >> ~/build/error-athlon-xp.txt
fi
cd ..
rm $pkg -r
done

Небольшие рекомендации при пересборке пакетов, можно в файле /etc/sudorers добавить строки:
user ALL=NOPASSWD: /usr/bin/pacman
user ALL=NOPASSWD: /usr/bin/pacdiffviewer
user ALL=NOPASSWD: /usr/bin/abs

где вместо user укажите свой логин, это нужно для запуска указанных программ без ввода пароля.
Также заранее запустите abs, и используйте вместо yaourt его форк yaourt-abs, для чего скачайте файлы отсюда и запустите команду makepkg -sci

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Оффлайн (полные) установщики некоторых программ

Очень часто нужны бывают ссылки на скачивание некоторых программ в offline/full виде, оффлайновые (полные) установщики. Здесь список ссылок, часто мною используемых, как памятка:
SkypeYandex БраузерYandex Диск классической версии 1.4Yandex Диск новой версии 3.0Opera БраузерFirefox БраузерThunderbird почтовый клиентOrigin

изменение и обновление Ubuntu LiveCD

Вот заказал через shipit диски Ubuntu Livecd, как всегда при релизах, многие пакеты серьёзно стали обновляться уже после выхода релиза. Вот как раз недавно, обновился Firefox до версии 3 RC в отличии от 5ой беты в релизе. Плюс в Livecd отсутствовали пакеты руссификации, что тоже не очень хорошо. Так почему бы не создать свой Livecd с нужным ПО. Предлагаемый способ не решает проблему с предустановленными настройками пакетов, но позволяет настроить некоторые параметры системы, к примеру, настройки времени по UTC и другое.

Целью модификации диска будет:
удаление ненужных пакетов поддержки других языков;
обновление программного обеспечения по настоящий момент;
подключение нужных репозитариев;
поддержка флеш, mp3, divx, ndiswrapper и т.п.
настройка работы со временем и другие настройки..
В результате может получится образ диска, превышающих размер компакт-диска, поэтому результат нужно будет использовать на DVD.

1. Подготовка:
Для начала нам будет нужен диск LiveCD Ubuntu 8.04 или его образ, также …

Graphicsplayer 750Ti 2GB и обороты вентилятора

Заказал на известном сайте сабжевую видеокарту Graphicsplayer GTX 750 TI 2GB по привлекательной цене и без огромных ожиданий. Работает нормально, но шумит аки самолёт.
Скорость оборотов вентиляторов не регулируется и не показывается. Обороты вентилятора установлены на 33%. С помощью msi afterburner можно только увеличивать этот показатель до 100%, уменьшить нельзя.
Уменьшить процент оборотов возможно с помощью модификации bios карты, например до приемлемых 10%.
Обращаю внимание, что прошивку видеокарты вы осуществляете на свой страх и риск, в процессе или в результате которой может случиться непоправимое (хотя есть в сетим инструкции по восстановлению вслепую).
Для этого потребуется NVIDIA NVFlash with Certificate Checks Bypassed старой версии, например, у меня заработало v. 5.236 32-bit или 64-bit отсюда, чтобы увидеть старые версии нажмите "Show more versions".
А также нужен будет Maxwell II BIOS Tweaker.
Распаковываем nvflash в отдельную папку, например d:\nv, запускаем к…