Best practice to track custom software installations on Linux in /usr?NginX installation-source best practiceBasic Unix CommandsHow to apt-get perl module “Template”newb question: how do i install an .RPM or .DEB on my server?Debian debian filesystem layoutHow to only allow a package to be downloaded from a specific repository using Yum?Sharing disk volumes across OpenVZ guests to reduce Package Management OverheadChroot / sFtp / Ftps ProblemsInstall Java EE 6 on CentOS 6How can I exorcise a specific Ubuntu package that crashes on a postinstall script?install-man5 Error 1 after running 'make install' after compiling NUT (Network UPS Tools)

Using mean length and mean weight to calculate mean BMI?

How can I test a shell script in a "safe environment" to avoid harm to my computer?

Why did Yoast put a no-index tag in my XML sitemap?

Is it a good idea to copy a trader when investing?

The unknown and unexplained in science fiction

How is it believable that Euron could so easily pull off this ambush?

How to append code verbatim to .bashrc?

What are my options legally if NYC company is not paying salary?

Can the Telekinesis spell be used on yourself for the following?

How to explain intravenous drug abuse to a 6-year-old?

Colorless commander using lands that chose based upon identity?

What's the difference between "ricochet" and "bounce"?

What is the Ancient One's mistake?

Crime rates in a post-scarcity economy

Fuzzy vector logos from InDesign to Acrobat PDF

How to avoid making self and former employee look bad when reporting on fixing former employee's work?

Program for finding longest run of zeros from a list of 100 random integers which are either 0 or 1

Capturing the entire webpage with WebExecute's CaptureImage

Can I bring back Planetary Romance as a genre?

why it is 2>&1 and not 2>>&1 to append to a log file

Opposite party turned away from voting when ballot is all opposing party

Why doesn't a particle exert force on itself?

Are wands in any sort of book going to be too much like Harry Potter?

Is there an application which does HTTP PUT?



Best practice to track custom software installations on Linux in /usr?


NginX installation-source best practiceBasic Unix CommandsHow to apt-get perl module “Template”newb question: how do i install an .RPM or .DEB on my server?Debian debian filesystem layoutHow to only allow a package to be downloaded from a specific repository using Yum?Sharing disk volumes across OpenVZ guests to reduce Package Management OverheadChroot / sFtp / Ftps ProblemsInstall Java EE 6 on CentOS 6How can I exorcise a specific Ubuntu package that crashes on a postinstall script?install-man5 Error 1 after running 'make install' after compiling NUT (Network UPS Tools)






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








5















I'm compiling and installing software myself on Linux (Debian Squeeze in my case). Downloading, unpacking, installing dependent developer libraries/headers, running configure then make.



Up to this point everything remains still in the source directory. Once I run make install, basically I start having non-package files lying around in /usr/local or /usr (depends on --path switch).



I also tried installing it into a different place, e.g. /opt, but this often causes troubles somewhere. I.e. I've always to remember to specifically add this to the header/linker path. Or I install a package there and the system wide pkg-config doesn't know about it (I'd again need to add extra flags). And even if I wold install every custom software in /opt, I wouldn't know which all of those files in bin/, etc lib/ etc. belong to each other. If I start installing them to /opt/software1/, the maintenance problem just multiplies and I've to keep track of even more paths I'd need to add for compiling further packages or need to have them in the LD library path, etc.



But when I install software directly within /usr I just get a bad feeling, no longer being able to properly tell which of my custom installation files belong where. It's easy to determine if a given file belongs to a package, but if it doesn't, on large custom installation, it's a pain to remember or figure out where a file belongs to.



It gets worse when I want to remove files. They're scattered in bin/, lib/, man/, etc. So if I want to remove a custom installed package completely, I've to perform manual work or worst case, I'm no longer able to determine all of them and I'll leave stale files around.



I know I could also start building a custom package out of it. But that would require me analyzing every software I install upfront? I've no real experience with creating .deb files and I also do not plan to distribute them to other installations. All I want is a nice way to keep track of custom local installations.



I probably could come up with something on my own, i.e. making a list of all files (find / ...), installing software and then do this again and save the diff somewhere. Just wonder if there might be a better way.










share|improve this question



















  • 1





    Nicely put together all the typical "build yourself" problems. Thanks! :-)

    – poige
    Apr 30 '12 at 7:10

















