Installing boto-rsync and other Python packages on a VPS without sudo

It's possible to install Python packages on your VPS without using 'sudo'. This requires to use Python's Virtual Environment (virtualenv): a tool to keep the dependencies required by different projects in separate places, by creating virtual Python environments for them.

The following steps detail how to install boto-rsync on a DreamHost VPS as a simple user, without using 'sudo'.

  1. In your users home directory, create a new directory for the Python project and move into it:
    [server]$ mkdir my_python
    [server]$ cd my_python/
    
  2. Create the virtual environment:
    [server]$ virtualenv venv
    New python executable in venv/bin/python
    Installing
    distribute..................................done.
    Installing pip...............done.
    

    The command makes a copy of the Python interpreter and libraries from the VPS operating system and puts them in the /venv directory.

  3. To activate the virtual environment, run the following command:
    [server]$ source venv/bin/activate
    (venv)$ 
    

    If you now run 'which python' you can see that once the virtual environment is active, the Python interpreter used is no longer the default system version.

  4. Run the following command to confirm the Python interpreter is now located in your virtualenv.
    (venv)$ which python
    /home/$YOURUSER/my_awscli/venv/bin/python
    
  5. Use 'pip' to install.
    (venv)$ pip install boto_rsync
    Downloading/unpacking boto-rsync
    Downloading boto_rsync-0.8.1.tar.gz
    Running setup.py egg_info for package boto-rsync
    ----
    Downloading/unpacking boto>=2.2.1 (from boto-rsync)
    Downloading boto-2.40.0.tar.gz (1.4Mb): 1.4Mb downloaded
    Running setup.py egg_info for package boto
    [... a bunch of output...] 
    Successfully installed boto-rsync boto
    Cleaning up...
    

The installation is now complete. You can now use boto-rsync to upload or download files in DreamObjects. For example:

(venv)$ boto-rsync -a $ACCESS_KEY -s $SECRET_KEY --endpoint objects-us-west-1.dream.io test s3://stefphone test
32.0b of  32.0b    100%     32.0b/s    0:00:00----

If you don't want to enter your access/secret key information each time you execute the command, you can create a .boto file to store them. View the following article for instructions:

See also

Did this article answer your questions?

Article last updated .