If you want to cater for a more heterogeneous environment, then an alternative approach would be to use conda.
#Install gfortran 5 in linux using pip install
sudo -i apt-get update apt-get install gfortran but I found the program saying 'unable to locate package gfortran'.Then on a Ubuntu page I found some question regarding the same problem and I went through the solution from them but again I couldnt install the gfortran package. One thing worth mentioning is that the above is aimed at a rather homogeneous environment, where the same operating system is in use on all the client machines. I am trying to install gfortran in my computer with Ubuntu 12.04 by using these commands. The http server itself is simply serving static content, so does not need special configuration.įor Ubuntu etc, you could do similarly but with deb packages and APT. Any subsequent yum update on the clients will pick up any changes that you push to your repository.
base and EPEL) plus any other RPMs that you need to build locally, publish it to the repository on the http server and use createrepo to construct the necessary repository metadata, and create a config file in /etc/ on the clients to point to your repository and run yum install. The above is in general terms, but taking the specific example on which this experience is based, if the client machines are running CentOS, then you would create a meta-RPM with dependencies on packages in standard repositories (e.g.
#Install gfortran 5 in linux using pip software
This is from experience where this approach has worked well in setting up and maintaining a common software platform across a large number of machines (including nodes of a compute cluster) - although in cases where the required software components are not available in standard package repositories, it is then necessary to build a package for it locally and publish that to your repository this can then be added as a requirement in your metapackage. For the individual software components listed in the metapackage, the software update will pick up any updates to these in the ordinary way, provided that the dependency information in the metapackage does not specify an exact version (you could make the metapackage depend on >= some version number). If you also set up a repository on an http server containing your metapackage, and configure the package manager on the clients to point to it, then if you later decide to update the list of packages contained in your standard software suite across all the client machines, all you need to do is to publish a new version of your metapackage to the repository, and have the client machines rerun their operating system's software updater. (A metapackage is one which does not directly contain any software itself but which lists a number of dependencies that the package manager will need to satisfy when installing it.) If the packages that you want are available for installation via the standard package manager for the Linux distribution that you are using, you could build a metapackage which, when installed, will force the installation of all of the components. A possible different approach to consider.