gentooのmaskパッケージの利用方法

Tech > Distoribution > gentoo

利用したいパッケージがマスクパッケージ(非安定版)の場合、以下のメッセージが出力され叱られます、そんな時はマスクを解除してあげます。

2021/09/22時点でマスクパッケージのPHP8系を例にご説明致します。

マスクパッケージのインストール

マスクパッケージ(非安定版)をインストールしようとすると、この様に叱られます。

# emerge -pv php:8.0

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy "php:8.0" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/php-8.0.10::gentoo (masked by: ~amd64 keyword)
- dev-lang/php-8.0.9::gentoo (masked by: ~amd64 keyword)
- dev-lang/php-8.0.8-r2::gentoo (masked by: ~amd64 keyword)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

phpの3つのバージョンは、 x86_64環境( ~amd64 )でマスクパッケージですというご説明を出力されます。

マスクパッケージの解除

深呼吸をして、落ち着いたら、特定のバージョンのPHPをインストール出きるよう、 /etc/portage/package.accept_keywords へ解除するアーキテクチャを指定して解除します。 ~amd64 の識別子は ebuildのKEYWORDSに指定されているものです、 x86_64 のARCHのマシンのみ解除という意味になります。

=dev-lang/php-8.0.10 ~amd64

こうでも良いですが、 無敵レベル で新しいバージョンを入れてくるので注意してください。

dev-lang/php ~amd64

マスクパッケージのご利用は、ご自身により計画的にご利用ください。

ビルド

マスクパッケージのSLOTバージョンを指定してビルドする、コロン(:)の次の数字がSLOTになります。

# emerge -pv dev-lang/php:8.0
Calculating dependencies... done!
[ebuild  NS   ~] dev-lang/php-8.0.10:8.0::gentoo [7.4.21-r1:7.4::gentoo] USE="acl apache2 bzip2 cgi cjk cli ctype curl exif fileinfo filter flatfile fpm ftp gd gdbm gmp iconv imap inifile ipv6 jit mhash mysql mysqli nls 
opcache pcntl pdo phar phpdbg posix postgres readline session simplexml soap sockets spell ssl systemd sysvipc threads tidy tokenizer truetype unicode xml xmlreader xmlwriter xpm zip zlib -apparmor% 
-argon2 -bcmath -berkdb -calendar -cdb -coverage -debug -embed -enchant -ffi -firebird -intl -iodbc -kerberos -ldap -ldap-sasl -libedit -lmdb -mssql -oci8-instant-client -odbc -qdbm (-selinux) -session-mm 
-sharedmem -snmp -sodium -sqlite -test -tokyocabinet -webp -xslt (-json%*) (-xmlrpc%*)" 10,453 KiB

そして、表示のの意味ですが

[ebuild  NS   ~] ...
  • N・・・新規インストール
  • S・・・新規かつSLOTインストール(他のバージョンあり)

ということで、他のバージョンと重複してはいるということと、その他のバージョンは 7.4.21-r1:7.4::gentooバージョンが7.4.21-r1SLOTが7.4リポジトリがgentoo というご説明が確認できます。

どうでもよい情報は無視してください。

ご確認ができましたら、pretend,verboseのオプションを外し、emergeを実行してください。

emerge後の確認

ビルドが完了しましたら、 eselect コマンドを利用して、現在有効なPHPのバージョンを確認致します。

PHPの場合、SAPI毎に利用するバージョンを指定できます、CLIを例に切り替えてみます。

shell(root) > eselect php list cli
 [1]   php7.4 *
 [2]   php8.0

(*) がついているのものが現在利用中のバージョンとなります。

shell > php --version
PHP 7.4.21 (cli) (built: Sep 22 2021 05:01:55) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

2番の php8.0 に切り替えます。

shell(root) > eselect php set cli 2

こちらの指定方法でも同様です、お好きな方をご利用ください。

shell(root) > eselect php set cli php8.0

確認します

PHP 8.0.10 (cli) (built: Sep 22 2021 06:02:25) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v4.0.10, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.10, Copyright (c), by Zend Technologies

gentooでは、バージョンの違いによる動作確認など、造作もありません。

その他のモジュール

USEフラグを有効に設定しビルドした場合は、複数のモジュール(SAPI)が入ります、切り替え可能なモジュールは以下のとおりです。

  • Add Apache2 support(mod_php)
shell(root) > eselect php list apache2
  • Enable the FastCGI Process Manager SAPI
shell(root) > eselect php list fpm
  • Add CGI script support
shell(root) > eselect php list fcgi
  • Enable the PHP Debug Command Line SAPI
shell(root) > eselect php list phpdbg

これで最新のPHP環境で、いろいろなPHPフレームワークなどの、プロファイルや動作検証が出きるようになるでしょう。

Posted on 2021-09-22 06:46:22

はじめまして

お茶の国静岡で、焼酎のお茶割なんか罰当たりで飲んだことはありません、常に一番搾りを嗜む静岡極東のBBQerです、最近まわりのエンジニアの方々がお料理を上手にやっている姿を恨めしそうに横目に見ながら、軟骨ピリ辛チクワを食べています、みなさんよろしく。

Posted

Amazon

tags

thread spawn Rust Oracle Linux 8 microcode firmware linux openzfs zfs gitea 麒麟 真野鶴 金鶴 日本酒 docker oracle pod podman cli virtualbox VirtualBox epub mobi calibre mask lens ワンライナー php redmine Linux Oracle Map OMap omap map BBQ カテゴリ管理 カテゴリ timestamp date oracle database string 麦焼酎 ダービー process 磨き蒸留 広井酒店、日本酒 芋焼酎 焼酎 ゆるキャン 広井酒店、日本酒池 spring framework java persistent spring session session spring hdbc-odbc persistent-odbc odbc day utctime スィート レマンの森 elm初期化 elm バイク xlr80 esqueleto database xl2tpd strongswan vpn l2tp ipsec 正月 ゲーム grub nginx systemctl portage 豚骨 圧力鍋 yesod-auth-hashdb yesod-auth yesod CentOS8 tsl ssl 設定 install gentoo ghci stackコマンド stack MathJax