Membuat installer Slackware dari Source Code

Membuat paket Installer Slackware dari Source Code ternyata tidak begitu sulit juga loh..
Biasanya kan kita kalau menginstall software dari source code melakukan perintah ./configure, make, dan make install. Tapi gak semua file dari source code menggunakan perintah itu, ada juga beberapa file untuk penginstalannya memerlukan perintah tambahan atau berbeda.
Lalu kenapa si harus dibuat paket installer juga (untuk slackware berformat tgz/txz). Jadi kasusnya gini, saya pernah menginstal software dari source code, tetapi disaat saya ingin menghapus file itu, saya agak kebingungan  juga gimana ngapusnya, biasanya kan saya suka memakai # removepkg namafile.tgz/namafile.txz.
Oke daripada lama-lama mendingan sekarang langsung aja dicoba. Contohnya disini saya menggunakan file squid-3.0.tar.bz2 yang terletak di /home/user/Documents.
Langkah pertama adalah mengekstrak dahulu filenya dengan perintah:
# cd /home/user/Documents
# tar xzvf squid-3.0.tar.bz2

Nah dari hasil perintah di atas itu, akan terbuat sebuah folder baru dengan nama squid-3.0.
Langkah selanjutnya adalah pindah ke direktory squid-3.0 itu.

# cd squid-3.0.tar.bz2

Sekarang lakukan perintah ini:

# ./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
Atau bisa juga dengan perintah
# ./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc –libdir=/usr/lib –mandir=/usr/man

Setelah itu kita lakukan perintah make.

# make

Setelah perintah make dilakukan, sekarang saatnya mengecek apakah file ini mendukung DESTDIR atau tidak.

# grep -n DESTDIR *

Kalau mendukung, biasanya akan keluar beberapa tulisan di terminal..
Oke karena dalam kasus ini mendukung DESTDIR, langkah selanjutnya adalah membuat folder untuk hasil akhir pemaketan file ini. Misal saya membuat folder di /tmp dengan nama squid.

# mkdir /tmp/squid

Nah selanjutnya adalah melakukan perintah:

# make install DESTDIR=/tmp/squid

Nah contoh di atas kan untuk file yang mendukung DESTDIR, nah untuk yang gak mendukung bagaimana??
Gunakan perintah prefix ya…He

# make install prefix=/tmp/squid/usr

Sekarang coba kita pindah ke folder /tmp/squid, dan lihat disitu ada beberapa folder seperti folder etc, usr, dan var.

# cd /tmp/squid
# ls
Akan keluar:
etc   usr   var

Ingat yang di atas itu hanya contoh aja ya? Jadi kalo beda gak usah pusing.Hehe
Setelah itu, sekarang kita buat folder install.

# mkdir install

Oke langkah selanjutnya adalah membuat file slack-desc dan di folder /tmp/squid/install.

# vim install/slack-desc
Lalu misal isi seperti ini:
# HOW TO EDIT THIS FILE:
# The “handy ruler” below makes it easier to edit a package description.  Line
# up the first ‘|’ above the ‘:’ following the base package name, and the ‘|’
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It’s also
# customary to leave one space after the ‘:’ except on otherwise blank lines.
       |———————————————————–|
appname: appname (short description of app)
appname:
appname: Long description of appname, wrapped at 71 characters *after* the
appname: colon following “appname” (and the ‘handy ruler’ should start at
appname: that colon and be exactly 71 characters long).
appname: If there is room, there might be a link to the homepage of the
appname: application on one of these lines, but it’s not necessary.
appname:
appname: The maximum number of lines prefixed by “appname:” is 11.
appname: Lines without any other text should *not* have a space after the :
appname: 

Jangan lupa di simpan ya.. (Oya editornya bisa pakai nano juga kok. Sesuaikan aja ya. Contoh di atas kan pakai vim) Lalu lakukan strip file binary dan library. Untuk binary lakukan perintah ini:

# strip -sv usr/bin/*

Dan untuk yang library lakukan perintah ini:

# strip –strip-unneeded -v usr/lib/*.so ==> untuk file berjenis shared library
# strip –strip-debug -v usr/lib/*.a ==> untuk file berjenis static library

Nah setelah itu lakukan perintah ini:

# gzip -9 usr/man/*

Oya tolong sekali lagi disesuaikan dengan file installer yang ingin anda buat. Yang ini hanyalah contoh dari saya..
Kalo gagal, cari dulu si file man itu ada dimana. Misal:

# gzip -9 /usr/man/man8/*

Dan langkah terkahir adalah membuat file installernya….

# makepkg -l y -c n ../nama-versi-arsitektur-tag.txz
Contoh:
# makepkg -l y -c n ../squid-3.0-i386.txz

Itu untuk file berakhiran/berformat txz ya… Untuk yang tgz lakukan perintah ini:

# makepkg -l y -c n ../nama-versi-arsitektur-tag.tgz
Contoh:
# makepkg -l y -c n ../squid-3.0-i386.tgz

Nah setelah melakukan perintah itu, maka otomatis file squid-3.0-i386.tgz/squid-3.0-i386.txz akan berada di folder /tmp. Coba aja cek dengan perintah # ls /tmp..
Pasti disitu akan ada sebuah file squid-3.0-i386.tgz/squid-3.0-i386.txz.
Selanjutnya tinggal pindahin dah tu file squid-3.0-i386.tgz/squid-3.0-i386.txz ke direktory yang kita pengenin (misal di direktory /mnt/Data/Aplikasi-Offline).
Oya jangan lupa untuk menghapus folder /tmp/squid ya..

# rm -r /tmp/squid

Nah selesai dah. Gampang kan?
Kalo gak bisa, jangan gampang nyerah.. Pasti bisa kokk.. 😀
Sumber: diansuryablog
Bisa itu karena terbiasa, dan tidak bisa karena belum terbiasa dan kurang usaha

6 comments

  1. Sekedar saran penamaan paket slackware. Paket slackware dinamai sebagai berikut:

    ${NAMA_PROGRAM}-${VERSI_PROGRAM}-$ARCH-$BUILD.tgz(atau txz)

    Slackware menggunakan $ARCH untuk menunjukkan bahwa program dibangun dengan arsitektur CPU i386/i486/i586/i686/x86_64. Biasanya hal ini didefinisikan pada flags compiler misalnya CFLAGS=”-O2 -pipe -march=i486 -mtune=i686″, sehingga $ARCH akan memiliki nilai i486.

    Kemudian soal $BUILD, dapat berupa angka (1 sampai n) yang menunjukkan pembangunan paket ke-n. Disarankan untuk menambahi akhiran yang dapat membedakan paket anda dengan paket standar slackware. Saya biasanya menambahkan akhiran _wls pada paket2 buatan saya, sehingga akan tampak seperti ini:

    ${NAMA_PROGRAM}-${VERSI_PROGRAM}-$ARCH-${BUILD}_wls.txz

    Dan kemudian saya bisa memblacklist paket2 buatan saya agar tidak diproses oleh slackpkg sewaktu menjalankan slackpkg upgrade-all:

    [file: /etc/slackpkg/blacklist]
    [0-9]+_wls

  2. Bukannya malah lebih sederhana ya? cukup jalankan file squid.SlackBuild aja kok langsung dia compile (selama source code squidnya sudah diletakkan dalam folder yang sama dan versinya sudah sesuai dengan yang ada di SlackBuildnya)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s