Ubuntu – Will a manually installed program over a program isntalled by repository be replaced back on upgrade

Ubuntu – Will a manually installed program over a program isntalled by repository be replaced back on upgrade

apteclipseupgrade

I had Eclipse installed from apt-get, but I needed Mars version so I followed this guide, but I forgot to remove the older version first. If a new version comes out in the repository, will it revert back the version of Eclipse I installed in Unity / desktop. In alternative, if I remove through apt-get, will it delete the links I created? What about dependencies?

Thanks in advance.

Best Answer

  • As always, it depends. This is one of the potential problems when installing from source, the names and locations of libraries and binaries can conflict between apt (apt-get) and sudo make install

    There are 2 general solutions:

    First – Installing source code into /usr/local – minimizes conflicts with system files in /usr

    This is what I generally do

    ./configure --prefix=/usr/local
    make
    sudo make install
    

    Second – Probably better, use check install

    sudo apt-get install checkinstall
    ./configure
    make
    sudo checkinstall
    

    This makes a .deb from your source code and thus works better with apt. The package can then be installed and removed similar to any other .deb.

    See https://help.ubuntu.com/community/CompilingEasyHowTo

    You would then put the package on hold

    see How to prevent updating of a specific package?

    and then update the package, manually downloading the source code and re-compiling (with checkinstall) or taking it off hold and using the ubuntu repositories (apt).

    Note: IMO installing into /usr/local is LEAST likely to result in problems with system files as it is cleaner (keeps the source files and system files completely separate). checkinstall is very relilable, but, if there is a conflict you can break the system.

  • Add a Comment

    Your email address will not be published. Required fields are marked *