ホームページ  >  記事  >  システムチュートリアル  >  CentOS7 ソフトウェアのインストール手順と戦略の完全な分析

CentOS7 ソフトウェアのインストール手順と戦略の完全な分析

王林
王林転載
2024-01-04 09:40:10909ブラウズ

私が正式に Linux に取り組み始めたのは 2010 年でした。エントリーレベルのディストリビューションは Ubuntu 10.10 で、その後 Ubunu 11.04 に移行しました。この期間中、他の多くのメインストリーム ディストリビューションも試しました。研究室に入ってからCentOS 5を使い始め、その後CentOS 6を経て、現在はCentOS 7に進化しました。

私は Linux を 4 年間使用していますが、最初の 3 年間はあれこれいじって、多くの時間を無駄にし、多くの経験と教訓を得るのに費やしました。もしかしたら、私はもうかなりの高齢なので、もう面倒なことをする気にはなれなくなったのかもしれませんが、システムを設定した後は使い続けられることを願うばかりです。

この記事を書く/読む必要がある理由

Linux、特に CentOS を使用すると、いくつかの落とし穴や、潔癖症の人には許容できない事柄に遭遇することがあります。

公式ソースのソフトウェア パッケージのバージョンが古すぎるため、機能要件を満たすことができません。複数のソースからのソフトウェア パッケージにはバージョンの競合があります。ソフトウェアを手動でコンパイルすると、デフォルトで /usr/local の下の異なるサブディレクトリに異なるファイルが配置されます。ソフトウェアの更新や削除が面倒。など…

CentOS を数回再インストールした後、現在のシステムの安定性とクリーンさを可能な限り確保し、システムのヒステリーによって引き起こされる再インストールの衝動を可能な限り減らすために、次のソフトウェアのインストール方法と原則をまとめました。

以下は CentOS7 に限定されており、他のディストリビューションにも参考になる可能性があります。

公式ソース

CentOS に付属する 4 つの公式ソースのうち、ベース、アップデート、およびエクストラがデフォルトで開かれます。これら 3 つのソースには約 9,000 のソフトウェア パッケージが含まれており、最も安定していて信頼できるソースです。

したがって、ソフトウェア パッケージが公式ソースにある場合は、公式ソースからインストールする必要があります:

sudo yum install パッケージ名

サードパーティのソース

公式ソースには多くのソフトウェア パッケージが含まれていますが、日常のニーズを満たすことはできません。幸いなことに、公式ソースを補足できるサードパーティのソースがあります。

サードパーティのソースを使用する過程で、次の 2 つの問題が発生することを最も恐れています:

サードパーティ ソースと公式ソースに同じパッケージが存在するため、公式ソース パッケージがサードパーティ ソースに置き換えられます。同じソフトウェア パッケージが複数のサードパーティ ソースに存在し、バージョンが一貫していないため、競合しています;

これら 2 つの問題は致命的であることが多く、さまざまな予期せぬ結果をもたらすため、サードパーティ ソースを選択するときは、次の原則に従う必要があります:

信頼できるサードパーティ ソースのみを選択し、サードパーティ ソースが公式ソースのパッケージを置き換えないようにしてください。サードパーティ ソース間の競合が発生しないように、使用するサードパーティ ソースはできるだけ少なくしてください。パーティーのソース;

CentOSに関する限り、

によると

大規模なサードパーティ ソース。公式ソース パッケージを置き換えるものではなく、相互に競合がないことが確認されています。EPEL: 科学研究に不可欠な 6500 以上のソフトウェアが含まれています。ELRepo: 数十のドライバーが含まれています。さまざまなハードウェア用 Nux Dextop: マルチメディア関連ソフトウェア パッケージ (個々の EPEL ソフトウェアと競合するため、無視できます)

