Category Archives

167 Articles
Create A Database and Its Owner on PostgreSQL
PostgreSQL database

Create A Database and Its Owner on PostgreSQL

In MySQL, these are the chants:

On PostgreSQL, the chants are:

Very simple actually and Debian by default listen at localhost. Users can connect to its database via port 5432.

Of course, these chants are useful for developing apps. In Production, you should supply a user that can only Read/Write/Update a database. In fact, several frameworks like Laravel could setup another user just to Read the database.

Memasang Golang Terbaru

Memasang Golang Terbaru

Debian Jessie memiliki Go versi lawas di repositorinya. Hal ini membuat beberapa aplikasi Go seperti Hydra SSO tidak bisa berjalan. Untuk itu, harus dipasang Go versi manual.

Pertama-tama, pergi ke laman unduh di situs resmi Go. Saat penulisan versi Go yang terbaru adalah 1.8.3. Lalu, salin tautan unduhan untuk dipakai.

Unduh dan taruh Go ke direktori tertentu. Kalau saya, lebih suka di /opt

Go memerlukan direktori Go untuk pengguna dan direktori Go sendiri untuk bisa dieksekusi. Maka, buatlah berkas /etc/profiles.d/golang.sh yang berisi:

Selesai.

Oh, iya, supaya tidak usah keluar, langsung saja eksekusi:

 

Mount Windows Share on KDE Neon
Wily Broke The Window

Mount Windows Share on KDE Neon

Because of WCry 2.0, people turned off SMBv1 protocol. So, to mount that Windows Share folder, we need to adjust by defining the protocol version. Thus, mounting:

e.g.

Change uid with your own UID. We could use protocol 3. But, in this example, I used SMB version 2.1.

Wily Broke The Window

Read more about ..

Kalau KMail mengambek dengan pesan:

Itu berarti Akonadi perlu dinyalakan ulang.

 

Memasang React Native
Super Android, recharge!

Memasang React Native

WordPress semenjak versi 4.7 telah menambahkan fitur WP REST API v2. Dengan adanya fasilitas tersebut, WordPress bisa dibuat sebagai peladen API yang berisi artikel. Namun, yang paling penting dari semuanya itu, WordPress dapat menjadi peladen untuk aplikasi-aplikasi web modern macam React/Redux dan lain sebagainya.

Cara Pasang

Pastikan bahwa Android SDK sudah terpasang. Paling gampang, kita bisa langsung memasang Android Studio聽yang juga akan memasang Android SDK.聽Silakan ikuti tautan. Saya takkan menulis apa pun karena tutorial dari Google sudah ada yang menggunakan Bahasa Indonesia.

Jalankan ketiga baris ini dan tambahkan ketiga baris tersebut ke dalam ~/.bashrc agar selalu otomatis terjalankan setiap kali Anda menjalankan sesi terminal baru.

Lalu, jalankan Android SDK Manager:

Dalam Android SDK Manager, pilih dua paket berikut:

  • Android SDK Build-tools versi 23.0.1
  • Android 6.0 (API 23) SDK Platform (Rev 3).

Silakan lihat gambar untuk lebih jelasnya.

SDK Android Platform Manager

Android SDK Manager, showing what to install to run React Native

Setelah ini, pasang React Native:

Ambil kopi atau sapa sanak saudara dari pada bengong lama menunggu proses pemasangan React Native.

Buat AVD Dulu

Buat terlebih dahulu sebuah emulasi mesin Android:

AVD Manager

AVD Manager, click Create to create new emulated Android device.

Pilih tombol聽Create.

Saya mengubah beberapa parameter berikut:

  • AVD Name: ReactNativeOS [Saya memang kurang kreatif :P]
  • Device: Nexus 5 [Terserah, sih]
  • Target: Android 5.1.1 – API Level 22
  • CPU/ABI: Intel Atom (x86_64)
  • Skin: Skin with dynamic hardware control
  • Front Camera, Back Camera: Emulated
  • SD Card: 200 MB
  • Emulation Options: Use Host GPU
Create Android Emulator

Create new Android Emulator based on Nexus 5 and API Level 21

Sisanya saya biarkan pilihan baku. Setelah itu, klik OK.

Jalankan Android yang baru dibuatkan:

Cara Pakai

Jalankan terlebih dahulu emulator AVD

Untuk membuat proyek baru:

Setelah pemasangan berhasil, masuk ke direktori dan jalankan peladen NodeJS:

Setelah itu, buka terminal baru lagi dan masuk ke direktori tersebut. Kalau mau di terminal yang sama, tambahkan tanda ampersand (“&”)聽setelah “start” agar Nodejs dijalankan di latar belakang.

