Dimungkinkan untuk menggunakan yum dan rpm untuk menginstal paket apa pun di repositori distribusi. Ini resepnya:
Temukan nama paket
Gunakan yum search
.
Unduh
Unduh paket dan semua dependensinya menggunakan yumdownloader
(yang tersedia di CentOS secara default). Anda harus meneruskannya --resolve
untuk mendapatkan resolusi ketergantungan. yumdownloader
mengunduh ke direktori saat ini kecuali Anda menentukan --destdir
.
mkdir -p ~/rpm
yumdownloader --destdir ~/rpm --resolve vim-common
Pilih lokasi awalan
Mungkin ~
, ~/centos
, atau ~/y
. Jika rumah Anda lambat karena menggunakan sistem file jaringan, Anda dapat memasukkannya ke dalam /var/tmp/...
.
mkdir ~/centos
Ekstrak semua paket .rpm
Ekstrak semua paket .rpm ke lokasi awalan pilihan Anda.
cd ~/centos && rpm2cpio ~/rpm/x.rpm | cpio -id
rpm2cpio
menampilkan file .rpm sebagai arsip .cpio di stdout.cpio
membacanya dari dari stdin-i
berarti ekstrak (ke direktori saat ini)-d
berarti buat direktori yang hilang
Secara opsional, Anda dapat menggunakan -v
:bertele-tele
Konfigurasi lingkungan
Anda perlu mengonfigurasi variabel lingkungan PATH
dan LD_LIBRARY_PATH
agar paket yang diinstal berfungsi dengan benar. Ini adalah contoh yang sesuai dari ~/.bashrc
saya :
export PATH="$HOME/centos/usr/sbin:$HOME/centos/usr/bin:$HOME/centos/bin:$PATH"
L='/lib:/lib64:/usr/lib:/usr/lib64'
export LD_LIBRARY_PATH="$L:$HOME/centos/usr/lib:$HOME/centos/usr/lib64"
Catatan yang diedit (terima kasih kepada @AmitNaidu karena telah menunjukkan kesalahan saya):
Menurut dokumentasi bash tentang file startup, saat terhubung ke server melalui ssh, hanya .bashrc yang bersumber:
Dipanggil oleh daemon shell jarak jauh
Bash mencoba untuk menentukan kapan dijalankan dengan input standarnya yang terhubung ke koneksi jaringan, seperti ketika dijalankan oleh daemon shell jarak jauh, biasanya rshd, atau daemon shell aman sshd. Jika Bash menentukan sedang dijalankan dengan cara ini, Bash membaca dan mengeksekusi perintah dari ~/.bashrc, jika file itu ada dan dapat dibaca.
Sekarang jika Anda ingin menginstal banyak paket dengan cara itu, Anda mungkin ingin mengotomatiskan prosesnya. Jika ya, lihat repositori ini.
Catatan tambahan:jika Anda mencoba memasang salah satu dari gcc, zlib, make, cmake, git, fish, zsh or tmux
, Anda harus benar-benar mempertimbangkan untuk menggunakan conda, lihat jawaban saya yang lain.
TL;DR Gunakan Miniconda, conda-forge luar biasa.
curl "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" | sh
Atau, sebagai alternatif:
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh > Miniconda.sh
bash Miniconda.sh -b -p ~/conda
# -b is used to specify that this is done "in batch", so skip the EULA prompt
# -p lets you specify where you want conda installed
Paket yang biasanya diinginkan:
- gcc
conda install gcc
- zlib
conda install zlib
- buat
conda install make
- cmake
conda install cmake
- git
conda install git
- ikan
conda install -c conda-forge fish
- zsh
conda install -c ActivisionGameScience zsh
- tmux
conda install -c conda-forge tmux
- Tmux ini memiliki bug dengan nama pustaka ncurse yang digunakannya. Anda dapat mengatasinya dengan membuka
da/lib
Anda folder dan menyinkronkanln -sT libtinfow.so.6.1 libtinfo.so.6
- Tmux ini memiliki bug dengan nama pustaka ncurse yang digunakannya. Anda dapat mengatasinya dengan membuka
Selebihnya, Anda dapat mencoba https://anaconda.org/search?q=
.
Saya sudah lama mencoba membuat manajer paket bekerja dengan baik di CentOS/RedHat tetapi tidak berhasil. Yang terbaik yang bisa saya lakukan adalah menginstal Awalan Gentoo di lokasi yang benar di CentOS lain dengan akses root, lalu scp .tar.xz
dari seluruh instalasi ke server target (satu-satunya cara untuk mendapatkan gcc yang tepat untuk Awalan Gentoo). Saya bisa emerge
(bangun &instal) paket di server target tetapi terus mengalami masalah dengan penduduk setempat dan izin.
Saya baru-baru ini mendapatkan instalasi pengguna dari beberapa paket menarik menggunakan conda. Berikut cara menginstalnya dari baris perintah:
curl "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" | sh
Jika seperti saya, folder rumah Anda dihosting di drive jarak jauh (sistem file jaringan), Anda mungkin tidak ingin menginstalnya di folder rumah Anda, jadi Anda mungkin ingin menggunakan sesuatu seperti mkdir /var/tmp/lo
kemudian tentukan folder instalasi seperti /var/tmp/lo/da
selama penginstalan.
Anda kemudian dapat menginstal cukup banyak paket, meskipun mungkin tidak semua yang Anda inginkan. Sering kali, jika tidak ada di saluran default, itu akan ada di conda-forge
. Anda dapat memeriksa paket yang ada di https://anaconda.org/search?q=
Manajer paket lain yang saya coba gunakan setelah conda:
Linuxbrew
Saya pikir dengan itu akan mudah untuk menginstal homebrew (linuxbrew) tetapi sumbernya berantakan dan menggunakan jalur absolut yang dikodekan keras ke juru bahasa Ruby, yang gagal karena ini bukan versi terakhir dan seterusnya dan seterusnya dan saya memberi naik.
Nix
Nix masih mengharuskan Anda untuk menggunakan folder /nix. Mereka juga melakukan hard-code dan sulit untuk melakukannya dengan benar dari setiap unduhan yang harus dilakukan selama penginstalan (apalagi pembaruan).
Awalan Gentoo
Saya berharap Gentoo Prefix lebih mudah untuk menginstal langsung sekarang karena kita gcc dapat digunakan di server target. -- Oke, saya sudah mencoba tetapi menemui bug izin selama penginstalan (28-09-2018):
portage.exception.OperationNotPermitted: chown(b'~/gentoo/tmp/var/tmp/portage/sys-apps/gentoo-functions-0.12/image/var', 2000, 2000)
PkgSrc
Saya akan mencoba pkgsrc sekarang. -- Gunakan (lebih lama) versi 64-bit EL 6.x jika menggunakan CentOS 6 atau jika mengalami masalah versi (G)LibC dengan versi 7.x. -- Tidak berhasil, kode keras pkgsrc /usr/pkg/sbin
dan /usr/pkg/bin
. Jadi tidak bisa digunakan sebagai pengguna, kecuali mungkin menyiapkan lingkungan fakechroot. Tapi saya belum pernah melakukannya dan saya menduga ada masalah kegunaan.
Harap beri komentar/jawab jika Anda berhasil memasang pengelola paket lainnya.