I'm quite new to Ubuntu/Linux in general, I'm a mac user and have been able to double click/drag applications to install them.

I've recently been trying to set up some functionality on my Ubunutu 18.04 installed on my mac, and what a saga.

Read the readme, which says, use ./configure and make && makefile. I've just extracted it on my download folder... I searched on how to install something from Github, and there's no generic answer.

  1. My question is, how can I install this thing and get it onto my computer? https://github.com/p2rkw/xf86-input-mtrack#TapDragEnable

  2. which file am I supposed to make and makefile? Am I supposed to use a variable after make or just type make when I'm in the directory?

----------additional details---------

I have gone into ./configure and ./configure --help. The readme file says, the next step is to use make && makefile. I've type those commands in and a few more, but nothing happens.

I tried other ./configure commands e.g. ./configure install-sh, install-sh and this appears:

configure: WARNING: you should use --build, --host, --target
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... Invalid configuration `CC': machine `CC' not recognized
configure: error: /bin/bash ./config.sub CC failed
  • You are installing from source, a process that hasn't changed in the last three+ decades. The configure step learns what you are using (including mac osx, gnu/linux, unix..) setting up the following steps. Make is the 'compile' step... Generally you read the README or INSTALL file for instructions. The steps are not machine specific intentionally, making them work if you want to use them on a mac (osx), unix machine (bsd), or gnu/linux (ubuntu or other distro). Text files (readme etc) provide more specific clues
    – guiverc
    May 19 '18 at 4:08
  • the make can also understood by a 1980s DOS machine, or windoze (providing build utilities are included). The configure step however won't recognize a non-nix machine though (so the make won't be as successful there possibly)
    – guiverc
    May 19 '18 at 4:24
  • Thanks for the explanation. I'm using a mac, running ubuntu for the first time. Mac has made me used to things that "just works", buggers. Turned me soft. May 19 '18 at 4:35
  • 3
    For clarity, the difference compared to what you're used to is not Mac vs Linux - it's installing ready-made software from ready-made installer vs building something and installing it from source. It would be just as difficult on a Mac - you've just never done it! 😀 Installing nicely packaged stuff on Linux is also super easy.
    – Mark Smith
    May 19 '18 at 4:43
  • To properly format a block of terminal output, paste the text, select the text, and press the {} button in the editor (or press Ctrl-K). May 19 '18 at 5:06

If you'd like to save some effort and have the convenience of the APT package manager supporting you, xf86-input-mtrack is provided in Ubuntu's standard universe repository through the package xserver-xorg-input-mtrack.

Note that, except for Ubuntu 14.04, version 0.3.1 is provided, which is somewhat older than 0.5.0 at your Github link. Here's the Github readme for version 0.3.1, where you can see that TapDragEnable is still included, if you needed that in particular.

To install it:

  1. Open a terminal (press Ctrl+Alt+T).
  2. Run the following:

    sudo apt-get update
    sudo apt-get install xserver-xorg-input-mtrack
  3. Reboot.

  • did this, might have dones something right.. cause my track pad doesn't work anymore after a reboot. lol... I'm searching for the app and can't seem to find the "mtrack" or "xorg".. May 19 '18 at 4:55
  • The settings for it should be located in the file /usr/share/X11/xorg.conf.d/50-mtrack.conf. You'll need to edit it with something like sudo nano. You can see the possibilities for options in the Configuration section of the 0.3.1 readme. If all else fails, you can uninstall with sudo apt-get purge xserver-xorg-input-mtrack and a reboot. May 19 '18 at 5:14
  • Oh, and I think you'll need to reboot after saving any changes to the file to see the effects. May 19 '18 at 5:21
  • Thanks @Chai T.Rex , you've been amazingly generous with your knowledge but i've gone in with sudo nano to edit the file to Section "InputClass" MatchIsTouchpad "on" Identifier "Touchpads" Driver "mtrack" EndSection for a minimal configuration and my trackpad still wouldn't move unfortunately. May 19 '18 at 5:54

As pointed out by other answers: If you are solely interested in getting the software installed, using a package manager like apt is the easiest way to go.

