Не використовуйте make install! % $, Або повість про checkinstall

Я знаю багато таких бек, які роблять погану річ і ставлять софт на сервер через make install. Особливо це засмучує, якщо ставлять який-небудь nginx (намагаєшся поставити його потім з пакета - і видаляєш по шматочках ходиш). Тому що папки з вихідними кодами вже немає, і make unistall зробити не можна.
У підсумку на сервері виходить бардак, софт не оновлюється, обростає відомими уразливими. І в один прекрасний момент від крона вам приходить лист виду «chown root.root / tmp / sh # 038; # 038; chmod + x / tmp / sh: sucessfully done », а через пару годин хостер банить ваш сервер за вихідну ддос атаку.

Дану проблему покликана вирішити утиліта checkinstall.
Поставимо її:

# Apt-get install checkinstall

І запам'ятовуємо назавжди, що замість make install ми робимо checkinstall. а потім ставимо вийшов deb-пакетик.

Зазвичай на це і закінчуються всі мануали по checkinstall'у. Але інструмент куди розумніші, ніж здається на перший погляд. По-перше, він вміє збирати RPM-пакети, deb-пакети і slackware пакети (ключі -R / -D / -S, відповідно). За замовчуванням ставиться ключ, що відповідає вашому пакетному менеджеру. Ебілди не вміє, да =)

По-друге у нього є ключ --install. який відразу встановить створений пакет.

Пакети можуть бути названі цілком акуратно за допомогою ключів --pkgname і --pkgversion. Тоді вони взагалі прекрасно вклиняться в базу dpkg.

Корисною може стати опція --nodoc (навіщо зберігати документацію на кожному сервері?)

Якщо ви збираєте бібліотеку (або що-небудь, що містить shared-libs) - вам буде корисна опція --addso (тоді при установці пакет додасть записи в /etc/ld.so.conf).

Нерідко буде корисною опція --reset-uids - ставить chmod 755 на всі файли і chown root: root на все каталоги.

У підсумку, замість make install, варто робити приблизно наступне:

# Sudo checkinstall --pkgname progname --pkgversion 1.0-nmu --install