95879
OS: Debian 11.7  
DB: PostgreSQL 15.3  
pacemaker: 2.1.6  
corosync: 3.1.7  
DRBD: 9.2.4

上記の環境、OSSを使ってPostgreSQLのHA環境を構築する必要があります。  
OSSはパッケージマネージャからデフォルトでインストールできるバージョンではないため、それぞれ公式からソースコードを取得し、ビルドした上でインストールしました。

しかしpacemakerに問題があり、make installまでエラーなく完了したものの、pcsもcrmも同梱されていません。crm_resource,
crm_attiribute、crm_mon等の操作、監視用コマンドしか使うことができないため、リソースや制約の作成から登録作業を行う術がないのです。

不足しているパッケージをapt install
pcsなどでインストールしてしまうと、内部的に依存関係が自動解消されてしまうのか、pacemakerであればデフォルトバージョン2.0.5までダウングレードしてしまいます。

  1. ソースコードからインストールしたソフトと、apt installでインストールしたソフトを共存させる方法は存在しますか？

  2. pacemakerなどはClusterlabsのGitHubからソースコードをクローンしてきてビルドしていますが、ビルド方法にコツなどありますか？

※私は大抵の場合、autogen.sh→configure→make→make installしてるだけです。

現在、pacemakerをビルドすればpcs、crmコマンドがない。pcsを単独で個別にビルドしようとしたら謎のエラーで詰む。pacemaker, pcs,
resource-
agentsをデフォルトでインストールし、corosync、DRBDだけはバージョンを保とうとしたらpacemakerが動かない。DRBDだけでもバージョンを保とうとしたらデフォルトのpacemaker2.0.5ではDRBDのカーネルモジュールバージョン9.2.4に対応できない(9.1.0以下までと怒られる)。など、八方塞がりです。
CC BY-SA 4.0
2023-08-07T09:52:32.107
95874
2023-08-07T17:00:24.703
2023-08-07T17:00:24.703
3060
44175
question
linux postgresql debian cluster
Debianパッケージの依存関係について
### OS のパッケージ管理に頼る場合:

手っ取り早くは OS 自体 (Debian) のアップグレードを検討してください。

2023年8月現在、Debian の最新版 (stable) は 12.1 / bookworm になります。  
あなたが使用している 11.7 / bullseye は既に一つ前のバージョン (oldstable) 扱いになっています。

Debian 12.1 であれば Pacemaker のパッケージも 2.1.5 が利用可能です。  
<https://packages.debian.org/bookworm/pacemaker>

* * *

### OS バージョンを維持する必要がある場合:

#### Pacemaker をソースコードからインストール / pcs, crm コマンドが見つからない:

GitHub の README をよく読んでください。いくつかのコマンド等は別のリポジトリで分割して管理されています。(Debian
のパッケージも同様に分割されていますよね)

> ##### [What higher-level interfaces to Pacemaker are
> available?](https://github.com/ClusterLabs/pacemaker#what-higher-level-
> interfaces-to-pacemaker-are-available)
>
> There are multiple user interfaces for Pacemaker, including command-line
> tools, graphical user interfaces and web frontends. The crm shell used to be
> included in the Pacemaker source tree, but is now a separate project.
>
> This is not an exhaustive list:
>
>   * crmsh: <https://github.com/ClusterLabs/crmsh>
>   * pcs: <https://github.com/ClusterLabs/pcs>
>

#### apt で一部パッケージのみ別バージョンをインストールする方法

Debian では基本的に OS バージョン (コードネーム)
に応じてインストールできるパッケージのバージョンもある程度固定されていますが、設定を変更することで必要なパッケージのみ、より新しいバージョンをインストールすることが可能です。

但し、パッケージの依存関係が解決出来ない場合にはインストール不可なので、基本的には OS 自体のバージョンを上げる方が管理も楽だと思います。

**参考:**  
[Debian:
任意のtesting/unstableパッケージのみをinstallする方法(システム全体はstableを維持)](https://debimate.jp/2019/03/09/debian-%E4%BB%BB%E6%84%8F%E3%81%AEtesting-
unstable%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%81%BF%E3%82%92install%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%B7%E3%82%B9%E3%83%86/)
CC BY-SA 4.0
2023-08-07T12:39:53.770
95878
2023-08-07T12:39:53.770
3060
95874
answer
> 不足しているパッケージをapt install pcsなどでインストールしてしまうと、内部的に依存関係が自動解消されてしまうのか

パッケージ [pcs](https://packages.debian.org/bullseye/pcs) と
[crmsh](https://packages.debian.org/bullseye/crmsh) では pacemaker
が「recommends（推奨）」となっています。インストール時に推奨パッケージを一緒にインストールしたくない場合は、インストールコマンドに `--no-
install-recommends` を付けます。

例:

```

    apt install pcs --no-install-recommends
    
```
CC BY-SA 4.0
2023-08-07T13:49:42.120
95879
2023-08-07T13:49:42.120
3054
95874
answer