Penggunaan Sistim Packages
Di FreeBSD, sebuah package adalah sebuah file arsip khusus yang mengandung
banyak file didalamnya (biasanya berupa file executable, manual, dan
dokumentasinya) yang akan diinstal ketika Anda melakukan proses build dan
instal dari sebuah port. Jika dibandingkan dengan sebuah port, proses instalasi
sebuah package membutuhkan waktu yang sangat singkat, banyak diantaranya
membutuhkan waktu kurang dari satu menit.
3.1 Menginstal Packages
FreeBSD menyediakan sebuah bagian dari websitenya yang berisi mengenai
informasi mengenai ports dan packages. Anda dapat mengunjunginya pada URL
http://www.freebsd.org/ports/index.html.
Pada website tersebut terdapat daftar aplikasi yang telah tersedia sebagai
ports dan packages.
…
calife-2.8.4d
A lightweight alternative to sudo
Long description | Package | Sources | Main Web Site
Maintained by: thomas@FreeBSD.org
ccrypt-1.3
A command-line utility for encrypting and decrypting
files and streams
Long description | Package | Sources | Main Web Site
Maintained by: jim@corebsd.or.id
Requires: libgnugetopt-1.2
cfs-1.4.1
A cryptographic file system implemented as a user-space
NFS server
Long description | Package | Sources
Maintained by: green@FreeBSD.org
…
Contoh diatas adalah sebagian aplikasi yang tercantum pada website tersebut
dalam kategori aplikasi security [http://www.freebsd.org/ports/security.html].
Anda juga dapat melihat deskripsi dari setiap aplikasi serta mendownload
packages yang telah tersedia.
Setiap package didistribusikan dalam format .tgz, dan Anda dapat menemukan
keseluruhan packages pada website FreeBSD Ports [02].
4
develbox:˜ # ftp ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
Trying 204.152.184.73…
Connected to ftp.FreeBSD.org.
220 freebsd.isc.org FTP server ready.
331 Guest login ok, send your complete e-mail address as password.
230-The response ’negative@’ is not valid
230-Next time please use your e-mail address as your password
230- for example: joe@develbox.bhc.or.id
230-
230-You have reached freebsd.isc.org/ftp.freebsd.org.
230-
230-<insert some funky ASCII art here>
230-
230-This server is operated by Internet Software Consortium (ISC),
230-on behalf of the FreeBSD Project, and is serving the full
230-FreeBSD FTP archive via IPv4 and IPv6.
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Type set to I.
250 CWD command successful.
ftp> cd security
250 CWD command successful.
ftp> ls kripp*
150 Opening ASCII mode data connection for directory listing.
lrwxr-xr-x 1 110 root 20 Jun 8 16:48 kripp-0.5.tgz ->
../All/kripp-0.5.tgz
226 Transfer complete.
ftp> get kripp-0.5.tgz
local: kripp-0.5.tgz remote: kripp-0.5.tgz
150 Opening BINARY mode data connection for kripp-0.5.tgz (5287 bytes).
100% |**************************************************| 5287 00:00 ETA
226 Transfer complete.
5287 bytes received in 2.25 seconds (2.30 KB/s)
ftp> quit
221-You have transferred 5287 bytes in 1 files.
221-Total traffic for this session was 6718 bytes in 1 transfers.
221-Thank you for using the FTP service on freebsd.isc.org.
221 Goodbye.
develbox:˜ # ls -l kripp-0.5.tgz
-rw-r–r– 1 root negative 5287 Jun 8 08:56 kripp-0.5.tgz
develbox:˜ # pkg_add kripp-0.5.tgz
develbox:˜ # pkg_info -Ix kripp
kripp-0.5 Lightweight network password sniffer
Diatas adalah contoh instalasi menggunakan package dengan mendownload
package kripp terlebih dahulu dari ftpsite FreeBSD. Selain menggunakan
ftp(1), Anda dapat menggunakan fetch(1) untuk mendownload
packages yang ada pada ftpsite FreeBSD.
develbox:˜ # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
security/kripp-0.5.tgz
Receiving kripp-0.5.tgz (5287 bytes): 100%
5287 bytes transferred in 1.0 seconds (5.02 kBps)
develbox:˜ # pkg_add kripp-0.5.tgz
5
develbox:˜ # pkg_info -Ix kripp
kripp-0.5 Lightweight network password sniffer
Sebagai alternatif dan sangat disarankan, Anda dapat menggunakan option
-r pada pkg add(1). Option ini akan mendownload secara otomatis dan menginstal
package serta dependensinya.
develbox:˜ # pkg_add -r kripp
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/
packages-4-stable/Latest/kripp.tgz… Done.
develbox:˜ # pkg_info -Ix kripp
kripp-0.5 Lightweight network password sniffer
Utiliti pkg add(1) mengerti environment yang digunakan, sehingga
Anda dapat melakukan kustomisasi terhadap penggunaan utiliti tersebut.
Beberapa contoh environment yang dapat digunakan adalah:
• PKG PATH dapat digunakan untuk memberitahukan pkg add direktori
tempat packages berada.
develbox:˜ # ls -l /var/tmp/packages
total 6
-rw-r–r– 1 root wheel 5290 May 31 21:30 kripp-0.5.tgz
develbox:˜ # env PKG_PATH=/var/tmp/packages pkg_add kripp-0.5
• PKG DBDIR digunakan untuk menentukan lokasi alternatif untuk
menyimpan informasi packages yang telah diinstal. Lokasi default
adalah /var/db/pkg.
• PKG TMPDIR dan TMPDIR digunakan untuk menentukan lokasi
direktori sementara (tmp). Hal ini dimaksudkan jika space yang
dialokasikan untuk direktori /tmp, /var/tmp, atau /usr/tmp tidak
mencukupi.
• PACKAGEROOT digunakan untuk menentukan lokasi download alternatif
jika option -r digunakan. Sebagai contoh value yang dapat digunakan
adalah ”ftp://ftp3.FreeBSD.org”.
• Sama seperti PACKAGEROOT, PACKAGESITE juga dapat digunakan
untuk menentukan lokasi download alternatif namun secara lebih spesifik
kepada struktur direktori pada remotesite.
develbox:˜ # setenv PACKAGESITE ftp://develbox/pub/users/negative/
develbox:˜ # pkg_add -r kripp-0.5
Fetching ftp://develbox/pub/users/negative/kripp-0.5.tgz… Done.
develbox:˜ # pkg_info -Ix kripp
kripp-0.5 Lightweight network password sniffer
Jika Anda tidak terhubung ke Internet dan mempunyai distribusi CD-ROM
FreeBSD, Anda dapat menggunakan packages yang tersedia pada CD dengan
memanfaatkan utiliti /stand/sysinstall.
6
3.2 Mengelola Packages yang Telah Terinstal
Untuk mengelola packages yang telah terinstal pada mesin FreeBSD Anda,
dapat digunakan pkg info(1) sebagai utiliti untuk melihat daftar serta
deskripsi dari packages yang terinstal.
develbox:˜ # pkg_info
BitchX-1.0c19_3 An alternative ircII color client with optional
autoconf-2.53_1 Automatically configure source code on many Un*x
automake-1.5,1 GNU Standards-compliant Makefile generator
…dst
Selain itu, Anda dapat menggunakan pkg info(1) untuk melihat versi
dari aplikasi yang terinstal dan membandingkannya dengan versi yang
terdapat pada ports tree/repository.
develbox:˜ # pkg_version | head
BitchX =
autoconf =
automake =
…dst
Pada kolom kedua terdapat simbol-simbol yang menunjukkan
perbandingan antara versi packages yang telah terinstal dengan yang ada
dalam ports tree. Makna dari simbol-simbol tersebut adalah:
= Versi package terinstal adalah sama dengan yang terdapat pada ports tree.
< Versi package terinstal lebih lama dari versi yang terdapat pada ports tree.
> Versi package terinstal lebih baru dari versi yang terdapat pada ports tree.
(Hal ini dapat disebabkan karena Anda memiliki ports tree yang belum diupdate).
? Package yang terinstal tidak ditemukan dalam ports tree. (Hal ini dapat
terjadi karena sebuah port telah dihapus dari ports tree atau telah
berganti nama).
* Terdapat beberapa versi dari package yang sama.
3.3 Menguninstal Packages
Untuk menguninstal sebuah package, Anda dapat menggunakan utiliti
pkg delete(1).
develbox:˜ # pkg_info -Ix kripp
kripp-0.5 Lightweight network password sniffer
develbox:˜ # pkg_delete kripp-0.5
3.4 Informasi Lain Tentang Packages
Semua informasi mengenai packages yang terinstal akan disimpan dalam
direktori /var/db/pkg.
7
develbox:˜ # ls -la /var/db/pkg/flawfinder-1.22
total 20
-rw-r–r– 1 root wheel 53 Mar 26 03:34 +COMMENT
-rw-r–r– 1 root wheel 904 Jun 7 06:17 +CONTENTS
-rw-r–r– 1 root wheel 455 Mar 26 03:34 +DESC
-r–r–r– 1 root wheel 7457 Mar 26 03:34 +MTREE_DIRS
drwxr-xr-x 2 root wheel 512 Jun 7 06:17 .
drwxr-xr-x 161 root wheel 4096 Jun 18 00:42 ..
File +COMMENT berisi komentar singkat mengenai package yang terinstal.
develbox:˜ # cat /var/db/pkg/flawfinder-1.22/+COMMENT
Examines source code looking for security weaknesses
File +CONTENTS berisi mengenai informasi setiap file yang termasuk dalam
package yang dimaksud, informasi tersebut termasuk path, dependensi, dan
checksum.
develbox:˜ # cat /var/db/pkg/flawfinder-1.22/+CONTENTS
@comment PKG_FORMAT_REVISION:1.1
@name flawfinder-1.22
@comment ORIGIN:security/flawfinder
@cwd /usr/local
@pkgdep python-2.2.3
@comment DEPORIGIN:lang/python
man/man1/flawfinder.1.gz
@comment MD5:08e7d45e9eae3f7562bdcfea9e9fc66f
@unexec rm -f %D/man/cat1/flawfinder.1 %D/man/cat1/flawfinder.1.gz
bin/flawfinder
@comment MD5:b9b9da086f5397c8d88c799bb484a1f8
share/doc/flawfinder/README
@comment MD5:11ffdcc4fd2d92b068137b517195be7b
share/doc/flawfinder/flawfinder.pdf
…dst
File +DESC berisi deskripsi dari package tersebut.
develbox:˜ # cat /var/db/pkg/flawfinder-1.22/+DESC
Flawfinder searches through source code looking for potential security
flaws. Flawfinder uses an internal database called the ‘‘ruleset’’; the
ruleset identifies functions that are common causes of security flaws.
Every potential security flaw found in a given source code file (matching
an entry in the ruleset) is called a ‘‘hit,’’ and the set of hits found
during any particular run is called the ‘‘hitlist.’’
WWW: http://www.dwheeler.com/flawfinder/
File +MTREE_DIRS adalah susunan hirarki direktori yang digunakan oleh
packages.
develbox:˜ # cat /var/db/pkg/flawfinder-1.22/+MTREE_DIRS
…
/set type=dir uname=root gname=wheel mode=0755
.
bin
..
8
etc
rc.d
..
..
include
..
…dst
Prefix instalasi yang digunakan oleh FreeBSD untuk ports dan packages
adalah /usr/local dan /usr/X11R6. Prefix /usr/local digunakan untuk
aplikasi yang bukan termasuk dalam kategori X11 (X Window System
and Utilities)
Filed under: freebsd















;