5















I'm compiling and installing software myself on Linux (Debian Squeeze in my case). Downloading, unpacking, installing dependent developer libraries/headers, running configure then make.



Up to this point everything remains still in the source directory. Once I run make install, basically I start having non-package files lying around in /usr/local or /usr (depends on --path switch).



I also tried installing it into a different place, e.g. /opt, but this often causes troubles somewhere. I.e. I've always to remember to specifically add this to the header/linker path. Or I install a package there and the system wide pkg-config doesn't know about it (I'd again need to add extra flags). And even if I wold install every custom software in /opt, I wouldn't know which all of those files in bin/, etc lib/ etc. belong to each other. If I start installing them to /opt/software1/, the maintenance problem just multiplies and I've to keep track of even more paths I'd need to add for compiling further packages or need to have them in the LD library path, etc.



But when I install software directly within /usr I just get a bad feeling, no longer being able to properly tell which of my custom installation files belong where. It's easy to determine if a given file belongs to a package, but if it doesn't, on large custom installation, it's a pain to remember or figure out where a file belongs to.



It gets worse when I want to remove files. They're scattered in bin/, lib/, man/, etc. So if I want to remove a custom installed package completely, I've to perform manual work or worst case, I'm no longer able to determine all of them and I'll leave stale files around.



I know I could also start building a custom package out of it. But that would require me analyzing every software I install upfront? I've no real experience with creating .deb files and I also do not plan to distribute them to other installations. All I want is a nice way to keep track of custom local installations.



I probably could come up with something on my own, i.e. making a list of all files (find / ...), installing software and then do this again and save the diff somewhere. Just wonder if there might be a better way.










share|improve this question



















  • 1





    Nicely put together all the typical "build yourself" problems. Thanks! :-)

    – poige
    Apr 30 '12 at 7:10













5












5








5


2






I'm compiling and installing software myself on Linux (Debian Squeeze in my case). Downloading, unpacking, installing dependent developer libraries/headers, running configure then make.



Up to this point everything remains still in the source directory. Once I run make install, basically I start having non-package files lying around in /usr/local or /usr (depends on --path switch).



