Apakah mungkin menggunakan rpm tanpa akses root?
Apakah mungkin menggunakan rpm tanpa akses root?
Jawaban:
Bergantung pada isi paket Anda cukup mengekstrak isi rpm dan menggunakannya dari suatu tempat dengan direktori home Anda. Bahkan jika tidak ditandai sebagai relocatable. Jika binari dalam paket memiliki jalur hard-coded, atau jika aplikasi membutuhkan akses root, maka itu tidak mungkin.
Ada banyak jawaban yang menyarankan paket relocatable. Opsi relokasi adalah untuk administrator untuk memilih tujuan (membuat tujuan menjadi / memilih bukan / usr / lokal misalnya) dan tidak benar-benar untuk izin pengguna.
Meskipun dimungkinkan untuk mengatasi beberapa masalah izin menggunakan metode ini, masalah UTAMA adalah bahwa ketika Anda melakukan operasi rpm, itu memodifikasi database /var/lib/rpm/__db.* yang dimiliki root: root. Jadi seperti JPerkSter mengatakan "jawaban singkat = tidak". Menyiapkan sudo untuk memungkinkan kebutuhan spesifik mungkin akan menjadi taruhan terbaik.
Mempertimbangkan semua hal di atas, terkait bangunan yang dapat dipindahkan, Anda dapat mencoba mengikuti instruksi yang tercantum di sini .
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
Spesifikasi RPM berisi opsi yang disebut 'relocatable'. Jika rpm dibangun dengan relocatability dihidupkan maka dapat diinstal di direktori yang ditentukan pengguna menggunakan opsi '--prefix'. Jadi agaknya satu rpm bisa dipasang secara lokal tanpa akses superuser selama dua kondisi terpenuhi:
Tapi, secara umum, tidak, Anda perlu akses pengguna super untuk menginstal RPM. Sementara opsi relocatable ada, saya hampir tidak pernah melihat paket yang telah dibangun untuk mendukungnya.
Beberapa paket dapat dipindahkan sehingga dapat berfungsi dengan baik tanpa root, cukup tentukan awalan saat menginstalnya: rpm -i my.rpm --prefix = / my / home / folder
Jika paket tidak dapat dipindahkan, Anda masih dapat mengekstrak file dari RPM dan mencoba menjalankannya. Anda dapat mengekstrak file RPM menggunakan misalnya:
Salin file ke folder ~ / Anda, tambahkan pustaka dependensi tambahan dan berharap yang terbaik. Tidak dijamin tetapi Anda mungkin mendapatkan beberapa paket yang tidak dapat dipindahkan bekerja dengan cara ini.
Anda dapat memaksanya untuk menginstal di bawah direktori yang berbeda menggunakan dbpath yang berbeda. Anda juga sebaiknya tidak menjalankan skrip apa pun secara langsung tanpa memeriksanya.
Ini akan menempatkan rpm di bawah direktori saat ini dan mengekstrak skrip sehingga Anda dapat mengedit dan menjalankannya jika perlu.
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
Ya, tetapi Anda mungkin tidak mau. Saya telah menggunakan paket manifes boneka dan paket rpm untuk memelihara perangkat lunak pada cluster komputer yang saya tidak punya akses root. Secara teori, sesederhana itu
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
Namun, ada kebiasaan bagaimana ini berlaku di EL4, EL5, dan EL6, jadi Anda akan memerlukan serangkaian langkah dan opsi yang berbeda untuk masing-masingnya. Saya tidak memiliki informasi yang berguna lagi. Keanehan itu, dan juga masalah basis data RPM yang sering terjadi (mungkin karena NFS), membuat saya menyesal menggunakan rpm.
rpm
perintah tanpa sudo / akses root.