一部の小規模なサードパーティ ソースには、いくつかのソフトウェアしか含まれていません。公式ソースおよび EPEL ソースと競合しないことを確認します。Google Chrome を追加することもできます。Google Chrome が含まれており、公式ソースや EPEL ソースと競合しません。 EPEL ソース; Adob​​e: Flash プラグインのみが含まれており、競合がないことが確認されています; Dropbox: Dropbox ソフトウェアのみが含まれており、競合がないことが確認されています;

したがって、ソフトウェア パッケージが EPEL、ELRepo、またはいくつかの小規模なサードパーティ ソースにある場合は、サードパーティ ソースを追加し、yum コマンドを使用してインストールします。

sudo yum install パッケージ名

公式 rpm パッケージ

非オープン ソース ソフトウェアのほとんどは、CentOS 公式ソースまたは EPEL では入手できません。一部のソフトウェアの公式 Web サイトでは、公式 rpm パッケージが提供されます。現時点では、現在のシステムに対応する rpm パッケージを公式 Web サイトからダウンロードし、次のコマンドで直接インストールできます:

sudo rpm -i パッケージ名.rpm

たとえば、WPS for Linux もその 1 つです。インストール プロセス中に、rpm コマンドは依存関係を自動的にチェックし、ソフトウェアが依存するパッケージが公式ソースと EPEL ソースで見つかる場合、それらは自動的にインストールされます。

rpmパッケージを直接インストールするのは非常に簡単ですが、yumではソフトウェアのアップデートができないので少し面倒です。前述の Google、Dropbox、Adobe などの一部のソフトウェアは、実際にこの方法でインストールできますが、インストール中にソースがシステムに追加されますが、そのようなソフトウェアは簡単に更新したり削除したりできます。

解凍して使用します

一部のソフトウェアについては、公式が圧縮パッケージを提供しており、Java で書かれた多くのソフトウェアなど、解凍後、その中のバイナリ ファイルを直接実行できます。このタイプのソフトウェアはソース コードを提供せず、現在のプラットフォームで直接実行できるバイナリ ファイルを提供します。ほとんどの非オープンソース商用ソフトウェアはこのアプローチを採用しています。

たとえば、sublime_text、pycharm、mendeley、TauP、sac などは直接解凍し、解凍したフォルダーを /opt ディレクトリにコピーし、ソフトウェアの bin ディレクトリを PATH に追加します。たとえば、Mathematics、Matlab、intel Studio では、インストール スクリプトがソフトウェア パッケージで提供されており、スクリプトを実行することでインストールできます。

Linux では、商用ソフトウェアまたはサードパーティ ソフトウェアが /opt ディレクトリにインストールされるのが習慣です。これは、ほとんどの商用ソフトウェア パッケージのデフォルトのインストール パスでもあります。この習慣に従うようにしてください。

サードパーティの rpm パッケージ

CentOS ソースおよび EPEL ソースで一部のソフトウェアが見つかりません。公式の rpm パッケージは提供されていませんが、他のサードパーティ ソースでは rpm パッケージが提供されています。ケースバイケースで話し合ってください:

サードパーティ ソースに少数のパッケージしか含まれておらず、これらのパッケージが公式ソースや他の使用されているサードパーティ ソースと競合しないと判断された場合は、サードパーティ ソースを追加できます。サードパーティのソースに多くのソフトウェアが含まれており、公式ソースまたは EPEL ソースと競合する可能性がある場合、ソースは追加されません。ソフトウェア パッケージに複雑な依存関係がない場合は、rpm パッケージをソースに直接インストールします。ソフトウェア パッケージの場合、サードパーティ ソースの他のパッケージに依存している場合は、あきらめて他の方法を探してください;

サードパーティパッケージマネージャー

異なるディストリビューションでは異なるパッケージ マネージャーが使用され、CentOS では yum が使用され、Ubuntu では apt-get が使用されます。近年、Linuxbrew、Gentoo Prefix、pkgsrc など、ディストリビューションに依存しないサードパーティのパッケージ マネージャーがいくつか登場しています。

