9

I'm trying to install Awesome's dependencies, specificall libxcb (using Ubuntu 16.04.1). What I did is run:

cd ~/Downloads
apt-get source libxcb
sudo apt-get build-dep libxcb
cd libxcb-1.11.1/
dpkg-buildpackage -us -uc

Is this the right procedure to build libxcb? Now I have a big list of *.deb files (see below). Which one should I install via sudo dpkg -i *.deb?

~/Downloads$ ls -a
.                                                libxcb-render0-dev_1.11.1-1ubuntu1_amd64.deb
..                                               libxcb-res0_1.11.1-1ubuntu1_amd64.deb
awesome-4.0                                      libxcb-res0-dbg_1.11.1-1ubuntu1_amd64.deb
awesome-4.0.tar.xz                               libxcb-res0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-1.11.1                                    libxcb-screensaver0_1.11.1-1ubuntu1_amd64.deb
libxcb1_1.11.1-1ubuntu1_amd64.deb                libxcb-screensaver0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb_1.11.1-1ubuntu1_amd64.changes             libxcb-screensaver0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb_1.11.1-1ubuntu1.diff.gz                   libxcb-shape0_1.11.1-1ubuntu1_amd64.deb
libxcb_1.11.1-1ubuntu1.dsc                       libxcb-shape0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb_1.11.1.orig.tar.gz                        libxcb-shape0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb1-dbg_1.11.1-1ubuntu1_amd64.deb            libxcb-shm0_1.11.1-1ubuntu1_amd64.deb
libxcb1-dev_1.11.1-1ubuntu1_amd64.deb            libxcb-shm0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb1-udeb_1.11.1-1ubuntu1_amd64.udeb          libxcb-shm0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-composite0_1.11.1-1ubuntu1_amd64.deb      libxcb-sync1_1.11.1-1ubuntu1_amd64.deb
libxcb-composite0-dbg_1.11.1-1ubuntu1_amd64.deb  libxcb-sync1-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-composite0-dev_1.11.1-1ubuntu1_amd64.deb  libxcb-sync-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-damage0_1.11.1-1ubuntu1_amd64.deb         libxcb-xevie0_1.11.1-1ubuntu1_amd64.deb
libxcb-damage0-dbg_1.11.1-1ubuntu1_amd64.deb     libxcb-xevie0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-damage0-dev_1.11.1-1ubuntu1_amd64.deb     libxcb-xevie0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-doc_1.11.1-1ubuntu1_all.deb               libxcb-xf86dri0_1.11.1-1ubuntu1_amd64.deb
libxcb-dpms0_1.11.1-1ubuntu1_amd64.deb           libxcb-xf86dri0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-dpms0-dbg_1.11.1-1ubuntu1_amd64.deb       libxcb-xf86dri0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-dpms0-dev_1.11.1-1ubuntu1_amd64.deb       libxcb-xfixes0_1.11.1-1ubuntu1_amd64.deb
libxcb-dri2-0_1.11.1-1ubuntu1_amd64.deb          libxcb-xfixes0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-dri2-0-dbg_1.11.1-1ubuntu1_amd64.deb      libxcb-xfixes0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-dri2-0-dev_1.11.1-1ubuntu1_amd64.deb      libxcb-xinerama0_1.11.1-1ubuntu1_amd64.deb
libxcb-dri3-0_1.11.1-1ubuntu1_amd64.deb          libxcb-xinerama0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-dri3-0-dbg_1.11.1-1ubuntu1_amd64.deb      libxcb-xinerama0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-dri3-dev_1.11.1-1ubuntu1_amd64.deb        libxcb-xkb1_1.11.1-1ubuntu1_amd64.deb
libxcb-glx0_1.11.1-1ubuntu1_amd64.deb            libxcb-xkb1-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-glx0-dbg_1.11.1-1ubuntu1_amd64.deb        libxcb-xkb-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-glx0-dev_1.11.1-1ubuntu1_amd64.deb        libxcb-xprint0_1.11.1-1ubuntu1_amd64.deb
libxcb-present0_1.11.1-1ubuntu1_amd64.deb        libxcb-xprint0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-present0-dbg_1.11.1-1ubuntu1_amd64.deb    libxcb-xprint0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-present-dev_1.11.1-1ubuntu1_amd64.deb     libxcb-xtest0_1.11.1-1ubuntu1_amd64.deb
libxcb-randr0_1.11.1-1ubuntu1_amd64.deb          libxcb-xtest0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-randr0-dbg_1.11.1-1ubuntu1_amd64.deb      libxcb-xtest0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-randr0-dev_1.11.1-1ubuntu1_amd64.deb      libxcb-xv0_1.11.1-1ubuntu1_amd64.deb
libxcb-record0_1.11.1-1ubuntu1_amd64.deb         libxcb-xv0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-record0-dbg_1.11.1-1ubuntu1_amd64.deb     libxcb-xv0-dev_1.11.1-1ubuntu1_amd64.deb
libxcb-record0-dev_1.11.1-1ubuntu1_amd64.deb     libxcb-xvmc0_1.11.1-1ubuntu1_amd64.deb
libxcb-render0_1.11.1-1ubuntu1_amd64.deb         libxcb-xvmc0-dbg_1.11.1-1ubuntu1_amd64.deb
libxcb-render0-dbg_1.11.1-1ubuntu1_amd64.deb     libxcb-xvmc0-dev_1.11.1-1ubuntu1_amd64.deb
Stephen Kitt
  • 434,908
