17

So I'm building a .deb, and I need to do a few post-install commands (linking libraries paths, and a few other things).

Is there a way to have it so when you do a sudo dpkg -i <pacakage-name>.deb, a script runs?

20

You can execute commands after installation using the postinst shell script located in the debian folder in the source.

This is a normal shell script containing all the commands to be executed (in order) after the installation of the package. dpkg will run this automatically. So, all you need to do is create a shell script before packing your source package into a binary package, name it as 'postinst' and put it in the debian directory.

For more info, visit the Ubuntu Packaging Guide.

  • 1
    New Packaging Guide site: developer.ubuntu.com/packaging/html – Luis Alvarado Feb 21 '13 at 16:00
  • The page doesn't exist anymore... – Ionică Bizău Dec 28 '14 at 19:21
  • 2
    The page exists, the link is just wrong (it has a duplicate '/html' at the end). Correct link is packaging.ubuntu.com/html . But perhaps the page has changed, because i found packaging.ubuntu.com/html/packaging-new-software.html to be more useful. – Knetic Apr 29 '15 at 16:53
  • Be careful, postinst isn't executed after "installation of the package" it's executed after "extracting the files from the deb package" the install process may fail and the postinst is still being executed. – Miguel Ortiz Nov 15 '18 at 19:21
  • No @Miguel, if the installation process encounters an error before the postinst runs then the postinst isn’t executed. – Stephen Kitt Nov 16 '18 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.