Не використовуйте 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