Hölderlin
  • 1,186
  • Do you have an *excellent* reason to build it manually instead of simply installing it from an existing repository? – Julie Pelletier Jan 19 '17 at 03:54
  • 1
    @JuliePelletier No, if I tried sudo apt-get install libxcb I get Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libxcb And if I googled "install libxcb" I only find links they contains a installation from source. – Hölderlin Jan 19 '17 at 04:25
  • The simplest solution I found which would probably work is: sudo add-apt-repository ppa:klaus-vormweg/awesome; sudo apt-get update; sudo apt-get install awesome – Julie Pelletier Jan 19 '17 at 06:19
  • @JuliePelletier, which version do you install if you use the repo from klaus-vormweg? – Hölderlin Jan 19 '17 at 10:07
  • Looking at the PPA's site, it would install version 4.0 – Julie Pelletier Jan 19 '17 at 14:59
  • @JuliePelletier I'm using ubuntu 16.04, I only find awesome 3.5 in the repo you mentioned https://launchpad.net/~klaus-vormweg/+archive/ubuntu/awesome. – Hölderlin Jan 19 '17 at 15:36
  • Strangely, it seems like it was updated earlier today so you should check again. – Julie Pelletier Jan 20 '17 at 07:05

1 Answers1

19

The way you built libxcb is OK, but as Julie Pelletier says you didn't need to build it from source.

The general approach in a case like this is to use apt-cache search; apt-cache search libxcb will list all the libxcb-related packages (and a few others which happen to mention libxcb) along with their short descriptions. You can then match these up with the awesome requirements; assuming you're building the latter from source:

sudo apt-get install libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev

will install the required libraries and development files.

The build dependencies of the existing awesome package can serve as a useful guide to get started on the remaining dependencies.

Stephen Kitt
  • 434,908
  • If I run apt-cache search libxcb I got also a huge list of packages. Basically each package comes with 3 different types e.g. libname, libname-dev and libname-dbg. I see you mentioned to install only *-dev. What is the reason and when I need the other? – Hölderlin Jan 19 '17 at 10:28
  • The reason is given in the packages' descriptions: the -dev packages contain the development files, which is what you need if you're building software that uses these libraries (which is your case). The -dev packages themselves depend on the library packages (which are needed to run software using the libraries), so you'll get those too automatically. You only need the -dbg packages if you want to debug the libraries (or see their details in stacktraces). – Stephen Kitt Jan 19 '17 at 10:31
  • Thx alot, I don't know anymore why it looks that difficult for me :) – Hölderlin Jan 19 '17 at 10:54