When working with older Linux distributions like Ubuntu 9.10 (in this case packaged with RubyStack 2.0.3), you might encounter systems where even basic networking utilities are missing. The symptoms typically include:
bitnami@linux:~$ wget
-bash: wget: command not found
bitnami@linux:~$ curl
curl: error while loading shared libraries: libcurl.so.4: cannot open shared object file
bitnami@linux:~$ sudo apt-get install wget
E: Couldn't find package wget
The root cause stems from the Ubuntu 9.10 repositories being long deprecated. The standard apt-get
commands won't work because:
- Canonical no longer maintains the repositories
- SSL certificates for old repositories have expired
- Package dependencies are broken in the ecosystem
Here are three working solutions when you're stuck in this situation:
Method 1: Manual Package Download
Find a trusted source for the .deb package:
# First, try finding libcurl dependency
sudo dpkg -i libcurl3_7.19.5-1ubuntu2_amd64.deb
# Then install wget
sudo dpkg -i wget_1.12-2ubuntu1_amd64.deb
Method 2: Using Alien for RPM Conversion
If you can find RPM packages but not .deb:
# First install alien if possible
sudo apt-get install alien
# Convert and install
sudo alien -d wget-1.12-1.rpm
sudo dpkg -i wget_1.12-2_i386.deb
Method 3: Compile from Source
When all else fails, build from source:
# Download via alternate means (like scp from another machine)
tar xvzf wget-latest.tar.gz
cd wget-1.21.3/
./configure --prefix=/usr/local
make
sudo make install
After successful installation:
bitnami@linux:~$ wget --version
GNU Wget 1.12 built on linux-gnu.
bitnami@linux:~$ which wget
/usr/local/bin/wget
Remember that Ubuntu 9.10 reached end-of-life in April 2011. Any production use should consider:
- Upgrading to a supported RubyStack version
- Using containerization (Docker) instead of legacy VMs
- Implementing network-level security controls
If you still encounter library errors like libssl.so.0.9.8 not found
:
# Check existing library versions
ls -la /usr/lib/libssl*
# Symbolic link workaround (if compatible)
sudo ln -s /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
Recently, I encountered a particularly frustrating situation with Bitnami's RubyStack 2.0.3 running on Ubuntu 9.10. To my surprise, this VM image shipped without even the most basic network utilities - no wget, no curl, even man pages were missing. Here's what happened when I tried various approaches:
bitnami@linux:/var/tmp$ wget
-bash: wget: command not found
bitnami@linux:/var/tmp$ sudo apt-get install wget
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package wget
The immediate issue was that the system couldn't find packages because the repository sources were either outdated or misconfigured. Ubuntu 9.10 (Karmic Koala) reached end-of-life in April 2011, so standard repositories are no longer maintained.
When traditional package management fails, we need to get creative. Here's how to manually install wget:
# First, check if we have any working compiler tools
bitnami@linux:~$ gcc --version
gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
# Download wget source code using alternative methods
bitnami@linux:~$ sudo apt-get install lynx
bitnami@linux:~$ lynx https://ftp.gnu.org/gnu/wget/
# If lynx isn't available either, try this Python one-liner:
bitnami@linux:~$ python -c "import urllib2; open('wget-latest.tar.gz','wb').write(urllib2.urlopen('https://ftp.gnu.org/gnu/wget/wget-1.21.3.tar.gz').read())"
# Extract and compile
bitnami@linux:~$ tar -xzvf wget-*.tar.gz
bitnami@linux:~$ cd wget-*
bitnami@linux:~$ ./configure
bitnami@linux:~$ make
bitnami@linux:~$ sudo make install
If you can't compile from source, consider these approaches:
- SCP transfer - Copy wget binary from another Ubuntu 9.10 machine
- Use Perl/Python alternatives:
# Perl equivalent
bitnami@linux:~$ perl -MLWP::Simple -e 'getstore("http://example.com/file", "local_file")'
# Python equivalent
bitnami@linux:~$ python -c "import urllib; urllib.urlretrieve('http://example.com/file', 'local_file')"
After installation, verify wget works:
bitnami@linux:~$ wget --version
GNU Wget 1.21.3 built on linux-gnu.
This experience highlights the importance of checking even basic assumptions about what utilities are available in a development environment. While frustrating, it's a good reminder that sometimes we need to go back to fundamentals when working with older systems.