I also tried installing it into a different place, e.g. /opt, but this often causes troubles somewhere. I.e. I've always to remember to specifically add this to the header/linker path. Or I install a package there and the system wide pkg-config doesn't know about it (I'd again need to add extra flags). And even if I wold install every custom software in /opt, I wouldn't know which all of those files in bin/, etc lib/ etc. belong to each other. If I start installing them to /opt/software1/, the maintenance problem just multiplies and I've to keep track of even more paths I'd need to add for compiling further packages or need to have them in the LD library path, etc.



But when I install software directly within /usr I just get a bad feeling, no longer being able to properly tell which of my custom installation files belong where. It's easy to determine if a given file belongs to a package, but if it doesn't, on large custom installation, it's a pain to remember or figure out where a file belongs to.



It gets worse when I want to remove files. They're scattered in bin/, lib/, man/, etc. So if I want to remove a custom installed package completely, I've to perform manual work or worst case, I'm no longer able to determine all of them and I'll leave stale files around.



I know I could also start building a custom package out of it. But that would require me analyzing every software I install upfront? I've no real experience with creating .deb files and I also do not plan to distribute them to other installations. All I want is a nice way to keep track of custom local installations.



I probably could come up with something on my own, i.e. making a list of all files (find / ...), installing software and then do this again and save the diff somewhere. Just wonder if there might be a better way.










share|improve this question
















I'm compiling and installing software myself on Linux (Debian Squeeze in my case). Downloading, unpacking, installing dependent developer libraries/headers, running configure then make.



Up to this point everything remains still in the source directory. Once I run make install, basically I start having non-package files lying around in /usr/local or /usr (depends on --path switch).



I also tried installing it into a different place, e.g. /opt, but this often causes troubles somewhere. I.e. I've always to remember to specifically add this to the header/linker path. Or I install a package there and the system wide pkg-config doesn't know about it (I'd again need to add extra flags). And even if I wold install every custom software in /opt, I wouldn't know which all of those files in bin/, etc lib/ etc. belong to each other. If I start installing them to /opt/software1/, the maintenance problem just multiplies and I've to keep track of even more paths I'd need to add for compiling further packages or need to have them in the LD library path, etc.



But when I install software directly within /usr I just get a bad feeling, no longer being able to properly tell which of my custom installation files belong where. It's easy to determine if a given file belongs to a package, but if it doesn't, on large custom installation, it's a pain to remember or figure out where a file belongs to.



It gets worse when I want to remove files. They're scattered in bin/, lib/, man/, etc. So if I want to remove a custom installed package completely, I've to perform manual work or worst case, I'm no longer able to determine all of them and I'll leave stale files around.



I know I could also start building a custom package out of it. But that would require me analyzing every software I install upfront? I've no real experience with creating .deb files and I also do not plan to distribute them to other installations. All I want is a nice way to keep track of custom local installations.



I probably could come up with something on my own, i.e. making a list of all files (find / ...), installing software and then do this again and save the diff somewhere. Just wonder if there might be a better way.







linux packages






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 29 at 10:18









Gerald Schneider

6,90332647




6,90332647










asked Apr 30 '12 at 7:05









markmark

96141632




96141632







  • 1





    Nicely put together all the typical "build yourself" problems. Thanks! :-)

    – poige
    Apr 30 '12 at 7:10












  • 1





    Nicely put together all the typical "build yourself" problems. Thanks! :-)

    – poige
    Apr 30 '12 at 7:10







1




1





Nicely put together all the typical "build yourself" problems. Thanks! :-)

– poige
Apr 30 '12 at 7:10





Nicely put together all the typical "build yourself" problems. Thanks! :-)

– poige
Apr 30 '12 at 7:10










3 Answers
3






active

oldest

votes


















4














