Cogito ergo sum

Making an installer/updater for Filezilla on Ubuntu Linux3 min read

I use Filezilla extensively. I have been using it since almost the first version. It’s really simple. Plus, it’s an Open Source software 🙂
On my Linux machine (Ubuntu 16.04) I use always the latest version of it. I find it really important to keep the program up to date. I don’t use a PPA repository or the default version which can be found in Ubuntu Software Center, because it’s not the latest version. So every time when I get notified about an update, I download it from the official website, uncompress it, then install it. What I mean by installing it, is copy the downloaded files to the /opt/filezilla3  directory and replacing the older files with the newer ones.

This process is really time consuming. It’s sometimes annoying, because you have to repeat all this steps. So I was thinking about making an installer/updater for Filezilla. The script should be able to do the following:

  1. Download the latest version of Filezilla
  2. Uncopmress the downloaded files
  3. Copy the files to the right directory, most of time /opt/filezilla
  4. Verify that the symlink is correctly created which enables the user to run filezilla from the command-line by typing filezilla

Here is the shell script which performs the mentioned steps above , except the the first step. The latest version of FileZilla (FileZilla 3.28.0) doesn’t run correctly on my Ubuntu 16.04. In addition, I have to find a way to get the latest version without hardcoding it in the script (I have to find a creative way to do it).

#Download using wget
wget -O filezilla "https://dl1.cdn.filezilla-project.org/client/FileZilla_3.52.2_x86_64-linux-gnu.tar.bz2?h=DFoebf-Nv20UnqZoxcYomg&x=1612947940"

#Uncompress the file 
tar xvf filezilla

#Check if the dir already exists
if [ -d "/opt/FileZilla3" ]
 then
 sudo rm -r /opt/FileZilla3
 fi
#Move the dir to /opt/
sudo mv -v FileZilla3/ /opt/

#Check if the symlink already exists
if [ -e /usr/local/bin/filezilla ]
 then
 sudo rm /usr/local/bin/filezilla
 fi

#Create a new symlink 
sudo ln -s /opt/FileZilla3/bin/filezilla /usr/local/bin/filezilla

#Copy the filezilla.desktop file to /usr/share/applications/ to enbale you to bookmark filezilla (add it to Ubuntu dock)
sudo cp /opt/FileZilla3/share/applications/filezilla.desktop /usr/share/applications/

#Make the filezilla.desktop executable
sudo chmod +x /usr/share/applications/filezilla.desktop


#Remove the downloaded file from 
sudo rm -r filezilla*

echo "Finished installing"

#Run Filezilla
filezilla &

#This should be done, because somehow the the original tar file is still present in the dir
sudo rm -r Filezilla*

This code download the 3.27.1 of Filezilla. If you want to download the latest version you have to replace the url in this line:

 wget -O filezilla "https://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.27.1/FileZilla_3.27.1_x86_64-linux-gnu.tar.bz2"

You can check this link for the latest version of Filezilla which is hosted on Sourceforge.net
https://sourceforge.net/projects/filezilla/files/FileZilla_Client/

Update 22/10/2017

I think I will make my own PPA for Filezilla for this purpose.

Update 21/04/2018
If you get an error like:
filezilla: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory
Then you have to run the following command: sudo apt-get install libpng16-16

Update 11/02/2021
The installer copies the filezilla.desktop file to /usr/share/applications/ to enable the user to add Filezilla icon to the Ubuntu dock panel.

About the author

Peshmerge Morad

Data Science student and a software engineer whose interests span multiple fields.

1 comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

By Peshmerge Morad
Cogito ergo sum