Dari penelitian saya, saya sepertinya memperhatikan bahwa semua manajer paket bersikeras untuk digunakan sebagai pengguna istimewa dan harus diinstal ke dalamnya /
.
Biasanya, yang ingin saya lakukan adalah membuat akun sekali pakai, mengkompilasi beberapa perangkat lunak, dan menginstal ke $HOME
untuk akun itu. Saya dapat mencoba berbagai pengaturan dan kemudian setelah selesai, hancurkan saja akun.
Namun, kompilasi perangkat lunak menjadi membosankan.
Pengalaman saya benar-benar hanya terbatas yum
, tetapi saya tidak mengerti mengapa saya tidak dapat memasukkan file repo ke dalam ~/etc/yum.repos.d
dan meminta Anda menginstal semuanya ke dalam akun rumah.
Apakah ada alasan mengapa manajer paket harus digunakan sebagai pengguna privat untuk menginstal perangkat lunak?
/bin
) atau mungkin berasumsi bahwa itu diinstal di tempat yang ditentukan oleh --prefix. Sementara yang terakhir mungkin diselesaikan oleh proyek-proyek tersebut, yang pertama membutuhkan tambalan pada kode sumber./
Ini kedengarannya seperti persyaratan yang dapat dibenarkan mungkin 30 tahun yang lalu tetapi tidak sekarang. Bukankah misalnyaenv
program dimaksudkan untuk menyelesaikan masalah semacam ini? Jika tidak mudah untuk keluar dengan skema untuk mengkonfigurasi biner untuk mencari biner lain di lokasi tertentu./etc
atau (menurut pengetahuan saya)/usr/lib/<packagename>/
atau/usr/libexec/<packagename>/
./usr/share
dapat diubah oleh variabel XDG yang telah dirilis sekitar abad ini dan belum tentu diadopsi untuk program yang lebih lama.Ada proyek manajer paket - Nix - dengan ide dasar yang menarik ( manajer pkg " fungsional "), yang juga mendukung operasi per pengguna:
A CATATAN SAYA INGIN TAMBAH:
Nix
seharusnya dapat digunakan dalam sistem seperti Unix pilihan Anda (misalnya, distro Linux).Ada juga koleksi paket terkait yang dapat diinstal dengan manajer paket Nix - Nixpkgs - dibangun untuk sejumlah platform :
dan distro yang terkait - NixOS :
dan sistem pembangunan "berkelanjutan" yang terkait - Hydra .
sumber
nix
danguix
. Karena sekarang saya benar-benar menggunakannix
untuk pekerjaan saya, saya ingin tahu apakah saya dapat mempertimbangkanguix
sebagai implementasi lain dari alat yang saya butuhkan. Bisakah saya membaca ringkasan perbedaan di suatu tempat? Mungkin, Anda bahkan bisa menulis jawaban dengan ringkasan di sini, mengumumkan satu lagi solusi alternatif?Pertama-tama karena ketergantungan. Beberapa paket mungkin tidak diinstal oleh pengguna - seperti PolicyKit. Oleh karena itu akan memerlukan beban tambahan pada pemaket yang menyumbangkan waktu luang mereka dan biasanya menginstal program semudah mengetik
sudo
(stasiun pengguna tunggal) atau administrator yang mengomel.Ada opsi untuk menginstal di $ HOME
./configure --prefix=$HOME/sandbox --enable-cool-feature && make all install
(atau varitasi seperti jhbuild).sumber
Saya menggunakan JuJu yang pada dasarnya memungkinkan untuk memiliki distribusi linux yang sangat kecil (hanya berisi manajer paket) di dalam direktori $ HOME / .juju Anda.
Memungkinkan sistem kustom Anda di dalam direktori home dapat diakses melalui proot dan, karenanya, Anda dapat menginstal paket apa pun tanpa hak root. Ini akan berjalan dengan baik untuk semua distribusi linux utama, satu-satunya batasan adalah JuJu dapat berjalan pada kernel linux dengan versi minimum yang direkomendasikan versi 2.6.32.
sumber
Satu lagi dengan model yang agak berbeda adalah 0install . Ini didasarkan pada gagasan bahwa Anda tidak benar-benar menginstal paket, tetapi hanya menjalankannya dari namespace global yang mengunduh, mengkompilasi jika perlu, dan cache perangkat lunak yang ingin Anda gunakan.
sumber
Jika Anda baik-baik saja dengan mengkompilasi dari sumber dan menyelesaikan sendiri dependensi, terutama menginginkan manajer paket untuk menangani operasi penyebaran / undeploy / upgrade, Anda mungkin ingin melihat GNU Stow atau XStow yang agak ditingkatkan . Dengan mereka, Anda mengarahkan instalasi ke direktori terpisah (biasanya di bawah
$PREFIX/stow
) dan kemudian menyimpan symlink ke perangkat lunak dari awalan Anda yang sebenarnya. Ini membuatnya mudah untuk menghapus perangkat lunak sepenuhnya. Saya berhasil menggunakannya untuk mengelola perangkat lunak yang diinstal khusus di universitas saya.sumber
Manajer paket Linux utama memandang dunia sebagai sysadmin ... di mana mesin adalah satu kesatuan. Ini memungkinkan Anda mendapatkan jawaban atas pertanyaan seperti "errata luar biasa apa yang berlaku untuk sistem X" dan "bagaimana sistem X dan sistem Y berbeda". Ini juga memungkinkan yum untuk memiliki "riwayat" yang dapat digunakan, memiliki versi rpmdb dan melakukan hal-hal seperti "yum - pembaruan keamanan" dll.
Ada beberapa manajer paket, seperti zero-install, yang mencoba melihat dunia seperti yang akan dilakukan pengguna ... yaitu. aplikasi apa yang saya punya akses.
Anda mungkin berpikir nanti adalah model yang lebih baik, tetapi IMNSHO ada alasan Anda belum pernah mendengar tentang zero-install tetapi telah mendengar tentang yum.
sumber
Ada anak baru di blok tersebut: " JuNest (Jailed User NEST) - Distro berbasis Linux Arch yang berjalan pada setiap distro Linux tanpa akses root." @ https://github.com/fsquillace/junest Advantage adalah tidak memperkenalkan jenis format paket baru, jadi setelah pemasangan yang sangat mudah (minimal: 320 juta), repositori Arch Linux lengkap (lebih dari 13000) paket ATM) ada di ujung jari Anda.
sumber
Alat-alat yang digunakan oleh Slackware, secara khusus
installpkg
, dapat. Dari halaman manual:Namun, saya tidak tahu ada satu pun dari frontend yang lebih baik yang dapat melakukan ini (misalnya
slapt-get
, sejauh yang saya tahu, tidak dapat melakukan ini). Secara teoritis, Anda harus bisa aliasinstallpkg
keinstallpkg --root ~/Apps
- namun, saya pikir sebagian besar frontend memerlukan root untuk dijalankan, yang mengalahkan intinya.sumber
Saya sarankan http://linuxbrew.sh/
Ini pada dasarnya adalah garpu pembuatan bir untuk macOS dan telah mengkompilasi biner untuk penggunaan ...
Sangat bagus untuk menangani versi gcc yang lebih lama.
Jika Anda benar-benar ingin menginstal dengan tangan, panduan yang bermanfaat adalah http://www.linuxfromscratch.org/
sumber
Yum perlu menulis ke database, yang dimiliki oleh root. Karena ini, Anda tidak dapat menggunakannya sebagai pengguna normal.
Anda dapat mencoba untuk mendekompresi file rpm (rpm2cpio package.rpm | cpio -idmv) di dalam direktori yang Anda pilih.
Tetapi ketika Anda akan menjalankan program Anda, Anda harus berhati-hati untuk memodifikasi LD_LIBRARY_PATH untuk memuat pustaka yang bergantung. Juga ini tidak akan mengurus dependensi.
Contoh:
Di atas tidak memiliki pustaka dependen, jika tidak Anda harus menggunakan sesuatu seperti:
sumber