Tidak masalah organisasi mana yang dipilih, itu akan membuat beberapa hal lebih mudah dan beberapa hal lebih sulit.
Pengorganisasian file dengan jenis, cara Unix (ke bin
, man
, lib/python
, ...), membuat lebih mudah untuk menggunakan file-file. Jika Anda ingin menjalankan perintah, Anda tahu di mana menemukannya, tidak peduli paket mana yang menyediakannya. Jika Anda ingin mencari melalui dokumentasi, semuanya ada di satu tempat. Jika beberapa program menyediakan modul penyorotan sintaks Vim, fungsi penyelesaian zsh, atau binding Python, file yang relevan akan berada di tempat di mana vim / zsh / python dapat menemukannya.
Unix juga mengatur file berdasarkan pola penggunaan. File konfigurasi masuk /etc
, file yang tidak berubah dalam operasi normal masuk /usr
, dan file yang berubah secara otomatis masuk /var
. Data pengguna berada di bawah /home
. Ini sangat berguna untuk manajemen konfigurasi (kelola apa yang ada di /etc
tambah daftar paket yang diinstal). Ini juga berguna untuk menentukan strategi cadangan: apa yang ada di dalam /etc
dan /home
sangat penting, sedangkan apa yang ada di dalam /usr
dapat dengan mudah diunduh lagi.
Biaya utama cara Unix adalah menginstal sepotong perangkat lunak tersebar di banyak direktori. Namun, sistem unix modern memiliki pengelola paket; mengelola file di banyak direktori sejauh ini bukan hal yang paling rumit yang mereka lakukan (melacak ketergantungan sangat berguna dan lebih sulit).
Bandingkan dengan Windows. Windows dimulai tanpa manajemen paket, dan setiap aplikasi membuat direktori sendiri di suatu tempat. Semua file biasanya berada di dalam direktori itu: program, data statis, data pengguna, ... Kecuali kadang-kadang untuk perpustakaan program mana yang akan jatuh ke direktori sistem umum tanpa memperhatikan konflik ("DLL neraka"). Seiring waktu, Windows menjadi multi-pengguna, membutuhkan pemisahan direktori pengguna dari direktori sistem. Windows juga menciptakan tempat sentral untuk file konfigurasi (Unix's /etc
) dan beberapa data sistem (Unix's/var
), registri. Ini lebih merupakan artefak historis yang sebagian besar disebabkan oleh kurangnya manajemen paket dan sejarah awal sebagai sistem pengguna tunggal. Pendekatan Windows memiliki banyak keterbatasan: tidak membiarkan paket perangkat lunak berinteraksi dengan mudah. Misalnya, sebagian besar perangkat lunak yang diinstal tidak berakhir pada jalur pencarian perintah default, sehingga berinteraksi buruk dengan segala bentuk skrip. Pemasang biasanya menyediakan ikon menu sebagai wadah khusus - dimasukkan ke direktori sistem terpisah (à la Unix!).
Keterbatasan dari pendekatan Unix adalah bahwa ia tidak dengan mudah mengizinkan koeksistensi beberapa versi paket, yang khususnya bermasalah ketika paket sedang ditingkatkan. Cara untuk mendapatkan yang terbaik dari kedua dunia adalah dengan membongkar setiap paket di direktori sendiri ( /opt
struktur), dan membuat hutan tautan simbolik dari direktori paket ke /usr
struktur. Inilah yang dilakukan perangkat lunak seperti stow .
Singkatnya, pendekatan Unix membuatnya lebih mudah untuk menggunakan file, untuk mengelola file, dan untuk memungkinkan paket berinteraksi; itu memerlukan perangkat lunak manajemen paket, tetapi itu tetap diinginkan. Pendekatan Windows membuatnya lebih mudah untuk mengelola paket secara manual, tetapi harus mengarah ke model Unix untuk mendapatkan fungsionalitas yang berguna.