Skip to main content
Engineering Notes · March 2014

Windows + Vagrant: 259 Karakter

Portrait of Komang Artha Yasa, technology leader, two decades building digital platforms across marketplaces, retail, logistics, fintech, and banking.

Menghadapi masalah aneh: seorang rekan menjalankan Ubuntu Precise via Vagrant di host Microsoft Windows 7. Task imagemin via Grunt selalu gagal dengan pesan spawn ENOENT error. Direktori aplikasi di-share dari direktori Windows dengan mode nfs.

Setelah debugging, ternyata jpegtran-bin tidak terinstal sempurna. Proses instalasi menghasilkan EPERM error dan menyarankan mengulangi dengan user privileges root. Aneh, tapi no problemo, kita coba.

sudo npm install jpegtran-bin --save-dev

Boom. Hasilnya sama: EPERM error ketika instalasi ingin menulis file berikut:

.../delayed-stream/test/integration/test-delayed-stream-auto-pause.js

Oops, bahkan user dengan root privilege tidak bisa menulis file itu. That file should be protected by massive evil spirits. Saya coba menulisnya manual via terminal, gagal. Akhirnya saya coba dari sisi host machine (Windows). Yay, berhasil, kecuali namanya kepotong, dan Windows benar-benar tidak merespon keyboard, hanya bunyi centung, centung :-)

Akhirnya hari saya diselamatkan Google (lagi). Limitasi panjang karakter di Windows dihitung berdasarkan absolute path, bukan filename-nya sendiri. Dalam kasus ini limit-nya 259 karakter:

...\node_modules\delayed-stream\test\integration\test-delayed-stream-auto-p.js

Sebuah file yang nama akhirnya kepotong di tengah karena path-nya melebihi batas. Bug-nya sama sekali tidak ada di Node, Grunt, atau Vagrant. Bug-nya ada di substrate paling bawah, file system host-nya.

Good to see you fade away, Windows.