Linuxbrew

Linuxbrew は、OS X プラットフォームで非常に人気のある Homebrew から Linux に移植されました。 Linuxbrew は、システムに付属するパッケージ マネージャーの補足として使用できます。その特徴は次のとおりです:

すべてのソフトウェアは ${HOME}/.linuxbrew ディレクトリにインストールされます。ソフトウェアのバージョンは比較的新しいです。インストール、アンインストール、情報、リスト、更新、アップグレードなどの機能は、ディレクトリがあれば非常に簡単です。ライブラリには必須のソフトウェア パッケージはありません。独自の数式を作成してください

試してみると、落とし穴の 1 つは、linuxbrew が依存関係の問題を内部で解決してしまうということです。たとえば、linuxbrew を使用してターミネーターをインストールしようとしたところ、ターミネーターが Python に依存していることがわかりました。Python はすでにシステムにインストールされていますが、linuxbrew は依然として Python のコピーをインストールします。また、Python はより多くのものに依存しているため、より多くのソフトウェア パッケージがインストールされます。自宅の下に設置されています。さらに、linuxbrew はソース コードからソフトウェアをコンパイルするため、比較的低速です。

ソースコードをコンパイルする

ほとんどのソフトウェアは、前述の方法を使用してインストールできるはずです。インストールされていない場合は、このソフトウェアを本当にインストールする必要があるかどうかを自問する必要があります。どうしても必要でない場合はインストールしないでください。必要なソフトウェアの場合は、手動でコンパイルする必要があります。

一般的なソース コードのコンパイルには、通常、次の手順が含まれます。もちろん、特定の状況はケースバイケースで処理されます:

tar -xvf xxxx.tgz ./configure --prefix=/opt/xxxx make sudo make install

一般に、このタイプのソフトウェアのデフォルトのインストール ディレクトリは /usr/local で、最終的なファイルは /usr/local の bin、lib、share、および man ディレクトリに配置されます。

この配置方法は、ソースコードからコンパイルされたソフトウェアであるため、ソフトウェアの管理義務をコンパイラが全面的に負わなければならないことを意味するため、個人的にはあまり好きではありません。ソフトウェアのアンインストール中にトラブルが発生しました。そのため、構成時にインストール パスを手動で指定するために常にプレフィックスを追加します。ソフトウェアをアンインストールするには、/opt 配下の該当ディレクトリを削除してください。アップデートする場合は、削除してから再コンパイルすることもできます。これを行う際の少し面倒な点は、ソフトウェアの bin ディレクトリを手動で PATH に追加する必要があり、場合によっては LD_LIBRARY_PATH の変更も必要になることです。ただし、一般的にソース コードのコンパイルが必要なソフトウェアはほとんどないため、それほど問題は発生しません。

コードをコンパイルします

そうそう、実はタイトルの付け方が分かりません。 。

前のセクション「ソース コードのコンパイル」では、主にいくつかの大規模なソフトウェア パッケージに焦点を当てていましたが、このセクション「コードのコンパイル」では、いくつかの高度に専門的な小さなコード パッケージの処理方法について説明します。たとえば、いくつかのソフトウェア パッケージがコンパイルされた後、実際に必要なのはバイナリ ファイルだけです。この時点では、/opt にインストールする必要はありません。適切な方法は、自分の HOME の下に bin ディレクトリを作成し、そのファイルを追加することです。 .bashrc へのパスを追加し、コンパイルされたバイナリ ファイルをこのディレクトリにコピーするだけです:

mkdir ${HOME}/bin echo 'export PATH=${HOME}/bin:$PATH'>> ~/.bashrc

たとえば、${HOME}/bin ディレクトリには次のファイルがあります:

