How to Browse Ubuntu APT Repository Packages Online Without Local Internet Access


2 views

When setting up an Ubuntu 10.04 x64 server in an air-gapped development environment, the inability to access package repositories locally creates significant hurdles. Traditional apt-cache commands become useless without network connectivity, yet you still need to plan your production environment's package requirements.

Ubuntu provides several web-based methods to explore repository contents:

  1. Launchpad Packages: https://launchpad.net/ubuntu/+packages
  2. Ubuntu Packages Search: https://packages.ubuntu.com/

For example, to check available versions of PHP in Lucid Lynx (10.04):

https://packages.ubuntu.com/lucid/php

The results will show:

  • Available architectures (amd64, i386, etc.)
  • Package dependencies
  • Reverse dependencies
  • Download links for .deb files

Use these URL patterns for precise queries:

# Search by package name pattern
https://packages.ubuntu.com/search?keywords=python&searchon=names&suite=lucid§ion=all

# Search in package descriptions
https://packages.ubuntu.com/search?keywords=web+server&searchon=contents&suite=lucid

Directly navigate repository structures using any mirror, like:

http://archive.ubuntu.com/ubuntu/dists/lucid/main/binary-amd64/Packages.gz

Download and extract this file to view all package metadata for the main repository.

After identifying needed packages, prepare an installation script:

#!/bin/bash
# Package list generated from web research
PKGS="php5 mysql-server apache2 libapache2-mod-php5"

sudo apt-get update
sudo apt-get install -y $PKGS

Save this script for execution when the production system goes online.

For complex dependency chains, use apt-rdepends on a connected system first:

apt-rdepends python3-dev | grep -v "^ "

This outputs all dependencies in a flat list suitable for web searching.


When setting up an Ubuntu 10.04 server (x64) in an isolated development environment, accessing package repositories becomes problematic. Many developers face this exact scenario where production systems will have internet access, but development machines can't connect to external networks during setup.

Fortunately, Ubuntu provides multiple ways to browse repository contents via web browser:

For advanced users who want to script repository queries, here's a Python example using the Launchpad API:

from launchpadlib.launchpad import Launchpad

lp = Launchpad.login_anonymously('ubuntu-package-search', 'production')
ubuntu = lp.distributions['ubuntu']
lucid = ubuntu.getSeries(name_or_version='lucid')

for package in lucid.getPublishedBinaries(status='Published'):
    print(f"Package: {package.binary_package_name}")
    print(f"Version: {package.binary_package_version}")
    print(f"Architecture: {package.distro_arch_series.architecture_tag}\n")

For repeated offline development, consider creating a local package cache:

  1. On an internet-connected machine matching your target architecture (amd64 in this case):
sudo apt-get install apt-mirror
sudo nano /etc/apt/mirror.list

Configure with:

deb-amd64 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu

Then run:

sudo apt-mirror

Ubuntu provides complete package lists that can be downloaded:

wget http://archive.ubuntu.com/ubuntu/dists/lucid/main/binary-amd64/Packages.gz
gunzip Packages.gz
grep "^Package:" Packages | less

This gives you a complete list of available packages without requiring an active connection to the repository.

While offline development presents challenges, Ubuntu's ecosystem provides multiple ways to access package information externally. These methods are particularly valuable when preparing installations for air-gapped environments or when planning deployments in advance.