Saturday, November 23, 2013

Fixing : The Eclipse executable launcher was unable to locate its companion shared library

After upgrading from Ubuntu 12.10 to 13.04, I had this problem.

As it is usual case with eclipse "eclipse.ini" was the point of issue. 

This file can be found in /etc/eclipse.ini

Here are the contents my eclipse.ini file:

####################################################################
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.dist.jar

--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.100.dist

-showsplash
org.eclipse.platform

--launcher.XXMaxPermSize
256m

--launcher.defaultAction
openFile

-vmargs
-Xms1024m
-Xmx1600m
-XX:MaxPermSize=1024m
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins 

####################################################################

So first test was to check existance of org.eclipse.equinox.launcher_1.2.0.dist.jar

and org.eclipse.equinox.launcher.gtk.linux.x86_1.1.100.dist on system. 

Upgrade replaced these files with newer versions. 
  
So fixing this issue was as simple as changing names of these files to match newer version. 

New contents my eclipse.ini file

####################################################################  

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.dist.jar

--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.dist

-showsplash
org.eclipse.platform

--launcher.XXMaxPermSize
256m

--launcher.defaultAction
openFile

-vmargs
-Xms1024m
-Xmx1600m
-XX:MaxPermSize=1024m
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse/dropins 

######################################################################  

Wednesday, November 6, 2013

Configure apt-get to work from behind the proxy server

I have divided this tutorial in three parts.

In the first part we enable proxy authentication for all bash commands.
In the second part of this tutorial, I will describe the procedure for enabling proxy authentication for aptitude package manager or famously known as APT. 
The third part deals with bit of security and gives more insight of the chmod command. 

Part I: Edit bash.bashrc.

bash.bashrc is configuration file for the bash shell. There are lot of ways in which you can customize shell experience using this file. For editing bash.bashrc you need to be root. Run following command to open this file with root privileges

$ gksudo gedit
You will be asked to authenticate, enter password for the admin account. 
Now from gedit open /etc/bash.bashrc and add following lines at the end of this file

Export http_proxy = http://username:password@proxyserver:port/
Export https_proxy = http://username:password@proxyserver:port/
Export ftp_proxy = http://username:password@proxyserver:port/

where <username> is your username and <password> is your password. 
For example:

Export http_proxy = http://sumit:password@10.10.1.1:3128/
Export https_proxy = http://sumit:password@10.10.1.1:3128/
Export ftp_proxy = http://sumit:password@10.10.1.1:3128/
Save this file. 

Part II: Edit apt.conf 

As you might have guessed, apt.conf is configuration file for APT. Once again run gedit in root mode
using 

$ gksudo gedit

From /etc/apt/ open apt.conf file. 
[Depending on your Linux distribution this file may be absent in that directory, in which case you should create new file and save it as apt.conf in /etc/apt/ ].

Add following details to this file:

Acquire::http::proxy "http://username:password@proxyserver:port/";
Acquire::https::proxy "https://username:password@proxyserver:port/";
Acquire::socks::proxy "socks://username:password@proxyserver:port/";
This should get APT working on your system. But as you may have already noticed that these two files are stored as a plain text and anyone can open and read these files. To prevent this threat you can use chmod which stands for 'change mode'.

Friday, November 1, 2013

Repack packages [Generate installation files from installed applications]: Ubuntu [Debian]

There is a way to repack installed packages from Ubuntu, so that the same package can be used to install application on other systems as well. Packages are nothing but installation files. Usually we end up downloading these packages for every new installation, in this post we will discuss how to avoid that.  

1) First of all we need to install fakeroot.


"Fakeroot" simulates the root environment for execution of commands which require root privileges otherwise. 

2) Install dpkg. dpkg is a package manager for Debian.


3) Now next step is to repack the package.
This script requires 'package name' of application/library to repack. Usually name of packages and applications/libraries are same, but this is not true in every case. For example consider opencv which is collection of many libraries.

Package name can be confirmed using following command.


Having done that use following command to repack.



Entire Backup

The procedure explained above is good only if you need backup of select applications. To repack entire system you need better strategy since typing name of every single package is not that good idea. 

So to begin with, we first of all generate a list of installed packages and store that output to a text file.


The output file contains a list of packages. Every row begins with the name of package and the status of that package. We need to remove all the packages which are marked as deinstall from the list. For this you can use simple search and replace. 

Next step is to reformat this output file so that is can be as a bash script.  Delete all the occurrences of word "install" and remove all new-line characters from the file. Add "sudo fakeroot dpkg-repack " at the beginning of file and save this file as backup.sh . Change file permissions to make it executable and execute backup.sh from terminal. This will generate Debian packages for all the listed package names. 
The script should look like this,