yum と rpm を使用して、ディストリビューションのリポジトリに任意のパッケージをインストールできます。レシピはこちら:
パッケージ名を見つける
yum search
を使用 .
ダウンロード
yumdownloader
を使用して、パッケージとそのすべての依存関係をダウンロードします (これはデフォルトで CentOS で利用可能です)。 --resolve
を渡す必要があります 依存関係の解決を取得します。 yumdownloader
--destdir
を指定しない限り、現在のディレクトリにダウンロードします .
mkdir -p ~/rpm
yumdownloader --destdir ~/rpm --resolve vim-common
プレフィックスの場所を選択
~
かもしれません 、 ~/centos
、または ~/y
.ネットワーク ファイル システム上にあるためにホームが遅い場合は、/var/tmp/...
に入れることができます。 .
mkdir ~/centos
すべての .rpm パッケージを抽出します
すべての .rpm パッケージを選択したプレフィックスの場所に抽出します。
cd ~/centos && rpm2cpio ~/rpm/x.rpm | cpio -id
rpm2cpio
.rpm ファイルを .cpio アーカイブとして stdout に出力します。cpio
stdin から読み取ります-i
(現在のディレクトリへの) 抽出を意味します-d
不足しているディレクトリを作成することを意味します
オプションで -v
を使用できます :詳細
環境を構成する
環境変数 PATH
を設定する必要があります と LD_LIBRARY_PATH
インストールされたパッケージが正しく機能するようにします。これは私の ~/.bashrc
からの対応するサンプルです :
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"
編集されたメモ (私の間違いを指摘してくれた @AmitNaidu に感謝):
起動ファイルに関する bash のドキュメントによると、ssh 経由でサーバーに接続する場合、.bashrc のみが読み込まれます:
<ブロック引用>リモート シェル デーモンによって呼び出される
Bash は、リモート シェル デーモン (通常は rshd) またはセキュア シェル デーモン sshd によって実行されるときのように、ネットワーク接続に接続された標準入力で実行されているときを判別しようとします。 Bash は、この方法で実行されていると判断した場合、~/.bashrc からコマンドを読み取り、実行します (そのファイルが存在し、読み取り可能であれば)。
この方法で多くのパッケージをインストールする場合は、プロセスを自動化することをお勧めします。もしそうなら、このリポジトリを見てください。
追記:gcc, zlib, make, cmake, git, fish, zsh or tmux
のいずれかをインストールしようとしている場合 、本当に conda の使用を検討する必要があります。私の他の回答を参照してください。
TL;DR Miniconda を使用してください。conda-forge は素晴らしいです。
curl "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" | sh
または、代わりに:
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
一般的に必要なパッケージ:
- gcc
conda install gcc
- zlib
conda install zlib
- make
conda install make
- cmake
conda install cmake
- git
conda install git
- 魚
conda install -c conda-forge fish
- zsh
conda install -c ActivisionGameScience zsh
- tmux
conda install -c conda-forge tmux
- この tmux には、使用する ncurse ライブラリの名前にバグがあります。
da/lib
に移動することで回避できます フォルダとシンボリックリンクln -sT libtinfow.so.6.1 libtinfo.so.6
- この tmux には、使用する ncurse ライブラリの名前にバグがあります。
残りについては、https://anaconda.org/search?q=
を試すことができます .
パッケージ マネージャーを CentOS/RedHat でうまく動作させるために長い間試みましたが、成功しませんでした。私ができる最善の方法は、root アクセス権を持つ別の CentOS の正しい場所に Gentoo Prefix をインストールし、.tar.xz
を scp することでした。 インストール全体をターゲットサーバーに送信します (Gentoo Prefix 用の適切な gcc を取得する唯一の方法)。 emerge
できました (ビルド &インストール) パッケージをターゲット サーバーにインストールしましたが、ローカルとパーミッションで問題が発生し続けました。
私は最近、conda を使用していくつかの興味深いパッケージのユーザー インストールを達成しました。コマンドラインからインストールする方法は次のとおりです:
curl "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" | sh
私のように、ホーム フォルダーがリモート ドライブ (ネットワーク ファイル システム) でホストされている場合、ホーム フォルダーにインストールしたくない場合があるため、mkdir /var/tmp/lo
のようなものを使用することをお勧めします。 /var/tmp/lo/da
のようなインストール フォルダを指定します。 インストール中。
そうすれば、必要なすべてのパッケージではないかもしれませんが、非常に多くのパッケージをインストールできるようになります。ほとんどの場合、デフォルト チャネルにない場合は、conda-forge
になります。 . https://anaconda.org/search?q=
で既存のパッケージを確認できます
conda の後に使用しようとした他のパッケージ マネージャー:
リナックスブリュー
これでhomebrew(linuxbrew)をインストールするのは簡単だと思いましたが、それらのソースは乱雑で、ハードコードされたrubyインタープリターへの絶対パスを使用しています。これは最後のバージョンではないなどの理由で失敗し、私は与えました
ニックス
Nix では、引き続き /nix フォルダーを使用する必要があります。彼らもそれをハードコーディングしており、インストール中に実行する必要があるすべてのダウンロードから正しく sed するのは困難です (更新は言うまでもなく)。
Gentoo プレフィックス
gcc をターゲット サーバーで使用できるようになったので、Gentoo Prefix を直接インストールする方が簡単になると思います。 -- OK、試してみましたが、インストール中にパーミッションのバグに遭遇しました (2018-09-28):
portage.exception.OperationNotPermitted: chown(b'~/gentoo/tmp/var/tmp/portage/sys-apps/gentoo-functions-0.12/image/var', 2000, 2000)
PkgSrc
pkgsrc を試してみます。 -- CentOS 6 の場合、または 7.x で (G)LibC バージョンの問題が発生した場合は、(古い) バージョンの 64 ビット EL 6.x を使用します。 -- うまくいきません。pkgsrc ハードコード /usr/pkg/sbin
と /usr/pkg/bin
.したがって、おそらくfakechroot環境をセットアップしない限り、ユーザーとして使用することはできません.しかし、私はそれをしたことがなく、ユーザビリティの問題が予想されます.
他のパッケージ マネージャーのインストールに成功した場合は、コメントまたは回答してください。