I have a machine that doesn't have internet access at all.
I installed the Haskell Platform on it using the installer which I got from another machine through a pendrive.
Now I want to install the package repa on my home machine which has no internet access. How should I do that?
My home machine is running Linux (Debian) and my office machine is Windows 7.
From a machine you can access the internet you can either:
Run cabal get pkg-name where pkg-name is the package you want.
Go to the package's page on Hackage and on the Downloads section there's a .tar.gz file you can download.
After you get it, transfer it to your other machine, extract it anywhere you'd like (a sandbox if you want it just in a sandbox). Then from that directory (where there's a .cabal file) run cabal install.
Package managers, such as cabal, work internally to get a package from a remote repository. I doubt there exist an easy workaround to make cabal install a package in offline mode.
Probably the easiest way is to find a compressed version of package, find a way to get them on the offline computer (local sharing, thumb drive, etc.) and install a package manually.
Related
I've built from source a version of GCC for Red Hat. Given that was a fairly expensive exercise, I'd like to "back up" the built version so I can avoid having to do it again on other machines or even if I scrap the VM it's currently built on.
What are my best options for doing that please?
This is what package managers are for. However, you have to build (usually) or deploy the package under the control of the package manager, because it is what keeps track of where the installed files are. You built it without using a package manager, and no longer have the complete build directory? Sorry, it's going to be quite tricky to find all the installed files.
However, if you still have the build directory and you haven't run make clean, you can just tar that up and copy that tar file somewhere, and run make install from an untarred copy of that tar file on each machine. Alternatively, you could use something like GNU Stow or XStow as a poor-man's package manager to deploy and undeploy it on various machines, by installing it to /usr/local/stow/gcc, tarring up the /usr/local/stow/gcc directory, untarring it on another machine, and then using GNU Stow to install it.
I have an RStudio server (0.99.441) instance shared by several users, running on an Ubuntu 12.04 server with R 3.2.0.
One user complained that the statement library(manipulate) was crashing because the package was missing. Looking into the issue, I found that some users had the manipulate package installed in their home under /home/user/R/x86_64-pc-linux-gnu-library/3.2/manipulate when others didn't. No trace of it in the system libraries. The users who do have it didn't install or copy it manually, so it was installed there automatically.
From what I have found, the manipulate package comes with the rstudio package, and with RStudio desktop they are installed automatically at session startup if not found. However this does not happen when starting a new session on RStudio server, and I couldn't find documentation on this issue.
One solution could be to simply copy these folders to the other users' homes, or even to the system library (rstudio package comes with RStudio and is not on CRAN), but I would like to understand how these packages ended up there in the first place and to find a clean way to install them.
I must admit i'm not much of a coder or computer scientist, but in the past a friend installed Weechat on my windows computer using Cygwin (via the Cygwin terminal of course). I have a new computer now thats running windows 8.1 and have installed Cygwin with all of the necessary packages, and downloaded the latest stable version of Weechat (1.2). I am stuck from there though and don't really know which direction to move in, the only thing I have done with Cygwin so far is moved the home terminal folder to a more easier accessible location. Would it be possible to get a step by step walkthrough of how the installation progresses after downloading both the Cygwin component and the Weechat files and scripts?
Before we you can start using WeeChat, there are a few other pieces of software you need to install with CygWin. WeeChat relies on them for its functionality, which is why they are called dependencies.
You can find a detailed list of dependencies and further instructions on this link:
Weechat on Windows
Feel free to ask for further help if the above guide wouldn't suffice.
EDIT
WeeChat is currently available via the CygWin native repositories.
Simply search for weechat in the CygWin package manager.
I already have CygWin installed, what now?
No worries, simply rerun the setup-x86-64.exe* you've downloaded. This process won't remove any of your previously installed packages. At the end of the installation process you'll be able to look for and install WeeChat.
* (on 32-bit systems, the installer would be named setup-x86.exe)
I have a project that runs on Debian and uses many packages provided from the Debian repositories.
Because of demand, I've looked into porting the project to CentOS, but found that many of the packages I require are completely missing - at least 10 dependencies would have to be compiled manually at install time on the users machine.
My question is, what is the best way to create an installer for the user's machine? Should I use automake tools (with the standard ./configure, make, make install), to compile the required libraries, or is this a non-standard approach. Note that my app doesn't actually need to be compiled since it is written in Python, so is it weird to do a "make", when you're not compiling your own app?
Should the configure script just warn the user that package X is missing, and let them handle the rest?
Should I roll my own dependency checker by runng pkg-config manually a few times for each library required, and exit if something is missing?
I'm quite new to this, so any tips to get me moving in the right direction are appreciated.
Edit: I am familiar with RPM and yum for red hat base distros, but CentOS is missing many multimedia packages that I require. An example of one of my package dependencies is "liquidsoap" which is a programmable audio engine: http://savonet.sourceforge.net/
This is available on Debian, but not Redhat/Centos
See this link on CentOS package management.
http://wiki.centos.org/PackageManagement/Yum
CentOS is redhat based and does not use .deb packages by default. However apt package management has been ported to tons of platforms, you may be able to use a port for centOS
If you use YUM whatever packages you need will be there for your application as redhat distros need all the same things that any other distro does.
EDIT: To get the details out of comments
Packages not available on the target platform either have to be built (possibly as a port) on the target platform and then shipped in the ported package (in this case YUM), or code needs to be modified and forked to use packages which already are available on the target platform. The choice depends on which is worse, or which is even possible given your constraints.
My Windows application runs under Wine, but the installation is a bit of a headache for laymen, and the wrappers I've seen online (PlayOnLinux, Wine Doors) require even more packages to be installed. Is there a way to make a package that will install Wine if the user needs it to be installed, install the application and shortcuts, all with minimal user hassle?
I don't believe there's any pre-made way to do this, but you could probably make a Debian package pretty easily that would depend on Wine, copy an MSI onto the machine, then run Wine's msiexec /i /q as the post-install script
Edit: Make sure to think about the uninstall case too! I.e. in the pre-uninstall script, run msiexec again as well.
You can bundle Wine -- that's what Picasa does -- or you can just make your package list Wine as a dependency; then the user's package manager will automatically install Wine for the user when they install your package.
Ideally your Linux package wouldn't run the Windows installer, but rather have all the files already unpacked.
The trick is to arrange for the files your package installs in /usr to show up in each user's .wine directory. You can look at how Picasa does this, but really the Wine community needs to document how to do this much better.
As always, ask at winehq.org if you need more info.
If you'd like to target the Mac OS, you can use WineBottler:
http://winebottler.kronenberg.org/
This project exists just for bundling Wine into a native Mac .app bundle in a way that's fairly hidden from the user.
Answer is simple:
Create Elf installer.
Pack Elf installer onto Exe installer resources.
Exe installer should unpack Elf installer on startup.
Exe installer must tries to run Elf installer after unpack (system call or some think).
If operation fail, we do normal install.
If operation didn't fail, we close Exe installer.