0

I want to make some small trivial UI changes to various standard applications such as evince, kate, texstudio, etc. Since these are all open source applications, I know I can just download the code, make the change I want (possibly easier said than done, but that's a separate discussion), compile, and run the resulting binary executable.

Question: How to properly install the modified binaries on my system?

I know I could just keep them somewhere in my home folder and modify $PATH in my .bashrc appropriately so that invoking them in the terminal leads to my modified version rather than the standard version. But I'd rather put my modified binaries in the usual location /usr/bin or whatever (overwriting the standard version currently sitting there), so that my entire system (launcher menu, browser, etc.) uses them. How should I go about doing this so as not to break anything? Should I just copy it to the right location using cp, or should I try to create a .deb package with my modified application and then run sudo apt install on it? Will the source code typically come with a Makefile which generates said .deb file for me? What happens when sudo apt upgrade downloads an updated version of one of these applications? Do I just recompile my version and overwrite it again?

I realize the answer may depend on what application I'm modifying, but I hope there may still be something helpful one can say in general. If not, I'd be happy with an answer regarding any of the specific applications I've mentioned above (evince, kate, or texstudio).

2 Answers 2

2

Since you mention .debs, I recommend making your changes to the package source (which you can get with apt source kate etc.) and use that to build a package.

See the procedure given in What happens to self-built packages when I `apt dist-upgrade`? for details.

0

There's no standard way for doing that as most distros insist on using the packaged applications or you're SoL.

  1. How I'd do that: I'd simply delete the existing packages (to avoid running them by accident) and install my own ones into /usr/local - this directory exists exactly for this purpose.

    If you package them into debs you risk accidentally updating them to your distro packages and losing your changes.

  2. Here's another idea. There are tons of online build systems, you may sign up and create your build. The advantage would be that it would be relatively easy to synchronize with your distro once it updates the packages in question.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.