質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Q&A

解決済

2回答

658閲覧

環境構築:epelではパッケージのバージョンが不適な時の考え方について

chapin

総合スコア80

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

0グッド

1クリップ

投稿2019/04/24 10:37

概要:
centos7をepelを使って環境構築をしています。どうやらepelはpostgres (PostgreSQL) 9.2.24のバージョンまで対応しているようです。そして私が使いたいwebアプリケーションフレームワークのdjango2.1では、

PostgreSQL 9.3 に対するサポートの終了¶

The end of upstream support for PostgreSQL 9.3 is September 2018. Django 2.1 supports PostgreSQL 9.4 and higher.

とあります。そして現にエラーが出てしまいます。そこでpostgresqlのバージョンを高める必要があると考えましたが、どのような手法でバージョンを上げることがあるのでしょうか?

詳細:
自分が考えた方法
①epelで役不足だったpostgresqlだけを別のリポジトリ(例えば、ius)からインストールする。
...これはパッケージの衝突の可能性があるということで廃案に致しました。

②epelではなくiusというリポジトリを利用し、iusだけで環境構築する。条件を満たすパッケージバージョンかどうか調べる必要がある。条件を満たせば案として有用だと考えられます。

③postgresqlだけ直接ソースをダウンロードしてインストールする。
...この案もパッケージのコンフリクトが起きる可能性があると思われましたが、どうなのでしょうか?

独学で1年やってきましたので、長年やってきた人の工夫や現場の考え方をしりません。こういう状況に陥ったらどうのような考え方で対応するかアドバイスよろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

PostgreSQL 公式の Yum Repository を使うのはどうでしょうか?

About PostgreSQL Yum Repository

投稿2019/04/24 12:29

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chapin

2019/04/24 12:50

ご回答有り難うございます。 epel,iusしか知らなかったので使う候補とさせていただきます。ありがとうございます。
guest

0

ベストアンサー

①epelで役不足だったpostgresqlだけを別のリポジトリ(例えば、ius)からインストールする。
...これはパッケージの衝突の可能性があるということで廃案に致しました。

とりあえずコンフリクトするか試してみてはいかがでしょうか?
迂闊にyumのオプションに-yとかつけなければインストール前に確認出来るわけですし。

postgres関係全部(含むpostgresを使うプログラミング言語)に限ってiusなりremiなりでインストールすればいけるんじゃないかと思いますよ。
コンフリクトしたらbaseなりepelから削除してから入れなおせば良いだけです。

②epelではなくiusというリポジトリを利用し、iusだけで環境構築する。条件を満たすパッケージバージョンかどうか調べる必要がある。条件を満たせば案として有用だと考えられます。

これもやってみればいいかと。

③postgresqlだけ直接ソースをダウンロードしてインストールする。
...この案もパッケージのコンフリクトが起きる可能性があると思われましたが、どうなのでしょうか?

ソースからのビルドはそもそもパッケージを管理していないので、パッケージのコンフリクトは原理的に発生しません。が、コンフリクトによって発覚するはずの問題が発覚しないだけの話なので、殆どのケースでは信頼できるリポジトリを使う方が楽です。

別の方向性だと

Docker等のコンテナを使うとパッケージ管理については超楽になると思います。

投稿2019/04/24 12:09

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chapin

2019/04/24 13:09

ご回答有り難うございます。 回答をいただくまでコンフリクトについて分かっていなかったです。 てっきり環境構築後にプロダクトを実行時に生じるエラーの1つがコンフリクトだと思っていました。エラー原因の切り分けが難しくなるだろうと思っていましたが、yum installの時にコンフリクトのエラーを認識できるのですね。とりあえずコンフリクトするか試すのが最善だと感じました。-yをつけなければ分かるということも教えてくださりありがとうございます。 Dockerという言葉のみ知っていましたが、パッケージ管理が便利とのことなのでこちらも学習していこうと思いました。 結論としては、"コンフリクトはその場で認識できるから、とりあえずyum installを試してみてる".これをパッケージのバージョンが不適な時の考え方として取り組んでいこうと思います。 時間を割いて教えていただきありがとうございました。
tanat

2019/04/24 13:29

まだ若干誤解があるように思います。 yumインストール時に確認出来るのはあくまでパッケージ管理上のコンフリクトです。 そのパッケージを利用したアプリケーションが動くかどうかはまた別問題なので、別に確認が必要です。 ただ通常は、関連するパッケージを同一のリポジトリからインストールすればアプリケーションも正しく動く場合が多いです。 「postgres関係全部(含むpostgresを使うプログラミング言語)に限ってiusなりremiなりでインストールすればいけるんじゃないかと思いますよ。」トいう回答そういった意味も含んではいますが少し説明不足だったかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問