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.