But as this does not answer the question of how to get the software installed from a Github download, I want to clarify a possible misunderstanding and outline the most common steps to install software from Github.

It is important to note that Github is primarily hosting source code repositories. This means that what you get by clicking on the download button of a Github repository is not an executable program or installer, but the source code of the program. Some repositories provide pre-built executables at the "releases" page of the repository. You can reach this page by clicking on the "releases" label of the respective Github repository page. Pre-built executables of xf86-input-mtrack for example can be found here: https://github.com/p2rkw/xf86-input-mtrack/releases

As Github can host any kind of software (and even non-software), the ways to install applications hosted on Github vary wildly. This is the reason why there are no generic instructions on how to install software from Github.

The program you want to install is written in the programming language C. C source code is almost always intended to be compiled into an executable binary file before it can be installed. The README document refers to this procedure with the term "Building". This is why this document gives you instructions on how to build as well as how to install your program.

The commands .configure, make, make install are common steps to build and install a program written in C. Most installation guides implicitly assume that you know where and under what circumstances you need to enter these commands, which sadly is discouraging for beginners. These are the steps you have to take before you can follow the instructions in the README:

  1. Open the terminal. It will provide you with a command line where you can enter commands
  2. Type in cd /path/to/your/download, but substitute /path/to/your/download with the actual path to the folder with the source code you downloaded. Hit enter to execute the command. By pointing your computer to this directory you let it know, that the following commands to build and install shall be applied there.
  3. Now follow the instructions outlined in the README.
  • There's some good information in this answer, but "follow the instructions in the README" is really insufficient here.
    – Zanna
    May 19 '18 at 19:36

Before you do anything else, please do the following

sudo apt-get install git

and then clone the repository, like so

git clone https://github.com/p2rkw/xf86-input-mtrack.git

if there is a new version available you can update easily like so (inside the folder)

git pull

Now let's see. You will need developer packages to get there. Unfortunately this is not mentioned in the description.

If you didn't install build-essential and I'd guess gcc (looks like it but then again I'm an admin not a dev), do so now. Also it's looking for gawk. I hope that's it, might be another package or lib. Didn't have the time to read all of it.

sudo apt-get install build-essential gcc autoconf gawk pkgconfig

You also need at least these packages which are difficult to identify from the errors:

sudo apt install xserver-xorg-dev x11proto-core-dev x11proto-input-dev libmtdev-dev

This may be insufficient. It depends on your setup.

Go to the folder which you "gitted" above and then again try.


If ./configure outputs errors, as a general rule of thumb, when you get an error like no package thingy found, you can try running apt search thingy and see if there is something like libthingy-dev, which is probably what you need. If not, I hate to say this, but, put the error into a search engine, and see if someone has trod the path before you...

When it exits successfully, you can run


if it outputs errors, follow the same procedure as for ./configure, and afterwards run

make clean

and when that exits successfully, you can run

sudo make install

Addtional information. If you would like to have a .deb package set the mentioned prefix and execute the package builder like so.

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

You are downloading the source of a program and building it yourself. This is a very different concept to clicking on an installer.

It doesn't matter where you unpack the source (in most cases). You're not "installing" it there, just putting it somewhere you can build it.

You just do what it says. Type those commands, exactly as written in the readme. If it doesn't work, please edit your post stating what goes wrong.

  • ok, thanks for that. Now I'm just trying to get the software running in my system. I've done abit of trial and error but doesn't seem to be going anywhere.. May 19 '18 at 4:33
  • 2
    I note from your edit that you've mistyped the instructions three times now so I suspect you're mistyping it elsewhere too. It's make && make install, not makefile.
    – Mark Smith
    May 19 '18 at 4:37
  • thanks @Mark Smith , the command make && make install returns make && makeinstall make: *** No targets specified and no makefile found. Stop. :( May 19 '18 at 4:43
  • Your question is getting a bit cluttered, and doesn't mention any problems fron running configure. Just that - don't add any parameters, just run it. Again, if it doesn't work, show us the output. If it does, the make steps should also work.
    – Mark Smith
    May 19 '18 at 4:48
  • have cleared up the other bits so if any other folks might have a chance of helping. Thanks Mark Smith. May 19 '18 at 5:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.