Membangun APT-Web v2

Date: 2015/10/30
Categories: blog

Apa ini?

APT-Web adalah aplikasi web yang membantu menyediakan tautan unduh untuk paket-paket aplikasi berbasis *.deb dari distribusi yang telah ditentukan. APT-Web sangat berguna untuk pengguna yang mengalami kesulitan akses internet namun memerlukan paket-paket tertentu untuk dipasang di komputernya.

Contoh kasusnya seperti ini :

Ary tinggal di desa yang tidak memiliki akses internet dari Telkom. Akses internet via GSM (3G, HSDPA) juga tidak bisa diandalkan karena tempat tinggal Ary dikelilingi oleh pohon kelapa yang tinggi. Ary memiliki sebuah PC yang terpasang sistem operasi Ubuntu 15.10. Suatu hari Ary ingin menggunakan aplikasi Krita namun tidak dapat memasang langsung dari lumbung Ubuntu karena terkendala akses Internet.

Karena suatu kebutuhan, Ary pergi ke kota dan menyempatkan diri mampir ke warung internet. Di sana Ary membuka situs APT-Web, mengetik krita di kolom pencarian dan APT-Web akan memberikan Ary tautan unduh paket *deb. untuk aplikasi Krita, lengkap dengan paket ketergantungannya.

Catatan

Berbeda dengan versi sebelumnya, Pak Fajran telah menulis ulang APT-Web versi 2 dengan Go dan Angular. Versi pertama (menggunakan PHP) bisa dilirik di https://github.com/fajran/apt-web/tree/v1.

Kebutuhan
Bangun
$ git clone https://github.com/fajran/apt-web.git
$ cd apt-web
{
  "apt-get": "/usr/bin/apt-get",
  "apt-cache": "/usr/bin/apt-cache",

  "dist-dir": "virtuals/",
  "dist-list": [
    {"name": "Ubuntu 14.04 Desktop amd64",
     "path": "ubuntu-14.04-desktop-amd64",
     "arch": "amd64"}
  ],

  "repo-base-url": "http://archive.ubuntu.com/ubuntu",
  "repo-list": [
    {"name": "Kambing UI",
     "url": "http://kambing.ui.ac.id/ubuntu"}
  ]
}

Berkas ini perlu disunting, yaitu bagian dist-list diganti ke Ubuntu 15.10, tambah arsitektur 32 bit, dan tambahkan lumbung milik UGM. Sunting menjadi seperti berikut :

{
  "apt-get": "/usr/bin/apt-get",
  "apt-cache": "/usr/bin/apt-cache",

  "dist-dir": "virtuals/",
  "dist-list": [
    {"name": "Ubuntu 15.10 Desktop amd64",
     "path": "ubuntu-15.10-desktop-amd64",
     "arch": "amd64"},
    {"name": "Ubuntu 15.10 Desktop i386",
     "path": "ubuntu-15.10-desktop-i386",
     "arch": "i386"},
  ],

  "repo-base-url": "http://archive.ubuntu.com/ubuntu",
  "repo-list": [
    {"name": "Kambing UI",
     "url": "http://kambing.ui.ac.id/ubuntu"},
    {"name": "UGM",
     "url": "http://repo.ugm.ac.id/ubuntu"}
  ]
}
$ cd virtuals
$ cp -vR base ubuntu-15.10-desktop-i386
$ cp -vR base ubuntu-15.10-desktop-amd64
$ cd ubuntu-15.10-desktop-amd64
APT {
        Get {
                Download-Only   "true";
        };
        Architecture "amd64";
};

Dir {
        State "./dir/apt" {
                Status  "./status";
        };
        Cache "./dir/cache" {
                Archives        "./dir/archives";
        };
        Etc "./dir/etc" {
                SourceList      "./sources.list";
        };
};
deb http://archive.ubuntu.com/ubuntu/ willy main restricted universe multiverse
$ apt-get -c apt.conf update
Jalankan
$ go run src/aptweb/cmd/apt-web/main.go

Dengan konfigurasi bawaan, APT-Web akan berjalan di port 8080



>> Home