Untuk melihat aplikasi Android yang sudah dibuat, jalankan:

Selamat mencoba. Sebenarnya, React Native bisa dijalankan di iOS, tapi saya tak mampu membeli SDK Apple. 馃槢

Pasang ZFS Terbaru pada Ubuntu Xenial 16.04

Pasang ZFS Terbaru pada Ubuntu Xenial 16.04

Ubuntu Xenial secara baku memasang ZFS. Sayangnya, saya sering pindah-pindah sistem operasi sehingga versi ZFS yang dimiliki oleh Ubuntu Xenial tidak memadai. Ada fitur yang tidak kompatibel dengan versi ZFS Ubuntu.

Untungnya, perkakas ZFS yang sudah ada di Xenial sudah mumpuni. Yang perlu diperbaiki hanya versi kernelnya. Jadi, itulah yang hendak kita lakukan: memasang kernel ZFS terbaru pada Ubuntu Xenial sehingga fitur-fitur terbaru didukung.

Saya belum tahu efeknya, tetapi mohon berhati-hati bila menggunakan perkakas berbeda dengan kernel. Kalau saya, saya punya cadangan. Lagipula, saya biasa melakukan ini dari CD Pemasangan KDE Neon, distro GNU/Linux berdasarkan Ubuntu Xenial.

Mohon berhati-hati.聽 Saya tidak bertanggung jawab atas risiko yang Anda lakukan.

Teknis Setelah Mukadimah

Untuk kernel dari Ubuntu, hapus kernel ZFS yang sudah ada:

Pasang ketergantungan:

Unduh SPL:

Buat:

Unduh ZFS:

Buat:

Selesai.

Pasang ZFS GIT di Ubuntu 16.04 Xenial

Pasang ZFS GIT di Ubuntu 16.04 Xenial

Set:

Cuma memastikan versi yang lama tidak ada:

Pasang ketergantungan:

INI IMPLEMENTASI YANG RUSAK UNTUK XENIAL. SAYA TIDAK MENGHAPUS KARENA UNTUK KEPERLUAN RISET DI VERSI OS YANG LAIN. MOHON IKUTI CARA DI TULISAN INI.

 

Bacaan Lebih Lanjut

Resep: Jemalloc

Resep: Jemalloc

Pastikan bahwa:

terpasang. Perkakas autoconf diperlukan untuk membuat makro-makro yang dibutuhkan. Hal ini karena versi VCS biasanya perlu menjalankan autogen.sh untuk membuat skrip configure.

Ambil dari GIT:

Lakukan tiga langkah sulap seperti biasa:

Eh, empat, deh. Lupa. Kalau memasang dari repositori langsung, bukan versi terbit, harus dibuatkan makronya terlebih dahulu. Baris configure saya tambahkan parameter GCC untuk menggunakan kode-kode ke prosesor saya berhubung jemalloc untuk laptop. Baris make dijalankan sebanyak jumlah prosesor. Baris instalasi secara spesifik dijabarkan untuk hanya memasang pustaka dan binari jemalloc. Ada galat kompilasi dokumentasi di jemalloc yang menyebabkan pemasangan menyeluruh (sudo make install) menjadi gagal.

Memasang RVM

Memasang RVM

RVM adalah sebuah pengatur lingkungan Ruby. Dengan menggunakan RVM, kita bisa memiliki beberapa versi Ruby yang tidak saling bertabrakan. Cocok untuk pengembangan aplikasi Ruby yang versinya sering kali tidak bisa stabil mengikuti distro.

Impor kunci GPG:

Pasang RVM seperti biasa:

Selesai.

Catatan Pribadi: Pemasangan ZFS Pada Ubuntu 16.04 Xenial

Catatan Pribadi: Pemasangan ZFS Pada Ubuntu 16.04 Xenial

Versi kernel disesuaikan dengan kebutuhan, namun untuk kesederhanaan anggap saja versi yang sama dengan kernel yang sedang berjalan.

Pasang hal-hal yang dibutuhkan sesuai panduan pada ZFSOnLinux. Saya menambahkan GIT dan GNU Autoconf karena hendak memasang versi GIT.

Setelah ini, mari bangun komponen-komponen ZFS, yakni: SPL dan ZFS itu sendiri.

Memasang SPL

Unduh:

Sebenarnya tidak perlu dengan –with-linux. Sebagai pengingat saja kalau misalnya mau memasang untuk kernel versi lainnya. Misalnya, ada versi kernel terbaru dan sebelum masuk dengan kernel tersebut, kita pasang terlebih dahulu modul kernel. Jalankan skrip konfigurasi untuk mendapatkan skrip configure yang lazim dipakai untuk mengompilasi. Biasanya kalau unduh dari SCM (CVS, SVN, Mercurial, GIT, dan sebagainya), skrip tersebut belum ada. Lalu, lakukan stanza yang seperti biasanya.

Tentu saja, biasakan untuk mengompilasi dengan pengguna biasa. Baru setelah mau dipasang, dieskalasi jadi administrator.

Memasang ZFS

Unduh:

Lakukan empat stanza standar.

Selesai. Bagaimana menjalankan ZFS sudah ada di tulisan yang lain.

King of Fighters XIII Steam Edition pada GNU/Linux Wine
WINE Is Not Emulator

King of Fighters XIII Steam Edition pada GNU/Linux Wine

Valve telah berhasil membuat Steam, sebuah platform yang berhasil menciptakan ekonomi mayanya sendiri. Di saat yang lain sedang berjuang menciptakan ekosistem, Yang Dipermuliakan Gaben mengundang seorang ekonom,聽Yanis Varoufakis, untuk membuat sebuah ekonomi maya di Steam. Yanis Varoufakis inilah yang saban hari menolong Yunani melewati masa-masa kelamnya ketika negara tersebut tengah terancam bangkrut.

[Jadi, jangan bilang saya tidak riset. Saya membuka Steam dalam rangka mempelajari ekonomi maya itu. uhuk ;-P]

Salah satu riset saya waktu itu adalah membeli beberapa permainan. Salah satu permainan itu adalah King of Fighters XIII edisi Steam. Ada sedikit pergumulan untuk memasang permainan ini di GNU/Linux karena dia harus menggunakan Wine.

Oh, iya, saya menggunakan KDE Neon, turunan Ubuntu 16.04 Xenial. Saya juga normalnya menggunakan Wine 1.9 yang memiliki Gallium Nine (DirectX 9 dengan Gallium Mesa 3D). Saya juga memilih untuk menjalankan Wine 32-bit.

Supaya kita satu visi, pastikan bahwa winetricks sudah terpasang. Saya lebih suka versi GIT. Tetapi, kalau tidak mau pusing, Anda bisa menggunakan yang versi paket Ubuntu.

Pasang Wine 1.6. Wine versi ini sangat diperlukan untuk memasang pustaka WMP9. Wine versi terbaru tidak bisa dipakai untuk memasang pustaka-pustaka.

Selanjutnya, pasang beberapa pustaka yang perlu.

Sudah. Selanjutnya, kembali pasang Wine versi terbaru yang keren.

Selanjutnya, pada detik ini silakan langsung memasang Steam seperti biasa; unduh dari situsnya, pasang Steam, login, dan pasang KoF XIII. Kalau tidak ada apa-apa, KoF XIII bisa berjalan seperti biasa.

KoF XIII for Steam

King of Fighters XIII Steam edition, Mai Shiranui winning pose.

 

Bacaan Lebih Lanjut

KDE5: GIT dan GIT_ASKPASS

KDE5: GIT dan GIT_ASKPASS

Pada KDE5, para pengguna GIT akan selalu disedihkan dengan pertanyaan seperti ini:

Mengapa hanya KDE5? Karena GIT menyediakan integrasi dengan GNOME Keyring. Ya, bisa saja memasang GNOME Keyring. Tapi, itu bukanlah KDE5 yang kita cintai! ;-(

Untungnya, ada integrasi dengan mekanisme SSHASKPASS.

Pertama-tama, pasang implementasi KDE5 untuk SSHASKPASS.

Buat ksshaskpass sebagai penyimpan sandi.

Selanjutnya, Anda harus membuat keputusan.

Memasukkan Login per Repositori GIT

Kalau Anda hanyalah pengguna dari sebuah repositori tunggal, Anda cukup menyimpan login di lokal saja. Ini dilakukan di setiap direktori GIT.

Kemungkinan besar, Anda adalah seorang leecher seperti saya pengembang yang mengakses lebih dari satu repositori dalam sebuah situs GIT. Untuk itu, bisa dibuatkan repositorinya.

Sampai sini, Anda sudah selesai.

Terakhir

Apa yang terjadi?

Bacaan Lebih Lanjut

Membuat Aplikasi Berbasis Akonadi (KMail2) Keren Lagi
Wily Broke The Window

Membuat Aplikasi Berbasis Akonadi (KMail2) Keren Lagi

Saya punya problema KMail2 yang saya pasang di KDE semenjak KDE SC 4 sering crash. Bahkan, saya terpaksa menghapus ulang seluruh konfigurasi KDE demi bisa memasang ulang KMail2. Memang, saya bisa saja memasang Thunderbird. Tapi, saya jatuh cinta dengan cara pakai di KMail2.

Setelah pemasangan KDE Neon, distro baru berdasarkan Kubuntu LTS 16.04, saya menemukan bahwa saya tidak bisa menggunakan KMail2! Usut punya usut, ternyata karena sistem saya menggunakan Oracle MySQL 5.7. Ada sintaks SQL yang tidak lagi cocok dengan versi teranyar itu. Saya pun harus memilih pindah ke MariaDB 10.x.

Saya temukan lebih lanjut, ternyata pustaka Akonadi yang dipakai oleh KMail2 menggunakan abstraksi Qt SQL. Lah, ‘kan, Qt SQL mendukung banyak basisdata! Saya pun memilih untuk dari pada pindah ke MariaDB, pindah ke PostgreSQL.

Sedikit Noktah dalam Pemasangan

Saya memasang PostgreSQL seperti yang saya telah tulis sebelumnya. Oh, iya, bakal ada pesan kesalahan pada saat pemasangan paket Debian PostgreSQL pada Kubuntu 16.04 dan turunannya kalau menggunakan cara tersebut. Hal ini karena versi BASH yang disediakan memiliki aturan yang lebih ketat untuk mode ketat.

Solusinya adalah mengganti setiap “$1” menjadi “${1:-}” pada berkas /usr/share/postgresql-common/supported-versions. Pada ViM, regex yang dipakai:

Baru, ulangi kembali pemasangan PostgreSQL.

Mungkin Anda akan lebih beruntung dari saya dengan memasang paket dari Kubuntu. Tapi, setahu saya, sih, tidak bisa.

Kalau Anda tidak menggunakan PostgreSQL pada sistem Anda, matikan saja instan PostgreSQL yang berjalan di sistem.

Lumayan menghemat beberapa mega memori dan proses CPU.

Konfigurasi Akonadi Sebelum Dipasang

Pertama-tama, mari buat direktori konfigurasi Akonadi:

Lalu, buat berkas konfigurasi untuk Akonadi menggunakan PostgreSQL:

Ganti 9.5 dengan versi PostgreSQL yang Anda pakai.

Pemasangan KMail2

Selanjutnya, tinggal pasang saja:

Bila sudah sampai sini, seharusnya pemasangan lancar. Begitu menjalankan KMail2, Akonadi akan mengonfigurasi dirinya untuk menjalankan instan PostgreSQL khusus.

Terakhir

Saya sering memakai laptop sampai baterai kosong. Komputer saya kadang kena mati lampu. Sampai detik ini, keduanya masih stabil dan saya sampai detik ini belum pernah menghapus ulang KMail2.

Semoga beruntung, silakan bertanya.

Memasang Steam pada Ubuntu Xenial 16.04 dan Turunannya
Steam

Memasang Steam pada Ubuntu Xenial 16.04 dan Turunannya

Ubuntu akhirnya memasukkan Steam ke repositori Multiverse-nya. Hal ini yang menyebabkan paket Debian Steam dari situs Steam Valve tidak lagi kompatibel dengan Ubuntu teranyar ini. Paket Steam pada repositori Ubuntu disebut steam. Sedangkan versi Valve nama yang dipakai adalah steam-launcher.

Kalau Anda menggunakan turunan Ubuntu, bukan Ubuntu asli — saya sendiri KDE Neon 5.6 — Anda mungkin harus memasang software-properties-common agar ada perintah add-apt-repository yang akan dipakai untuk memasang repositori. Supaya kita ada di satu halaman yang sama, maka mari pasang perkakas itu.

Sekarang kita bisa lanjut.

Pemasangan Mula-mula

Seperti biasa, aktifkan arsitektur 32-bita.

Buang pustaka S3 Texture Compression baku. INGAT! Ini mungkin ilegal di negara lain, terutama negara dengan paten perangkat lunak, uhuk AS uhuk.

Unduh libtxc-dxtn0 dari repositori xorg-edger. INGAT! Bukan dari Debian Multimedia seperti pada Tambora.

Anehnya, Steam akan menjadi cerewet kalau versi 64-bita tidak dipasang. Makanya, kedua paket dipasang bersamaan.

Selanjutnya, aktifkan repositori Multiverse.

Pasang Steam!

Kalau Anda jalankan perintah steam, kemungkinan Steam akan gagal dijalankan. Hal ini karena Steam memaketkan pustaka C++ dan versi GCC-nya sendiri!

Matikan Steam yang gagal berjalan sempurna itu. Lalu, hapus semua pustaka C++ dan GCC bawaan Steam.

Beberapa orang, termasuk tadinya saya, menyarankan untuk menghapus pustaka dinamis saja. Namun, setelah berjibaku, saya menemukan bahwa Steam menggunakan pustaka statik juga untuk pustaka C++ dan GCC.

Selesai.

Akhir Kata

Mengapa saya menyarankan untuk menggunakan Steam versi Ubuntu, bukan yang dari Valve? Sebenarnya, sih, bisa saja. Asalkan Anda mau menerima pesan kesalahan bahwa paket Steam usang. Saya, sih, tidak mau.

false alarm about outdated version

Steam warns us that our version is outdated

Bacaan Lebih Lanjut

Cara Membuat Proyek Gradle secara Manual yang Sebenarnya Bisa Dengan Mudah Dilakukan dengan “New Project” pada IntelliJ atau Eclipse

Cara Membuat Proyek Gradle secara Manual yang Sebenarnya Bisa Dengan Mudah Dilakukan dengan “New Project” pada IntelliJ atau Eclipse

Seperti judul blog ini, yang saya tuliskan ini adalah sesuatu yang sia-sia. Anda bisa langsung menggunakan aplikasi seperti IntelliJ atau Eclipse. Dengan penyunting itu, Anda tinggal membuat “New Project” dan semuanya sudah terkonfigurasi.

Tapi, mungkin Anda salah satu elitis yang lebih suka menggunakan terminal. Atau, Anda ingin tahu cara kerja Gradle sehingga Anda dapat setidaknya sedikit paham kalau ada masalah. Kalau saya, saya hanya sedang iseng sebelum menunggu waktunya tiba untuk menonton Warcraft di bioskop.

Proyek hanya Sejauh Direktori Kosong

Mari buat proyek baru. Caranya, buat direktori kosong dan dua buah berkas Gradle: build.gradle dan settings.gradle.

Mari namakan proyek kita ini “proyekPercuma”.

Secara umum, ini sudah siap. Tapi tunggu dulu, Kisanak! Kisanak tidak akan pernah lengkap ilmu bila tanpa jurus Monyet Membungkus Pisang!

Proyek hanya Sejauh Pembungkus

Java adalah sebuah pustaka yang sering kali berdiri sendiri. Hal ini karena sering kali distribusi menggunakan versi yang lawas. Bayangkan, Kisanak! Ini sudah 2016, namun Kubuntu Xenial (16.04) yang saya pakai masih menggunakan Gradle versi 2.10.

Hasilnya:

Astaga! Padahal, versi terbaru sudah ada lama sebelum Xenial. Belum lagi, beberapa pustaka terbaru memanfaatkan Gradle versi terbaru.

Supaya kita menggunakan Gradle terbaru, mari buat skrip pembungkus Gradle. Saat penulisan Gradle terbaru versi 2.13.

Anda bisa lakukan ini untuk memperbaharui Gradle pada proyek yang lama ke versi yang terbaru. Sekarang lihat versinya:

Selesai, deh.

Tunggu Dulu, Kisanak!

Mari buat sebuah proyek Java sederhana.

Lalu buat struktur direktori Java (kode sumber dan sumber daya):

Sebagai pemrogram Java yang baik, seharusnya kita menaruh berkas Java pada paket-paket. Mari buat direktori paket Java.

Buat sebuah kelas sederhana.

Tambahkan berkas Java ini sebagai kelas utama dalam proyek percuma.

Sekarang tinggal dicoba jalankan:

Saya sengaja tambahkan “-q” agar keluaran dari Gradle tidak keluar. Sehingga, hasilnya langsung keluaran dari aplikasi, yakni:

Kalau tanpa “-q” dia akan berisik seperti ini:

Bersih-bersih

Kadang kalau proyek sudah besar dan kompleks, kita perlu membersihkan hasil kompilasi secara manual:

Mau buat distribusi supaya keren?

Sehingga, kita jalankan dengan:

Ada .bat juga di situ untuk menjalankan di sistem terlarang.

Mau publikasikan hasil pekerjaan?

Berkasnya ada di ./build/distributions/percuma.zip

Mau tahu perintah Gradle yang lain?

Selebihnya terserah Anda. Gampang, ‘kan?

Bacaan Lebih Lanjut

Memasang Kubuntu 16.04 UEFI dengan Debootstrap
Wily Broke The Window

Memasang Kubuntu 16.04 UEFI dengan Debootstrap

Mengenai skema partisi yang Anda pilih, semuanya bebas. Yang penting, sisakan 100 s.d. 200MB diska untuk partisi UEFI dengan format FAT32 atau FAT16.

UEFI mandates on GPT partition.

UEFI mandates on GPT partition.

Karena Windoze dan beberapa vendor lama, UEFI masih memungkinkan untuk membuat format partisi BIOS (4 partisi utama maksimal). Namun, karena saya memasang ini di laptop saya sendiri, saya membeli kosong sehingga memformat seluruh diska dengan format partisi GPT. Saya membuat satu partisi di awal dengan besar 200MB dan format FAT16 untuk partisi UEFI.

My laptop partition as an example

My laptop partition as an example

Saya tidak menyatakan proses pemformatan karena sudah pernah dibahas di blog ini berulang kali. Lagi pula, saya memformat menggunakan Manajer Partisi KDE yang ada di CD Pemasang Kubuntu. Tak perlu menyusahkan diri dengan terminal.

Oh, iya, supaya tidak bingung, saya mengasumsikan ini semua dilakukan dari CD/USB Live Pemasang Kubuntu 16.04 Xenial.

Persiapan

Sebelum mulai, saya mengubah /etc/apt/sources.list CD/USB sehingga berisi:

Ini biar proses pemasangan menggunakan repo terdekat.

Lalu, seperti biasa saya pasang debootstrap:

Sampai sini saya mengasumsikan bahwa Anda telah memformat diska Anda dengan benar sebelum lanjut dengan Manajer Partisi KDE atau pun cara lainnya.

Pasang Sistem Dasar

Lakukan stanza yang biasa dilakukan:

Baru setelah itu, pasang KDE:

Konfigurasi zona waktu dan lokalisasi:

Tambahkan pengguna:

Pasang kernel dan GRUB EFI:

Konfigurasikan dan pasang GRUB EFI. Ingat! Dua langkah ini perlu dilakukan agar sistem dapat dinyalakan ulang.

Sisanya terserah Anda karena langkah-langkah ini sudah membuat sistem Anda berjalan.

TAMAT.

WordPress JP: Installing LAMP Stack with ZFS

WordPress JP: Installing LAMP Stack with ZFS

A REVISION WAS LOST! PLEASE TAKE A LOOK AT THE BOTTOM PAGE FOR GRUB SETTING BEFORE REBOOT.

I’m in fast writing mode as this is probably won’t intended to be understood by most people. I’m writing in this blog as I moving forward installing. To keep writing聽 and translating from my tacit into Bahasa Indonesia is kind of laboring. Perhaps, if you want, I would reiterate what I do here with better Bahasa Indonesia. But, now, let’s live speed writing.

Preparations

I’ve got Ubuntu 14.04 Live USB on my arsenal. Boot it up and setup some trivial like IP, DNS and stuff. I modify APT sources.list to match my nearest server.

Do the update and install SSH and VIM.

I need SSH because I can’t stand on server room too long. I’m not going to go on religious war on ViM vs Emacs. Last, change ubuntu user password.

And now the show live from my comfy SSH terminal laptop.

Install Ubuntu ZFS for Ubuntu Live Session

Straight from the doc.

You may wondering why I’m not upgrading first. Upgrading a temporary system is wasting time, especially one with GUI installed. Okay, now we get to the formatting.

Create A ZFS Pool

I have 2 SATA and 1 SSD. The best for server should be two SSDs. But, hey, beggar can’t choose.

ZFS config: 2 Disks + 1 SSD.

ZFS config: 2 Disks + 1 SSD.

Using GParted, I turned SSD into GPT with 3 partitions:

  • The first 200MB for /boot partition. Some twisted soul refused to use separated partition for /boot, well, good for you! I go with the conservative.
  • 8GB used for ZIL (ZFS Intent Log) drive. ZFS usually use 8GB max for journaling.
  • The rest used for ZFS Cache (ZARC).

But, hey, where is the EFI partition?

I’ve just recently found out that when you give your whole disk to ZFS, it would format the disk into two partitions. One big partition (sX1) for the use of ZFS and one 8MB partition (sdX9) for EFI partition (FAT). Yeah, ZFS automatically turn the disk into GPT partitioning scheme. After adding the two disks into a ZFS pool, the partitions will be like this:

I’m doing mirroring for sda and sdb. I wish I have one more SSD. I would mirror two partitions on separated SSDs for ZIL. If you are luckier than me, do it! It is for safety measure. But, don’t mirror the cache because it’s wasting space.

Here’s the reality:

If I may have a dream with two SSDs:

Disable access time, enable relative time and enable LZ4 compression on tanks.

If nothing is wrong, we would got:

Next, the partitioning. After this, I’m doing things from Crossroad’s tutorial with some tweaks.

Create Partition

As Debian configuration:

What? Yes, I’m installing Debian not Ubuntu.

Last, export the pool we’ve created for later import. We do this so that the ZFS config would read from disk by ID instead of common UDEV naming. Believe me, you don’t want to use UDEV naming (sda, sdb, etc.) on ZFS.

Now, we can start installing Debian system.

Install Debian

Reimport ZFS pool and create a ZFS configuration cache file.

REMEMBER: (Straight from the ZFS FAQ)

Run update-initramfs -c -k all after any /sbin/zpool command changes the /etc/zfs/zpool.cache file.

This is the reason of random failures from mounting ZFS root partition.

Install the system and mount all the basic system partitions.

And now, configure.

Configure Debian

Hostname.

Create configuration for network interfaces. In the spirit of new configuration scheme, I put two files in /etc/network/interfaces.d/

and

Mount all the system filesystems.

Chroot there

In Debian Configuration

Locales.

Timezone.

Remember when I said I’m going to put /boot on different partition? Now is the time.

Remember also what I said about using the ninth partition of the first disk? Now is the time.

Install ZFS packages with Debian style. ZFS needs lsb-release package.

Last, add a login.

Setup GRUB For ZFS Boot

There is a bug in Debian’s GRUB that makes the system unbootable. First, let’s reconfigure GRUB Default command line:

Change Linux default command line (second screen after Linux command line) from

to

After this, update grub and we are done.

Booting to New System

After all preparations, unmount all the filesystems

Reboot.

Final Thought

Well, you might find some faults here and there. If not, everything after this is straightforward.

Bacaan Lebih Lanjut

Memasang PostgreSQL Versi Terbaru

Masukkan repo PostgreSQL:

Kalau Anda tidak memasang LSB, ganti lsb_release dengan wily, jessie, wheezy, dan sebagainya silakan lihat di sini.

Setelah selesai, impor kunci:

Setelah itu, lakukan hal yang biasa dilakukan:

Selesai.

Memasang Ubuntu Wily (15.04) Pada HP Probook 440 G2 (HP EFI)
Wily Broke The Window

Memasang Ubuntu Wily (15.04) Pada HP Probook 440 G2 (HP EFI)

Ini adalah perjalanan JP memasang Kubuntu Wily dasar pada sistem HP Probook 440 G2. Mesin ini memiliki implementasi UEFI yang salah sehingga memerlukan ketekunan dalam membuat pemasangan berjalan baik.

Informasi Sistem

Informasi sistem yang didapatkan dari dmidecode.

Manufacturer: Hewlett-Packard
Product Name: HP ProBook 440 G2
Version: A3009DD10303
Serial Number: CND5325G0B
UUID: 9A822FFF-61BB-11E5-A123-9023330000FF
Wake-up Type: Power Switch
SKU Number: L7Z17PT#AR6
Family: 103C_5336AN G=N L=BUS B=HP S=PRO

Saya menjalankan LiveCD Kubuntu Wily. Jangan lupa pasang dulu debootstrap sebelum lanjut. Lalu, supaya tidak pusing, langsung jalan sebagai root saja.

Saya agak curang sedikit. Sebelum kedua langkah tersebut, saya mengubah /etc/apt/sources.list mengarahkan ke KAMBING.ui.ac.id. Hal ini mengingat peladen fisiknya ada di ruang sebelah.

Pembersihan

Sistem ini dijangkiti oleh WIndows 7 sebesar satu tera. Dengan konfigurasi sebagai berikut:

Original HP Partition

Original HP Partition

Jadi kira-kira seperti ini:

/dev/sda1 ntfs primary “SYSTEM”
/dev/sda2 ntfs primary “WINDOWS XXX”
/dev/sda3 ntfs primary “HP_RECOVERY”
/dev/sda4 fat32 primary “HP_TOOLS”

Berhubung laptop ini sudah dibeli dengan perangkat lunaknya, saya memutuskan untuk tidak menghapus Recovery. Saya hanya perlu menghapus Windows.

Saya bingung dan memutuskan untuk menggunakan LVM. Satu tera untuk sistem agak berlebihan menurut saya. Cara berikut bisa dilakukan dengan GParted atau KDE Partition Manager. Akan tetapi, saya mau terlihat seperti heker:

Saya kasih label “HP”, tapi Anda boleh beda. Kemudian, saya putuskan untuk buat partisi dasar 20G dan partisi rumah 20G.

Selanjutnya proses pemasangan.

Debootstrap

Pasang debootstrap seperti biasa:

Saya sengaja memisahkan direktori rumah ke partisi berbeda. Mungkin butuh di kemudian hari.

Pasang Sebelum CHROOT

Karena sistem yang hendak dipasang menggunakan UEFI, mari kita lihat apakah ada UEFI.

Seharusnya ada isinya. Kalau tidak, berarti belum menggunakan UEFI. Silakan gunakan prosedur pemasangan yang biasa saja.

Selanjutnya, mari pasang beberapa sistem berkas:

Baris terakhir diperlukan agar dapat mendaftarkan GRUB ke sistem UEFI.

Si HP ini menggunakan partisi EFI dengan NTFS. Padahal, UEFI bersabda harus menggunakan partisi FAT16/FAT32. Untungnya, ada 4 partisi dan salah satunya memakai FAT32. Jadi, saya buat saja satu direktori efi ke partisi ke-4 itu.

Sekarang kita masuk ke sistem.

Selanjutnya, mari memasang sistem.

Memasang Bootloader dan Kernel

Yang lain mudah, tetapi yang ini agak sulit. Berikut hasil kalau proses sebelumnya berhasil:

Mari pasang LVM2

Lalu pasang GRUB dan kernel.

Sayangnya, karena implementasi HP yang unik dan menyalahi aturan UEFI, Kubuntu akan gagal mendaftarkan sistemnya dengan benar. Apalagi, secara sotoy [slang: sok tahu] skrip grub-install mengira bahwa UEFI ada di direktori pertama. Tetapi, Anda bisa juga beruntung mendapatkan skrip membaca dengan benar.

Saya tidak suka digantung. Mari lihat entri ubuntu dipasang pada UEFI:

Selain saya tidak tahu entri “ubuntu” mengarah ke mana, saya juga tidak suka dengan label yang hanya “ubuntu”. Mari pasang secara benar.

Pertama-tama, hapus “ubuntu”. Perhatikan bahwa entri Ubuntu ada pada indeks 0000.

Selanjutnya, mari pasang label yang baik dan benar.

Berikut penjelasan parameter:

  • -c, buat entri baru.
  • -d /dev/sda, EFI yang ada di perangkat /dev/sda (harddisk utama).
  • -p 4, aplikasi EFI ada di partisi keempat.
  • -L “OS Sesungguhnya”, label entri. Anda bisa mengubah yang lainnya.

Selanjutnya saat menyalakan laptop, entri “OS Sesungguhnya” sudah ada di dalam OS.

Dan Pemasangan pun Berlanjut Normal

Selanjutnya membosankan seperti bootstrap yang lainnya.

Terakhir, muat ulang dan masuk ke sistem.

Catatan

Saya tidak tahu kelakuan HP ini. Pertama-tama saya harus boot dengan USB Kubuntu Live terpasang. Kemudian, ketika sudah masuk ke sistem terpasang, USB dilepas. Saya lalu kembali menjalankan efibootmgr untuk menghapus entri yang sudah ada dan memasang kembali entri “OS Sesungguhnya”.

Do I have to write this on English?

Mengubah Format PEM (Apache/NGINX) ke Keystore JAVA

Mengubah Format PEM (Apache/NGINX) ke Keystore JAVA

Untuk organisasi/individu yang memegang domain dengan banyak sub-domain, biasanya dibeli sertifikat wildcard. Dengan sertifikat wilcard, tak perlu membeli sertifikat per sub-domain. Hanya saja, biasanya format yang diberikan adalah PEM untuk peladen HTTP semacam Apache2 atau NGINX.

Bagaimana dengan peladen berbasis Web macam Tomcat?

Saya asumsikan sudah ada tiga berkas ini:

server.key
Kunci privat peladen.
server.crt
Sertifikat peladen yang sudah ditandatangani oleh CA.
ca.cert
Sertifikat CA yang menandatangani sertifikat peladen.

Selanjutnya, ubah bentuk X.509 ke format PKCS12 dengan OpenSSL:

Anda akan ditanyakan sandi baru. Jangan lewati karena proses berikutnya butuh sandi tersebut! Isi sandi dengan sandi yang aman.

Selanjutnya, impor kunci PKCS12 tersebut ke sebuah keystore Java:

Saya menggunakan PWGen untuk membuat sandi acak. Mohon ganti ahs8kahLuvu3nahb dengan sandi yang Anda telah masukkan sebelumnya pada proses openssl.

Selesai. Anda kini sudah memiliki keystore.jks yang siap dipakai oleh aplikasi Java untuk membuat koneksi SSL/TLS.

Selamat mencoba.