CentOS 6.4 x64のRPMパッケージを収集します

どなたでも大歓迎です! :)

CentOS 6.4 x64でRPMパッケージを作成した経験を共有したいと思います。 私はこのシステムが好きです。すべてがシンプルで、たくさんの情報があります。 そして、ほとんどのサービス(小規模なホスティング会社)にインストールされています。

稼働中のサーバーでは、パッケージをビルドしないでください。なぜ追加のパッケージが必要なのですか? 仮想マシンを作成し、そこで実行します。

今日は、1日前にリリースされたPHP-5.5.4を収集します。 なぜPHPなのか? そのアセンブリで私が最も苦しんだのは、通常の仕様ファイルがなかったため、エラーが発生したためです(何かが補足または修正されたとき)。 要するに、私は悲しみを彼と一週間以上飲みました。 そして、苦痛の中で、PHP用のパッケージを正しくコンパイルする方法が決定されました。

まあ、親愛なる皆さん、要点です!

1. OSをインストールしました。 すべてのインストールおよびアップグレードアクションがルートとして実行されることを考慮しているため、sudoは使用しません。 それでは、アップグレードして再起動しましょう。
yum update -y && shutdown -r now 


2.追加のリポジトリ接続します。 私はこれをいくつか使用します:

 rpm -ivh --nosignature http://rpm.axivo.com/redhat/axivo-release-6-1.noarch.rpm && rpm -ihv http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm 


やる
 yum update -y 


3.ここですべての良いものをインストールします。それなしではPHPをビルドしません。
最初にCentALTから:
 yum install -y libcurl-devel pam-devel sqlite-devel libedit-devel libtool-ltdl-devel libc-client-devel --enablerepo=CentALT 


次に、Axivoから:

 yum -y install postgresql-devel unixODBC-devel net-snmp-devel libxslt-devel libxml2-devel aspell-devel enchant-devel libicu-devel mariadb-server mariadb-devel t1lib-devel libjpeg-devel libpng-devel freetype-devel libXpm-devel libvpx-devel gmp-devel tokyocabinet-devel libmcrypt-devel libtidy-devel freetds-devel recode-devel --enablerepo=axivo 


それでは、opensslのバージョンを確認しましょう。

 openssl version 


1.0.1eでない場合、これを行います:

 yum install -y openssl openssl-devel--enablerepo=axivo 


次に、直接アセンブリに必要なものをインストールします。

 yum groupinstall -y "Development Tools" && yum install rpmdevtools 


4.次に、アセンブリに必要な環境を作成します。 以下のアクションは、ルートからではなく、通常のユーザーから実行する必要があります。これは非常に重要なポイントです。

このようにします:
 rpmdev-setuptree 


このコマンドは、次のサブディレクトリを持つディレクトリを作成します。
 + rpmbuild -BUILD -BUILDROOT -RPMS -SOURCES -SPECS -SRPM 


ここで、 BUILDはソースコードとともにアーカイブからファイルを解凍します。 RPMSにはrpmパッケージが含まれます。 ここで、 SOURCESはすべてのソースコードを設定とともに配置します。 SPECS-アセンブリの指示を含むspecファイルが含まれています。 これは、パッケージを構築するための最も重要な部分です。 SRPM- * .src.rpmファイルを含む-rpmパッケージのソース。 将来のパッケージに何かを追加/削除する必要があるrpmパッケージと一緒に配布できます。 仕様ファイル、アセンブリのソースが含まれています。

スペックファイル全体を1,200行以上アップロードしないため、ここからアーカイブをダウンロードすることをお勧めします
rpmパッケージphp-5.4のソースからspecファイルをやり直すだけでいいと思ったのですが、そこにありました! 自分で解決するのが難しい落とし穴の多く。 Remiリポジトリで必要なsrc.rpmバージョン5.5を見つけて、新しいバージョン用に再編集しました。 そして、すべてうまくいきました。

したがって、すべてのソースをダウンロードし、ホームディレクトリに展開するとします。 次に、SPECディレクトリに移動し、次のコマンドを実行して、src.rpmとともにrpmパッケージをビルドします。
 rpmbuild -ba php55.spec 


アセンブリは行きました。 コンピューターの能力によっては時間がかかります。 約40分かかりました。

PHPの新しいバージョンがリリースされた場合(5.5としましょう。*)、ソースフォルダーにbz2アーカイブをダウンロードし(これはSOURCESです)、ファイルSPECS / php55.specを編集します。 「バージョン:5.5.4」を目的のバージョンに変更します。 そして、あなたは新しいものを集めることができます。

すでに収集されたパッケージはここからダウンロードできます

PSサーバーのいずれかでバージョン5.4から5.5.4に更新しても、何も悪いことは起こりませんでした。 クライアントが持っていた唯一のものは「Depraceted:preg_replace()/ e」で、 preg_replace()/ epreg_replace_callback()に置き換えることで簡単に修正されました。

すべてにクリエイティブなウズベク語:)

Source: https://habr.com/ru/post/J194482/


All Articles