Awesome Window Manager – Using on CentOS 7

awesomecentos

Awesome works fine on Fedora 19, so it should work on CentOS 7, right? Well, I tried and failed to get it to work. After a long time, I managed to compile it from source and set GDM to boot from an ~/.xinitrc. However, all I got was the window manager starting but none of the keybinds (keyboard or mouse) were working at all.

I am looking for a usable step by step installation procedure.

Best Answer

For Starters, I would remove the source you compiled, then add the official YUM Repo for Fedora, using the Steps from this post. Afterwards, since the repo you just added contains AwesomeWM, use YUM to install it. See Here.


Reasoning: It's nearly impossible to mix a source based package with a system based on binary packages, as you easily create a version mismatch. Consider the following:

  1. Binary package Version A depends on and only works with dependency Version B. Dependency Version B uses Library C.
  2. Connecting the Logic in 1, Binary Package Version A, also implicitly depends on Library C.
  3. You built dependency Version B with library Version D (If C = 1.0, D = 1.1)
  4. Dependency Version B built successfully, but Binary Package Version A is still linked to Library Version C, therefore Binary Package A, now loads unresolved symbols, because the symbols in Library Version C were replaced with newer symbols in Version D.
  5. Library Version D, superseded Library Version C, therefore the developer decided not to link his new Version D to Version C.
  6. To Fix this, every package on the system, that is linked to library Version C, must be recompiled using Library Version D.

You're Stuck Here because all the packages on a Binary System were prepackaged, and some or all of them will break, when compiled from source

You may be able to fix this by finding newer versions of all packages using Library Version D, but from experience, this is very unlikely, which is why I use Gentoo.


Update from Deleted Comments

I was asked to explain how to handle an out of date repo, and what to do if the repo expires, since CentOS, and Fedora are on radically different release schedules.

As per your questions in now deleted comments below, when adding a repository:

  1. If support for that repository ends, add the repository that superseded it. i.e., Fedora 19's repo will be replaced by Fedora 20.
  2. After updating to the new repository, you must decide as a user which direction to take, as you will have version number mismatches between packages in the new repo. For Example in CentOS Library Version A will have been superseded by Library Version B in Fedora. Having Added Fedora as a repo, if a package you want exists in Fedora, but NOT in CentOS, and it is asking for a newer version of a package, you must either a.) see if the same package exists in the CentOS Testing repo, or b.) allow the install to install the package from the Fedora repo. In this way, you will have a mixed or hybrid install. If you add the CentOS Testing repo in the same way you added the Fedora Repo above, I believe YUM will ask you which package you want to use, if the same package exists in both.
  3. If there is a Stable Library Version B in Fedora, and a Testing Library Version B in CentOS, use the Testing Version in CentOS, as that version is "native" to your OS. Whenever possible, you want to install versions native to your OS, even if they are in Testing. By doing so, if the package doesn't work you report a bug to your OS maintainers, so that the package stays in Testing until the bug is fixed before being moved to Stable
Related Question