74
/usr/bin/perl install-module.pl --all
ERROR: Using install-module.pl requires that you install "make".

I need to install make on my ubuntu on AWS EC2. How can I do that ? I could finally install build-essential also successfully.

# make
make: *** No targets specified and no makefile found.  Stop.
  • which ubuntu version do you use? – tampis Jul 8 '12 at 3:00
  • Version I am using is 11.04 (GNU/Linux 2.6.38-8-virtual x86_64) – Deepak Singhal Jul 8 '12 at 3:07
  • 1
    just saw, that on my ubuntu 12.04 there is also a package make. probably sudo apt-get install make will work... – tampis Jul 8 '12 at 3:10
  • sudo apt-get install make Reading package lists... Done Building dependency tree Reading state information... Done Package make is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'make' has no installation candidate – Deepak Singhal Jul 8 '12 at 3:24
  • The make package definitely should be available; I have version 3.81-8.1ubuntu1 on my system. You might have a problem with your /etc/apt/sources.list, which defines where apt-get looks for packages. – Keith Thompson Jul 8 '12 at 6:16
142

Run the command:

sudo apt-get install build-essential

Chances are you will need things like gcc to actually do the building so you might as well install those as well. The build-essential package will install other tools used along with make.

| improve this answer | |
3

It definitely looks like make is installed on your box. The reply you are getting is actually an error generated by make, complaining that it can't file the Makefile (which would tell it what needs to be done)

Is there any Makefile.pl in the module you are trying to install? If so, try:

$ perl Makefile.pl
$ make
| improve this answer | |
0

As tuxpiper says, make is already installed. What reveals this is the "No targets specified and no makefile found" message, which is produced by make itself.1

install-module.pl is an installation script that is part of Bugzilla. There isn't enough information in the question to be entirely certain that Bugzilla is what's being installed--perhaps there is other software that ships with a script by that name--but the exact problem described here is one that people have had while installing Bugzilla.

The problem in this situation is that, behind the scenes, install-module.pl uses cpan (a Perl package manager) which doesn't find and use make even though it is installed.

3h4x has given a solution to this. You can help cpan find make by running

cpan

to enter the cpan shell, and then running the CPAN commands:

o conf make '/usr/bin/make'
o conf commit

Source: This answer, by 3h4x, to Bugzilla install-module.pl can't find “make” but it's installed and in my path

Note that the module being referred to here in the script name is a Perl module, and not any other kind of module such as a kernel module. So if you did not already have make and the other necessary development tools, installing build-essential should be sufficient to provide them, though it doesn't substitute for configuring cpan if necessary.

This question is old and the problem may no longer be common. So I suggest that users installing Bugzilla on newer Ubuntu systems not run those cpan commands until they have actually observed the problem with make not being found even though it's installed.

1 I've posted about this before, apparently. I had forgotten about that when I wrote this answer. But it turns out this answer is a bit different. For now I'll keep this answer, which addresses the broader issues like what software this applies to, what kind of modules are being referred to, and how readers shouldn't assume they'll have this problem today. But I've made it community-wiki so other people can edit it more easily and so I don't generate reputation from it.

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.