Have you tried checkinstall (it's in the Debian repos)?



Instead of using make install you can use checkinstall and it will create (and install) a package with the software so that you can track it using your package manager.






share|improve this answer






























    4














    Since you asked for best practices: The best one is to don't install software not in the repositories. If that's not possible, the best practice is to build packages out of it and use the systems package manager to manage them.



    You will need to come up with a way to check for important updates, but how you do that is up to you. But if they are there, you need to build again and update from the new packages.






    share|improve this answer


















    • 1





      And when several versions of the same should co-exist on a system use tools like Environment Modules.

      – Dmitri Chubarov
      Apr 30 '12 at 7:17


















    1














    I dunno whether you'll find this helpful at last, but I'll share it at least: «… The NetBSD Packages Collection (pkgsrc) is a framework for building third-party software on NetBSD and other UNIX-like systems …»






    share|improve this answer























      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "2"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f384418%2fbest-practice-to-track-custom-software-installations-on-linux-in-usr%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4














      Have you tried checkinstall (it's in the Debian repos)?



      Instead of using make install you can use checkinstall and it will create (and install) a package with the software so that you can track it using your package manager.






      share|improve this answer



























        4














        Have you tried checkinstall (it's in the Debian repos)?



        Instead of using make install you can use checkinstall and it will create (and install) a package with the software so that you can track it using your package manager.






        share|improve this answer

























          4












          4








          4







          Have you tried checkinstall (it's in the Debian repos)?



          Instead of using make install you can use checkinstall and it will create (and install) a package with the software so that you can track it using your package manager.






          share|improve this answer













          Have you tried checkinstall (it's in the Debian repos)?



          Instead of using make install you can use checkinstall and it will create (and install) a package with the software so that you can track it using your package manager.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Apr 30 '12 at 8:13









          AlvaroAlvaro

          26112




          26112























              4














              Since you asked for best practices: The best one is to don't install software not in the repositories. If that's not possible, the best practice is to build packages out of it and use the systems package manager to manage them.



              You will need to come up with a way to check for important updates, but how you do that is up to you. But if they are there, you need to build again and update from the new packages.






              share|improve this answer


















              • 1





                And when several versions of the same should co-exist on a system use tools like Environment Modules.

                – Dmitri Chubarov
                Apr 30 '12 at 7:17















              4














              Since you asked for best practices: The best one is to don't install software not in the repositories. If that's not possible, the best practice is to build packages out of it and use the systems package manager to manage them.



              You will need to come up with a way to check for important updates, but how you do that is up to you. But if they are there, you need to build again and update from the new packages.






              share|improve this answer


















              • 1





                And when several versions of the same should co-exist on a system use tools like Environment Modules.

                – Dmitri Chubarov
                Apr 30 '12 at 7:17













              4












              4








              4







              Since you asked for best practices: The best one is to don't install software not in the repositories. If that's not possible, the best practice is to build packages out of it and use the systems package manager to manage them.



              You will need to come up with a way to check for important updates, but how you do that is up to you. But if they are there, you need to build again and update from the new packages.






              share|improve this answer













              Since you asked for best practices: The best one is to don't install software not in the repositories. If that's not possible, the best practice is to build packages out of it and use the systems package manager to manage them.



              You will need to come up with a way to check for important updates, but how you do that is up to you. But if they are there, you need to build again and update from the new packages.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Apr 30 '12 at 7:13









              SvenSven

              88.1k10148202




              88.1k10148202







              • 1





                And when several versions of the same should co-exist on a system use tools like Environment Modules.

                – Dmitri Chubarov
                Apr 30 '12 at 7:17












              • 1





                And when several versions of the same should co-exist on a system use tools like Environment Modules.

                – Dmitri Chubarov
                Apr 30 '12 at 7:17







              1




              1





              And when several versions of the same should co-exist on a system use tools like Environment Modules.

              – Dmitri Chubarov
              Apr 30 '12 at 7:17





              And when several versions of the same should co-exist on a system use tools like Environment Modules.

              – Dmitri Chubarov
              Apr 30 '12 at 7:17











              1














              I dunno whether you'll find this helpful at last, but I'll share it at least: «… The NetBSD Packages Collection (pkgsrc) is a framework for building third-party software on NetBSD and other UNIX-like systems …»






              share|improve this answer



























                1














                I dunno whether you'll find this helpful at last, but I'll share it at least: «… The NetBSD Packages Collection (pkgsrc) is a framework for building third-party software on NetBSD and other UNIX-like systems …»






                share|improve this answer

























                  1












                  1








                  1







                  I dunno whether you'll find this helpful at last, but I'll share it at least: «… The NetBSD Packages Collection (pkgsrc) is a framework for building third-party software on NetBSD and other UNIX-like systems …»






                  share|improve this answer













                  I dunno whether you'll find this helpful at last, but I'll share it at least: «… The NetBSD Packages Collection (pkgsrc) is a framework for building third-party software on NetBSD and other UNIX-like systems …»







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 30 '12 at 7:14









                  poigepoige

                  7,13211537




                  7,13211537



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Server Fault!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f384418%2fbest-practice-to-track-custom-software-installations-on-linux-in-usr%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

                      What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

                      Esgonzo ibérico Índice Descrición Distribución Hábitat Ameazas Notas Véxase tamén "Acerca dos nomes dos anfibios e réptiles galegos""Chalcides bedriagai"Chalcides bedriagai en Carrascal, L. M. Salvador, A. (Eds). Enciclopedia virtual de los vertebrados españoles. Museo Nacional de Ciencias Naturales, Madrid. España.Fotos