MacPortで公開されているコンポーネントを検索する
MacPortからインストール可能なコンポーネント(Apache,MySQL,PHPなど)を調べ、
インストールする前にどのようなバージョンが提供されているのかを知るには、
Portコマンドを利用すると、結果をすべて表示したり、
必要なものだけにフィルタリングしたりすることができます。
ここではportコマンドを利用してコンポーネントの検索を行う方法をご紹介します。
概要
MacPortで公開されているコンポーネントを検索する
MacPortで公開されているコンポーネントを調べるにはWebで検索して確認するか、
ターミナルコマンドを利用してPortコマンドで検索する方法が利用できます。
Apache、MySQL、PHPに関しては以下で個別にご紹介しています。
Webページ(The MacPorts Project)で確認
MacPortのサイトを開きサイドメニューの「Available Ports」をクリックします。
ここからMacPortを介してインストールすることができる
コンポートネントの検索が行えます。
この方法ならMacPort未導入の端末などからでも、
簡単に確認することができ便利な反面、
数の多いコンポーネントから必要なもの(バージョン)を検索するのが、
少し面倒な部分もあります。
各検索の例については以下でご紹介しています。
ターミナル(Portコマンド)で確認
ターミナルコマンドでMacPortコンポーネントを検索するには、
既にMacPortを導入済みである必要があります。
MacPort(本体)のインストールがまだの場合は導入を行います。
※MacPortコマンド「path」への環境変数はPATHは自動的に設定されます。
ターミナルウィンドウを開き、portコマンドを利用して、
コンポーネントを検索します。
ここでは数の多いphpコンポーネントの例でご紹介します。
全リスト表示(port list)
port list
このコマンドでは、MacPortで利用可能な全コンポーネント名が一覧で確認できます。
そのままではかなりの数が表示されますが、grepなどで絞り込むこともできます。
以下では、結果にphpが含まれるものを絞り込んでいます。
port list | grep php
以下のようにphpから始まるコンポーネントが確認できます。
中略していますが、数が多すぎて探すのが大変な反面、
コンポーネント名の命名規則などが分からないような、
新しいコンポーネントを検索する場合などに便利です。
グロブワイルドカード絞り込み(port search –name –glob)
port search --name --glob 'php*'
このコマンドでは名前を「phpから始まる」という条件で検索することができます。
listの時と同じような検索方法ですが、
この場合、複数行に渡って補足情報などが付加されて表示されます。
中略していますが、searchでは最後に該当件数が表示されます。
Found 739 ports.
グロブワイルドカード絞り込み1行表示(port search –name –line –glob)
port search --name --line --glob 'php*'
「–line」を付加して検索すると1行表示として結果を得ることができます。
ターミナルウィンドウ幅を広げて折り返しを無くすと見やすくなります。
結果の表示がすっきりします。
13
それでもやはり「php*」の条件指定ではやはり数が多すぎて、
目的のコンポーネントが絞り切れません。
正規表現絞り込み(port search –name –line –regex)
port search --name --line --regex '^php\d*$'
そこでこのコマンド「–regex」です。
検索条件に正規表現を利用することができます。
「’^php\d*$’」では、
「^php」はphpで始まり、
「\d*$」は任意の数字で終わる(数字が無くても可:0回以上)が、
検索条件になっています。
^ 文字列または行の先頭で一致する必要があります。
$ 文字列の末尾で一致するか、行または文字列の末尾にある \n の前で一致する必要があります。
* 直前の要素と 0 回以上一致します。
\d 10 進数字と一致します。
その絞り込み結果が以下のようになっています。
いかがでしょうか、ほぼ目的の検索結果に近づいたのではないでしょうか。
しかし最初から「この正規表現で絞り込める」という事が分かっているわけではなく、
前述の大量のリストの中から、
利用したいコンポーネント名と、
表示したくないコンポーネント名の命名規則から判断して、
それに合った正規表現を組み立てて表示するということになります。
参考
以下の通りそのまま書かれています。
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
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: