Во-первых, в зависимости от возраста ноутбука, очистите вентиляционные отверстия.
lesswatts имеет полный набор руководств для снижения энергопотребления:
http: // www. lesswatts.org/tips/index.php
Для скорости процессора см.
http://www.lesswatts.org/tips/index.php
Просмотрите эту диаграмму из вики-файла Debian о том, как вызываются скрипты-хранители:
Если вы следуете по левой стороне (путь «все идет нормально»), вы увидите, что [ f4] вызывается с самой последней версией. Это дает вам возможность различать обновление и новую установку - в случае обновления ваш postinst будет называться как
postinst configure 1.23-0ubuntu1
, где 1.23-0ubuntu1 - это ранее установленная версия вашего пакета, тогда как для новой установки он будет называться как
postinst configure
Это также позволяет вам обрабатывать случай, когда вам нужно выполнить действие при обновлении с определенной версии - вы можете проверить postinst для эта версия.
Это позволяет легко проверить, выполняется ли сценарий на «установке» или «обновлении». Если $ 2 является нулевым, то это установка. поэтому:
if [ -z "$2" ]; then
do install stuff
else
do upgrade stuff
fi
Возможно, вы сможете использовать скрипт debian / preinst в сочетании с postinst.
В сценарии preinst проверьте файл, который ваш pkg определенно устанавливает. Если он присутствует, ничего не делайте (поскольку ваш пакет был ранее установлен), иначе выполните свои шаги настройки.
Если ваши шаги настройки требуют, чтобы ваш pkg был установлен (в этом случае вышеуказанное не будет работать, поскольку preinst запускается до установки), тогда ваш preinst-скрипт мог бы записать файл, например: / tmp / setupmypkg , Ваш скрипт postinst может просто проверить, присутствует ли этот файл, и если да, то делайте две вещи:
ваши начальные шаги настройки удаляют файл / tmp / setupmypkgЯ так не думаю, но вы можете легко изменить сценарии preinst / postinst, чтобы проверить, установлен ли пакет в первый раз и принять стандартное действие.
Может быть что-то вроде этого,
в preinst.
if not is_package_istalled():
export MY_PACKAGE_FIRST_INSTALL
в postinst,
if MY_PACKAGE_FIRST_INSTALL:
Do First Install Setup
Edit
Хмм, возможно, вы можете просто проверить все это прямо в postinst, потому что я думаю, что dpkg не установил статус пакета как установленный до выполнения postinst, но я не уверен. Таким образом, вышесказанное могло бы прийти,
в postinst,
if not is_package_istalled():
Do First Install Setup
Где, is_package_installed, вы можете определить статус установки. Может быть что-то вроде «dpkg --status packagename»
ИЛИ
Почему бы просто не проверить, действительно ли изменения, которые вы хотите сделать, уже существуют и продолжаются, если они не являются. [ ! d10]
Я обнаружил, что тестирование на $ 2 в вашем скрипте postinst configure не работает должным образом, если вы уже установили свой пакет раньше, а затем удалили его (но без очистки), затем попробуйте снова установить его. В этом случае сценарий postinst по-прежнему получает аргумент версии для этапа postinst configure.
Однако, если вы установили пакет раньше, затем удалите И очистите его, а затем снова установите повторно, «postinst configure «скрипт НЕ получит аргумент версии в $ 2