user445994
user445994

Reputation: 229

shell script vs. perl for an install script - how ubiquitous is perl?

I am wanting to create an install script in the fashion of npm's (curl http://example.com/install.sh | sh) but it leaves me asking the question: can I just write the script in perl? As far as I know, perl is installed by default on at least ubuntu, RHEL & OS X - so I'm wondering in the year 2011, can I not write shell and still be generic enough for everyone? Is there a third and better option?

This would be targeting a user's development box, not staging or production.

What I want to do specifically is use this install script to bootstrap a development environment easily without the overhead of creating and maintaining packages. The script would have 4 steps:

  1. check and make sure git is installed
  2. use git to clone a repo to cwd
  3. pull down and save a perl control script to /usr/bin, make it executable
  4. add some environment variables (related post: linux cross-distro environment variable modification via script?)

That's it. My thinking is this is simple and generic enough to use a bootstrap script rather than a package. And my target audience is a user's unix or linux local development system.

Upvotes: 0

Views: 1612

Answers (4)

daxim
daxim

Reputation: 39158

The best option is to simply use the existing, well-oiled and -used (development) toolchain for the language the target app is written in. Not doing so frivolously discards the network effects gained from the ecologies that have grown around them.

etc. etc.

Installing from the Web should be reserved for conveniently bootstrapping a user's system into the development environment.

Do tell more details about your software to get less general advice.


Edit: response to your addendum.

I dissuade you from a Web installer. This isn't bootstrapping an installation tool, this is plain installation of software and it should be done with with e.g. a Module::Build subclass.

Upvotes: 3

poisonbit
poisonbit

Reputation: 101

Use something like:

perl -E "$( wget -q -O - http://host/intall.pl )"

Also you can use

`cmd`

instead of

$(cmd)

but anyway, double-quote your choice.

Upvotes: -1

Noufal Ibrahim
Noufal Ibrahim

Reputation: 72845

I think perl is ubiquitous enough for you to write your installer in it. Shell is a lot more awkward anyway.

You might want to consider actually packaging your application as a deb or rpm or even using makeself rather than providing a raw script.

Upvotes: 3

Antonius Bloch
Antonius Bloch

Reputation: 2789

Here's a list of the various distributions of perl:

https://www.socialtext.net/perl5/distributions

Even if perl doesn't ship on every little obscure distro it's just an apt-get (or whatever) away. You might run into problems due to the various versions of perl installed however.

Upvotes: 1

Related Questions