distaz: 地球上の 2 点の経度と緯度を与えて、震源距離と方位角を計算します。 pssac: SAC ファイルを GMT で描画します。 rdseed: SEED 形式を SAC 形式に変換します。 win2sac_32、catwin32: Hi-net によって提供されます。 Hi-net を処理する Web サイト データ プログラム st: sublime_text は /opt ディレクトリにインストールされ、コマンド ラインでの sublime text の呼び出しを容易にするためにここにソフト リンクが確立されます。 wlt.pl: インターネットにログインするための学校のスクリプト、コマンド ラインでネットワーク ポートを変更します。それでは、fk、fk.pl、syn、trav: 合成地震計を計算するための Lupei Zhu 教授のプログラムです。多くのソース コードがあります。実際、これら 3 つの実行可能ファイルと Perl スクリプトはすべて必要なものです。 matlab: matlab を指すソフト接続;

bin にはバイナリ ファイルを置かないでください。一般的に使用されるいくつかのコマンドまたは非常に一般的なツールのみをここに置く必要があります。

自己完結型システム ソフトウェア

ソフトウェアには多数のモジュールまたはパッケージが含まれるタイプがあり、これらの多数のモジュールを管理するには、独自のモジュール/パッケージ マネージャーが必要です。その中には TeX、Perl、Python があります。このタイプのソフトウェアの場合、多数のモジュールが最大の利点であり、最も価値のあるリソースであるため、私は通常、次の理由からモジュールを手動でインストールすることを選択します。

システム ソースにソフトウェアのすべてのモジュールを含めることは不可能です。システム ソース内のソフトウェア モジュールの更新は、最新バージョンよりも大幅に遅れています。

もちろん、システムに付属のバージョンを使用している場合でも、ソフトウェアに付属のパッケージ マネージャーを使用してモジュールをインストールできます。しかし、結果は次のようになります:

一部のモジュールはシステムの yum によって管理され、一部のモジュールはソフトウェアに付属のパッケージ マネージャーによって管理されます。yum によってインストールされるモジュールは通常古いバージョンであり、ソフトウェアのパッケージ マネージャーはほとんどの場合最新バージョンをインストールする必要があります。

これは、モジュール管理の混乱を招く一方で、ソフトウェアに付属のパッケージを使用してインストールされているモジュールを管理する場合、他のモジュールの最新バージョンに依存する可能性があります。モジュールがシステムの yum バージョンを通じてインストールされたものより古い場合、モジュールのインストールが失敗する可能性があります。

したがって、このタイプのソフトウェアの場合、通常は個別にインストールされ、独自のパッケージ マネージャーを使用してモジュールを管理します。

TeXLive: TeXLive iso イメージ ファイルを通じてインストールし、独自の tlmgr 管理パッケージを使用します Perl: plenv を通じて最新バージョンの Perl をインストールし、plenv に付属の cpanm を使用してモジュールをインストールします Python: 最新バージョンの Python をインストールしますpyenv、Python を使用してください pip インストール モジュールが付属しています

例外

ルールには常に例外があります。

サードパーティのソース

mosquito-myrepo は非公開で管理されているソースであり、中国語入力メソッド、QQ、Fetion、Weizhi Notes、Youdao Dictionary、Baidu Cloud、およびいくつかのオーディオおよびビデオ プレーヤーが含まれています。このソースには愛憎の感情があり、中国人が必要とするソフトウェアが多数提供されていますが、EPEL 以外のサードパーティ ソフトウェア ソースに依存しているため、パッケージの競合が発生する可能性があります。したがって、このソースは注意して使用してください。

要約

簡単な要約:

EPEL ソース、Nux Dextop、ELRepo ソース、およびその他の小規模なサードパーティ ソースをシステムに追加します。ソースからインストールできる場合は、ソースからインストールします。ソースからインストールできない場合は、次のことを試してください。 rpm パッケージを見つけます。rpm パッケージが見つからない場合は、インストールしてください。linuxbrew を試してください。手動でコンパイルできる場合は、手動でコンパイルしないでください

以上がCentOS7 ソフトウェアのインストール手順と戦略の完全な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。