CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Arch Linuxでは、公式リポジトリはコア、エクストラ、コミュニティです。これらのパッケージは既にコンパイルされており、を通じてインストールされますpacman
。ほとんどの場合、一般ユーザーはこれらの3つの公式リポジトリが別個であることを無視できます。コアには、カーネル、ブートプロセス、ネットワーク、パッケージ管理、opensshなどの最も重要なパッケージが含まれています。また、新しいバージョンがリリースされる前に、より徹底的なテストを行うという厳しい要件もあります。Extraには、Xサーバー、ウィンドウマネージャー、Webブラウザーなど、それほど重要ではない他の一般的なパッケージが含まれています。コミュニティにはあまり人気のないパッケージが含まれています。信頼できるユーザー(他の信頼できるユーザーによって投票された約60人のアクティブユーザー)のみが、公式リポジトリを変更するためのアクセス権を持っています。
2019年には、公式リポジトリのhttps://www.archlinux.org/packagesに約11,000個のパッケージがあります。しかし、Linuxで利用できる他の多くのプログラムがあります。そのため、AUR(Arch Linux User Repository)が存在するため、Archユーザーは新しいプログラムを追加してそのメンテナーになるか、現在のメンテナーがいない「孤立した」パッケージを採用できます。AURのhttps://aur.archlinux.org/に約55,000個のパッケージがあります。
AURには3つの重要な違いがあります:
PKGBUILD
、コンパイルされたバイナリではなく、パッケージを自動的に作成するためのシェルスクリプトであるのみを格納します。(時には、小さなテキストパッチ、またはシェルスクリプトのインストール/アップグレード/アンインストールも含まれます)。これは、誰かが悪意のあるコードを配布できる可能性を軽減しながら、すべてのユーザーが貢献できるようにするという途方もない仕事をしました。ArchコミュニティはAURパッケージの問題に関してはまだかなり役に立ちますが、それらの使用はあなた自身のリスクであることが指摘されています。提供するのはだけPKGBUILD
なので、使用するを確認するのは最終的にはあなたの責任PKGBUILD
です。(当然のことながら、多くのユーザーはこれを行わず、他のユーザーに頼って監視を続けています。)pacman
はAURと直接対話しないため、AURパッケージを更新するのはユーザーの責任です。を介してシステム全体を定期的にアップグレードする場合、pacman
AUR PKGBUILD
ファイルへのアップデートを自動的にダウンロードしてコンパイルし、インストールすることはありません。この記事ではAURからのパッケージの構築に焦点を当てていますが、同じ手法を使用して、公式リポジトリから自分でパッケージを構築することもできます。
PKGBUILD
.spec
他の多くのディストリビューションが使用するファイルと比較すると、a PKGBUILD
は短くて単純なシェルスクリプトです。一部のパッケージはより複雑ですが、単純に次のようになります。
pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc='DESCRIPTION'
url=http://example.com/
arch=('x86_64')
license=('GPL2')
source=(http://example.com/downloads/${pkgname}-${pkgver}.tar.gz)
sha256sums=('f0a90db8694fb34685ecd645d97d728b880a6c15c95e7d0700596028bd8bc0f9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make install
}
このドキュメントは次を参照しています:
PKGNAME
:パッケージの名前PKGVER
:パッケージのバージョン(ほとんどの場合、アップストリームのバージョン番号と一致します)PKGREL
:PKGBUILD
特定ののArchの「バージョン」PKGVER
(通常は1ですがPKGBUILD
、上流のリリース間で変更を加える必要がある場合は増分されます)ARCH
:パッケージを構築できるアーキテクチャ(Arch Linux公式リポジトリは "x86_64"(64ビットCPU)のみをサポートするため、レガシーですが、AURパッケージは "i686"(32ビットCPU)または "any"をサポートできますアーキテクチャを指定することは無関係です)PKGBUILD/ETC
:実際にAURリポジトリにあるファイル。PKGBUILD
、およびその他の小さなテキストパッチ、またはアップグレード/アンインストールシェルスクリプトを/インストールしてください。上流ファイルをsource
配列に含めません。AURは非常に信頼できることが証明されていますが、信頼できるPKGBUILD/ETC
場所からソースを取得していることを確認するためにを確認することをお勧めします。(たとえば、githubからのものである可能性のある公式の上流の場所-しかし、上流のパッケージに関係のないランダムな人のgithubリポジトリだけではありません); PKGBUILD/ETC
疑わしいコードは含まれていません。
PKGBUILD/ETC
インストールするパッケージが公式リポジトリに含まれていない場合は、https://aur.archlinux.org/で検索してください。うまくいけば、あなたが探しているものが存在し、最新で維持されていることがわかるでしょう。
PKGBUILD/ETC
AURからを取得する最良の方法は、を介してクローンを作成することgit
です。
インストールしgit
ていない場合は、インストールします。
# pacman -S git
AUR Webサイトに表示されている「Git Clone URL」を使用して、そのパッケージを取得します。
$ git clone https://aur.archlinux.org/fslint.git
ディレクトリに入り、その内容を確認します。(を除いてすべては、ここに記載され. .. .git
ていますPKGBUILD/ETC
):
$ cd <PKGNAME>
$ ls -a
. .. .git PKGBUILD .SRCINFO
を調べるPKGBUILD
と、公式のアップストリームソースコードを使用しており、パッケージを構築するための一般的な手順を実行していることがわかります。そのため、信頼できるようです。に.SRCINFO
はパッケージに関するWebサイトに表示される情報が含まれているだけなので、心配する必要はありません。ここに他のファイルがある場合、それらは上流から(直接)提供されPKGBUILD
ていないため、疑わしい内容が含まれていないことを確認するために、ファイルとでの使用方法を調べる必要があります。
それほど頻繁に必要になることはありませんが、公式リポジトリにすでにあるパッケージをビルドして、新しいパッチを含めたり、新しいバージョンをビルドしたりできます。
PKGBUILD/ETC
コアおよび追加のリポジトリから取得します。
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/packages.git "<PKGNAME>"
コミュニティリポジトリから:
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/community.git "<PKGNAME>"
PKGBUILD/ETC
アップグレードPKGBUILD/ETC
がリリースされた場合は、を使用して作成したこのディレクトリに戻ってgit clone
、それらを更新できます。
$ git pull
次に、以下の選択した方法を使用して、パッケージを再コンパイルおよびアップグレードします。
パッケージをコンパイルするには多くの方法があります。最終的に、すべてがを使用しmakepkg
ます。正式にサポートされている方法は2つあります。
makepkg
には、https://www.vultr.com/docs/using-makepkg-on-arch-linuxを参照してください。makepkg
クリーンchroot
で間接的に使用するには、https://www.vultr.com/docs/using-devtools-on-arch-linuxを参照してください。そこ(のような多くのAURヘルパープログラムされているmakepkg
ような正式アーチでサポートされていないラッパーは)、、 、aurutils
、yay
最近で中止aurman
とyaourt
。これらの他のヘルパープログラムのいずれかを使用している場合でも、何かがうまくいかない場合により効果的になるために公式にサポートされている方法をよく理解することを強くお勧めします。
このドキュメントの残りの部分では、YOUR BUILDER
選択した方法を意味します。
ビルドするすべてのパッケージの中心的な場所になるようにローカルリポジトリを設定できます。
ローカルリポジトリを好きな場所に配置します。
# mkdir /archLocalRepo
YOUR BUILDER
自動インストールオプションなしで実行し、パッケージをローカルリポジトリにコピーします。
# cp <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz /archLocalRepo
新しいパッケージをリポジトリインデックスに追加します。
# repo-add /archLocalRepo/archLocalRepo.db.tar.gz /archLocalRepo/<PACKAGE-FILE-NAME>
リポジトリのインデックスとパッケージファイル自体からパッケージを削除するには:
# repo-remove /archLocalRepo/archLocalRepo.db.tar.gz <PKGNAME>
# rm /archLocalRepo/<PACKAGE-FILE-NAME>
既存のパッケージファイルを置き換える必要がある場合は、置き換えられるファイルを個別に削除してから、新しいファイルを追加する必要があります。新しいファイルを古いファイルに単純にコピーすることはできません。
をpacman
編集してローカルリポジトリを使用するように設定/etc/pacman.conf
し、最後に以下を追加します。
[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo
pacman
リポジトリ(ローカルのものを含む)データベースの知識を更新する必要があります。追加したパッケージを確認するには:
# pacman -Sy
その後、公式リポジトリにある場合と同じように、パッケージをインストールできます。
# pacman -S <PKGNAME>
パッケージが、インストールする別のパッケージの依存関係にすぎない場合は、直接インストールする必要はありません。この他のパッケージpacman
をインストールすると、ローカルのリポジトリで依存パッケージが自動的に検出されてインストールされます。
デフォルトではYOUR BUILDER
、シングルスレッドを使用してコンパイルします。マルチCPUシステムでは、可能な場合は複数のスレッドの使用を許可できます。ビルドシステムは、可能な場合、ソースコードの一部を並行してコンパイルします。コードの一部が、すでにコンパイルされているために相互作用する他の部分を必要とする場合があるため、常に使用されているスレッドの数が許可されているとは限りません。編集/etc/makepkg.conf
。
仮想コアと同じ数のスレッドを使用できるようにするには、以下を追加します。
MAKEFLAGS="-j$(nproc)"
注: これによりコマンドがnproc
毎回実行されるため、Vultrサーバーをアップグレードする場合に備えて、常に現在のコア数が使用されます
システム全体のパフォーマンスへの影響を減らすなど、複数の仮想コアを使用できるようにするには、特定の数を追加します。たとえば、24コアの場合、21を使用することができます。
MAKEFLAGS="-j21"
使用している仮想コアの数より多くのスレッドを指定すると、パフォーマンスが低下します。
これはかなりまれですが、一部のパッケージのビルドシステムでは、コードの部分間の依存関係を適切に定義していないため、並列コンパイルに問題があります。通常、これらのパッケージのPKGBUILD
ファイルはmake -j1
、を呼び出してこれを処理します。これにより、設定したデフォルトが上書きされます。これが必要で欠けている場合は、Archパッケージのメンテナに報告してください。
PKGBUILD
ソース配列を含むことができます.asc
または.sig
ファイル。それらはbash brace展開を使用して含まれることが多いため、見落としがちです。
source=("http://example.com/downloads/${pkgname}-${pkgver}.tar.gz{,.sig}")
これらの形式の署名ファイルのいずれかがソース配列に含まれている場合、はYOUR BUILDER
自動的に上流のソースアーカイブの署名の検証を試みます。署名のPGP鍵はユーザーの鍵リングに含まれている必要があります。それ以外の場合は、次のエラーで中止されます。
==> Verifying source file signatures with gpg...
<SOURCE-FILE> ... FAILED (unknown public key 1234567890ABCDEF)
==> ERROR: One or more PGP signatures could not be verified!
GPGキーはいくつかの方法で表示できることを理解することが重要です。その指紋は40桁の16進文字であり、常に使用する必要があります。長いキーIDは最後の16桁で、短いキーIDは最後の8桁です。短くすると便利ですが、重複を許可して、署名の検証の背後にあるすべての理由を無効にします。さらに悪いことに、攻撃者は知名度の高い開発者のために、短い長さのキーと一致する偽のキーを生成することが知られています。
パッケージのビルドをまだ行っていない場合は、署名ファイルを含むソースをダウンロードします(ビルドを試みた場合は、すでにそこにあります)。
$ makepkg --nobuild --noextract
完全な指紋を取得するには:
$ gpg <ASC-OR-SIG-FILENAME>
...
gpg: using RSA key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE
...
理想的には、上流からこのフィンガープリントを確認する必要があります。安全を確保するために、アップストリームはWebサイトまたはソースのどこかにメンテナのキーを提供する必要があります。キーサーバーでキーを検索するだけでは、実際には何も実行されません。キーサーバーは信頼性を検証しないため、攻撃者は偽のキーを簡単に送信できます。鍵は他の鍵で署名できるため、信頼できる鍵がすでにある場合は、それらが署名したすべての鍵をかなり安全に信頼する必要があります。
これはかなりの作業になる可能性があります。特に、アップストリームが指紋を公開したり、見つけやすい場所に置いたりしない場合は特にそうです。にはArchのメンテナによって追加さPKGBUILD
れたvalidpgpkeys
配列が含まれます。パッケージが公式リポジトリである場合、それは信頼されたユーザーがパッケージを配置したことを意味し、配列にリストされているものを信頼するだけでかなり安全です。パッケージがAURにある場合は、別のArchユーザーがパッケージをそこに置いたことを意味することに注意してください。それを信頼することに不安がある場合は、いつでもユーザーを調べて、Archを使用して過去に行ったことを確認できます。
キーリングに指紋を追加するには:
$ gpg --recv-keys <FINGERPRINT>
YOUR BUILDER
これでを実行でき、指紋を信頼します。
終わる名前を持つAURパッケージ-git
、-svn
、-bzr
または-hg
上流の最新のリリースだの上流の最新バージョン管理システムを使用している発達のバージョンでは、代わりにコミット。たとえば、-git
パッケージは、マスターブランチ(または同等のブランチ)でアップストリームの最新のコミットを使用します。これは、まだリリースされていないアップストリームのバグ修正と新機能を実行するのに最適です。それらについては、リリースに含まれていないコミットによって修正されたバグではないことを確認する必要があります。これらのパッケージは潜在的に不安定であると考えられるべきです。とはいえ、残念ながら、一部の上流のメンテナはリリースにタグ付けしないか、タグ付けリリース間で過度に長くなり、誰もが最新のコミットを使用することを期待しているため、代替手段がない場合があります。パッケージによっては、あなたがそのコミットを実行しようとする最初の人かもしれません。上流の開発者によっては、最新のコミットがコンパイルされないことさえあり、
よくある間違いを理解することが重要です。古いバージョン番号が表示されているからといって、AUR開発パッケージに古いフラグを付けないでください!開発パッケージPKGBUILD
ファイルには、アップストリームのソースコードからpkgver()
更新されたものを自動的に解析するために使用される追加の関数が含まれていPKGVER
ます。-git
パッケージの一般的な形式は<TYPICAL-VERSION-NUMBER>.r<COMMITS-SINCE-LAST-RELEASE>.<GIT-COMMIT>-<PKGREL>
です。AURにはパッケージが含まれ5.0.0.r102.8d7b42ac21-1
ているため、パッケージはとしてリストされる場合がありPKGBUILD
ます。ただし、パッケージを作成すると、YOUR BUILDER
は自動的に更新PKGVER
され、新しくダウンロードされたソースコードを反映します。実際、多くの新しいバージョンがリリースされたが、ビルドプロセスで何も変更されていない場合、このようなPKGBUILD
古いバージョンのリストは、次のようなより新しい何かをビルドすることになります。9.1.2.r53.2c9a41b723-1
。これらのパッケージの場合、ウェブサイトにリストされているバージョンは、AURメンテナーが最後にを更新しなければならなかったときの最新バージョンPKGBUILD
です。
AURのメンテナは、PKGVER
新しいバージョンを反映するために単にを更新することは想定されていません。新しいアップストリームのコミットが実際PKGBUILD
に変更するために何か他のものを必要とするときだけそれらはそうすることになっています。
何かが実際に間違っていることがわかっている場合にのみ、開発中のAURパッケージに古いフラグを付けます。つまり、実際に使用してみましたが、適切にフォーマットされたnewのコンパイルまたは解析に失敗しましたPKGVER
。時々PKGBUILD
、上流の依存関係の変更、configure
オプションの変更、新しいGCCバージョンが以前のものではなかったソースコードのエラーをピックアップする、上流のリポジトリの場所が変更される、上流の開発者が典型的なバージョンを変更するなど、AURメンテナにを強制的に更新することが起こりますソースコード内にあり、PKGVER
解析機能。コンパイルまたは機能しない場合でも、AURメンテナーがビルドプロセスに変更を加える必要があるか、AURメンテナーが責任を負わないソースコードの上流の問題である可能性があることを理解してください。
パッケージが古くなっていると報告する前に、上記の「AUR開発パッケージ」セクションを必ずお読みください。
アップストリームが非開発用パッケージの新しいバージョンをでリリースした場合はPKGBUILD
、[パッケージのフラグを古くする]をクリックして、メンテナへのメッセージを入力できます。公式リポジトリパッケージにはhttps://packages.archlinux.orgを、AURパッケージにはhttps://aur.archlinux.orgを使用してください。役立つメッセージは、新しいバージョン番号と、おそらくリリースのお知らせまたはソースコードへのリンクです。フラグ機能はあなたのメッセージをメンテナに自動的にメールします。
AURパッケージでは、2週間経過しても応答がない場合、信頼されたユーザーに現在のメンテナーを削除するよう依頼し、パッケージを孤立させるには、「Orphan」タイプの[Submit Request]をクリックします。メンテナは孤立したリクエストに応答しません。一般的に、孤立したリクエストを提出できるのは、パッケージを引き継ぐことができ、その意思がある場合のみです。できれば、currentがすでに機能している場合に限りPKGBUILD
ます。
それまでの間、古いパッケージを自分で更新できることがよくあります。多くの場合、を変更するだけで新しいバージョン番号にPKGBUILD
更新する必要がありPKGVER
、整合性の合計が更新されます。プログラムupdpkgsums
はパッケージpacman-contrib
に存在します。これは自動的に合計を計算し、で更新しPKGBUILD
ます。アップストリームのリリースノートをチェックして、新しいバージョンのインストールプロセス中に何か変更する必要があると述べているかどうかを確認することは価値があります。アップストリームの変更により、への変更またはオーバーホールが必要になる場合がありますPKGBUILD/ETC
。多くの場合、source
配列はその中に埋め込まPKGVER
れているため、更新する必要さえありません。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。