レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

MacPortで公開されているコンポーネントを検索する

MacPortからインストール可能なコンポーネント(Apache,MySQL,PHPなど)を調べ、
インストールする前にどのようなバージョンが提供されているのかを知るには、
Portコマンドを利用すると、結果をすべて表示したり、
必要なものだけにフィルタリングしたりすることができます。
ここではportコマンドを利用してコンポーネントの検索を行う方法をご紹介します。

 

MacPortで公開されているコンポーネントを検索する

MacPortで公開されているコンポーネントを調べるにはWebで検索して確認するか、
ターミナルコマンドを利用してPortコマンドで検索する方法が利用できます。

Apache、MySQL、PHPに関しては以下で個別にご紹介しています。

 

Webページ(The MacPorts Project)で確認

MacPortのサイトを開きサイドメニューの「Available Ports」をクリックします。

osx-mp-chkver-xxx_st01

MacPortコンポーネント確認・Portバージョン確認

 

ここからMacPortを介してインストールすることができる
コンポートネントの検索が行えます。

osx-mp-chkver-xxx_st02

コンポーネント検索・Portバージョン確認

 

この方法ならMacPort未導入の端末などからでも、
簡単に確認することができ便利な反面、
数の多いコンポーネントから必要なもの(バージョン)を検索するのが、
少し面倒な部分もあります。

各検索の例については以下でご紹介しています。

 

ターミナル(Portコマンド)で確認

ターミナルコマンドでMacPortコンポーネントを検索するには、
既にMacPortを導入済みである必要があります。

MacPort(本体)のインストールがまだの場合は導入を行います。
※MacPortコマンド「path」への環境変数はPATHは自動的に設定されます。

ターミナルウィンドウを開き、portコマンドを利用して、
コンポーネントを検索します。

ここでは数の多いphpコンポーネントの例でご紹介します。

全リスト表示(port list)

port list

このコマンドでは、MacPortで利用可能な全コンポーネント名が一覧で確認できます。
そのままではかなりの数が表示されますが、grepなどで絞り込むこともできます。

以下では、結果にphpが含まれるものを絞り込んでいます。

port list | grep php

osx-mp-chkver-xxx_st06

全リスト表示・Portバージョン確認

 

以下のようにphpから始まるコンポーネントが確認できます。

osx-mp-chkver-xxx_st07

全リスト表示結果1・Portバージョン確認

 

中略していますが、数が多すぎて探すのが大変な反面、
コンポーネント名の命名規則などが分からないような、
新しいコンポーネントを検索する場合などに便利です。

osx-mp-chkver-xxx_st08

全リスト表示結果2・Portバージョン確認

 

グロブワイルドカード絞り込み(port search –name –glob)

port search --name --glob 'php*'

このコマンドでは名前を「phpから始まる」という条件で検索することができます。

osx-mp-chkver-xxx_st09

グロブワイルドカード・Portバージョン確認

 

listの時と同じような検索方法ですが、
この場合、複数行に渡って補足情報などが付加されて表示されます。

osx-mp-chkver-xxx_st10

グロブワイルドカード結果1・Portバージョン確認

 

中略していますが、searchでは最後に該当件数が表示されます。

Found 739 ports.

osx-mp-chkver-xxx_st11

グロブワイルドカード結果2・Portバージョン確認

 

グロブワイルドカード絞り込み1行表示(port search –name –line –glob)

port search --name --line --glob 'php*'

「–line」を付加して検索すると1行表示として結果を得ることができます。
ターミナルウィンドウ幅を広げて折り返しを無くすと見やすくなります。

osx-mp-chkver-xxx_st12

グロブワイルドカード1行表示・Portバージョン確認

 

結果の表示がすっきりします。

osx-mp-chkver-xxx_st13

グロブワイルドカード1行表示結果1・Portバージョン確認

13

それでもやはり「php*」の条件指定ではやはり数が多すぎて、
目的のコンポーネントが絞り切れません。

osx-mp-chkver-xxx_st14

グロブワイルドカード1行表示結果2・Portバージョン確認

 

正規表現絞り込み(port search –name –line –regex)

port search --name --line --regex '^php\d*$'

そこでこのコマンド「–regex」です。
検索条件に正規表現を利用することができます。

「’^php\d*$’」では、

「^php」はphpで始まり、
「\d*$」は任意の数字で終わる(数字が無くても可:0回以上)が、

検索条件になっています。

^  文字列または行の先頭で一致する必要があります。
$  文字列の末尾で一致するか、行または文字列の末尾にある \n の前で一致する必要があります。
*  直前の要素と 0 回以上一致します。
\d  10 進数字と一致します。

(引用)正規表現言語 – クイック リファレンス

osx-mp-chkver-xxx_st15

正規表現・Portバージョン確認

 

その絞り込み結果が以下のようになっています。

いかがでしょうか、ほぼ目的の検索結果に近づいたのではないでしょうか。

osx-mp-chkver-xxx_st16

正規表現結果・Portバージョン確認

 

しかし最初から「この正規表現で絞り込める」という事が分かっているわけではなく、
前述の大量のリストの中から、

利用したいコンポーネント名と、
表示したくないコンポーネント名の命名規則から判断して、
それに合った正規表現を組み立てて表示するということになります。

 

プロモーション

Google or AdMax Promotion (srvpos)

参考

以下の通りそのまま書かれています。

3.1.7. port search

The search action allows finding ports by partial matches of the name or description. Other fields can be matched against, and matched in different ways, by using options. port search is the tool of choice if you are looking for a specific software in MacPorts. We recommend you read up on some of its flags to improve your efficiency when searching for ports. Run port help search for an exhaustive list of possible switches.

Suppose you are looking for PHP in MacPorts. You might start with port search php and notice your query produces a lot of output. In fact, at the time of writing this, this search produces 661 matches. By default, port search searches both name and description of a port. While we’re looking for PHP, we can reduce the number of hits by using the --name flag. Furthermore, we only want ports whose name starts with php, so we add the --glob flag (actually, we could leave it out because it is the default) and modify the search term to php*:
$ port search --name --glob 'php*'
Furthermore, we can enable compact output by using the --line switch. This causes only a single line to be printed for each match:
$ port search --name --line --glob 'php*'
Among a large number of PHP modules you will find the main PHP ports, which are named php<version>. Choose one to install.

If you know regex and know about the format of the PHP versions, you can further reduce the output of port search:
$ port search --name --line --regex '^php\d*$'
php 5.5 lang www PHP: Hypertext Preprocessor
php4 4.4.9 lang www PHP: Hypertext Preprocessor
php5 5.3.28 lang www PHP: Hypertext Preprocessor
php52 5.2.17 lang www PHP: Hypertext Preprocessor
php53 5.3.28 lang www PHP: Hypertext Preprocessor
php54 5.4.31 lang www PHP: Hypertext Preprocessor
php55 5.5.15 lang www PHP: Hypertext Preprocessor
php56 5.6.0RC2 lang www PHP: Hypertext Preprocessor

(引用)3.1.7. port search||The MacPorts Project — Available Ports

 


AdMax Promotion

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。