Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第7章 コンパイラーおよびツール

pcp がバージョン 3.11.8 にリベース

Performance Co-Pilot アプリケーション(PCP)がアップストリームバージョン 3.11.81 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。主な機能強化は、次のとおりです。
  • パフォーマンスメトリック値を influxdb データベースにエクスポートできるように、新しいクライアントツール pcp2influxdb が追加されました。
  • mpstat および pidstat の値を過去に解析できるように、新しいクライアントツール pcp-mpstat および pcp-pidstat が追加されました。
  • デバイスマッパー、Ceph デバイス、cpusched cgroups、プロセッサーごとのソフト IRQ、buddyinfozoneinfo、共有メモリー、libvirt、同じページ-sharing、lioRedis、および Docker に新しいパフォーマンスメトリクスが追加されました。
  • さまざまな PCP 分析ツールで、複数のサブシステムのパフォーマンスメトリクスが追加で利用できるようになりました。(BZ#1423020)

systemtap がバージョン 3.1 にリベース

systemtap パッケージがアップストリームバージョン 3.1 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
  • システムコールのプローブは、debuginfo 情報に基づくデフォルトではなくなりました。
  • Python 関数のプロービングのサポートが追加されました。
  • Java 関数パラメーターへのアクセスがより均一化されました。
  • 統計集計変数のパフォーマンスが改善されました。
  • 新しい統計演算子 @variance が追加されました。
  • ユーザー空間の値を取得および設定するためのオプションが追加されました。
  • サンプルで NFS の監視が改善されました。
スクリプトと tapset の互換性修正(BZ#1398393, BZ#1416204, BZ#1433391)

valgrind がバージョン 3.12 にリベース

valgrind パッケージがアップストリームバージョン 3.12 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
  • スタックポインターの下にあるメモリーアクセスを無視する memcheck ツールに新しいオプション --ignore-range-below-sp が追加されました。これは、現在非推奨となったオプション --workaround-gcc296-bugs=yes の一般的な代替手段です。
  • --gen-suppressions=yes オプションによって生成された抑制エントリーの呼び出し元の最大数は、--num-callers オプションで指定された値と等しくなりました。
  • AMD64 および Intel 64 アーキテクチャー上の memcheck ツールなど、最も一般的なユースケースのコードブロックをインストルメント化するコストが削減されました。
  • 8KB 以下の命令アドレス範囲を大量に破棄するデバッグプログラムでは、パフォーマンスが改善されました。
  • IBM Power 9 (ISA 3.0) アーキテクチャーのサポートが追加されました。
  • AMD FMA4 命令の部分的なサポートが追加されました。
  • 64 ビット ARM アーキテクチャーバージョン 8 での暗号化および CRC 命令のサポートが追加されました。(BZ#1391217)

新規パッケージ: unitsofmeasurement

unitsofmeasurement パッケージを使用すると、Java コードで測定単位を表現できます。新しい測定単位用の API により、物理量の処理が容易になり、エラーが発生しにくくなりました。パッケージの API は、メモリーとリソースを効率的に使用します。(BZ#1422263)

HTTP クライアントの SSL/TLS 証明書の検証が、Python 標準ライブラリーでデフォルトで有効になりました。

Python 標準ライブラリーでは、デフォルトで SSL/TLS 証明書を検証するために、HTTP クライアントのデフォルトのグローバル設定が変更されました。ファイルベースの設定を使用するお客様には影響しません。詳細は、https://access.redhat.com/articles/2039753 を参照してください。(BZ#1219110)

%gemspec_add_dep および %gemspec_remove_dep のサポートが追加されました。

今回の更新で、%gemspec_add_dep マクロおよび %gemspec_remove_dep マクロのサポートが追加されました。このようなマクロを使用すると、rubygem-* パッケージの依存関係を簡単に調整できます。さらに、現在のすべてのマクロを拡張し、リリース前のバージョンのパッケージへの対応を改善しました。(BZ#1397390)

ipmitool がバージョン 1.8.18 にリベース

ipmitool パッケージがアップストリームバージョン 1.8.18 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
  • PEF ユーザーインターフェイスの設計が変更されました。
  • IP バージョン 6 のローカルエリアネットワークパラメーターに新しいサブコマンド lan6 が追加されました。
  • VITA 固有のセンサータイプおよびイベントのサポートが追加されました。
  • HMAC_MD5 および HMAC_SHA256 の暗号化のサポートが追加されました。
  • PICMG 拡張機能 5.x のチェックのサポートが追加されました。
  • 新しい通信インターフェイスとしての USB メディアのサポートが追加されました。
  • USB ドライバーは、GNU Linux システム (BZ#1398658) でデフォルトで有効になっています。

IBM Power のリトルエンディアンバリアント用に更新された lshw

マシンのハードウェア設定の詳細を提供する lshw パッケージが、IBM Power System のリトルエンディアンバリアント向けに更新されました。(BZ#1368704)

perf が Intel Xeon v5 でアンコアイベントに対応

この更新により、Linux (perf) のパフォーマンス分析ツールが更新され、Intel Xeon v5 サーバー CPU でのアンコアイベントがサポートされるようになりました。これらのイベントは、上級ユーザーに追加のパフォーマンス監視情報を提供します。(BZ#1355919)

dmidecode が更新される

dmidecode パッケージが新しいバージョンに更新され、バグ修正およびハードウェア有効化の改善がいくつか行われました。(BZ#1385884)

iSCSI が targetcliを使用した ALUA 操作の設定に対応

イニシエーターからターゲットへのパスが複数ある場合は、非対称論理ユニットアクセス (ALUA) を使用して、パスを不均一に優先的に使用する方法のプリファレンスを設定することができます。Linux-IO (LIO) カーネルターゲットは、常にこの機能をサポートしてきました。今回の更新で、targetcli コマンドシェルを使用して ALUA 操作を設定できるようになりました。(BZ#1243410)

jansson がバージョン 2.10 にリベース

jansson ライブラリーがバージョン 2.10 に更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。特に、clevistang、および jose アプリケーションに対応するためにインターフェイスが追加されました。(BZ#1389805)

egrep および fgrep用の新しい互換性環境変数

以前の grep リベースでは、egrep コマンドと fgrep コマンドは、それぞれ grep -E コマンドと grep -F に置き換えられました。ps コマンドのアウトアップットに grep のみが表示されたため、この変更はお客様のスクリプトに影響を与える可能性があります。このような問題を防ぐために、この更新により、新しい互換性環境変数 GREP_LEGACY_EGREP_FGREP_PS が導入されました。ps 出力に egrepfgrep を表示し続けるには、変数を 1 に設定します。
GREP_LEGACY_EGREP_FGREP_PS=1
(BZ#1297441)

lastcomm--pid オプションをサポートするようになりました。

lastcomm コマンドが --pid オプションをサポートするようになりました。このオプションは、カーネルでサポートされている場合、各レコードのプロセス ID (PID) と親プロセス ID (PPID) を表示します。(BZ#1255183)

新規パッケージ: perl-Perl4-CoreLibs

新しいperl-Perl4-CoreLibs パッケージが、Red Hat Enterprise Linux 7 のベースチャンネルで利用できるようになりました。このパッケージには、Perl 4 で利用可能であったけれども、Red Hat Enterprise Linux 7 で配布されている Perl 5.16 で削除されたライブラリーが含まれています。以前のリリースでは、これらのライブラリーは、Optional チャネルを介して Perl サブパッケージで提供されていました。(BZ#1366724)

アーカイブから抽出する際に tar がディレクトリーへのシンボリックリンクに従うようになりました。

今回の更新で、--keep-directory-symlink オプションが tar コマンドに追加されました。このオプションは、抽出しようとしているディレクトリーと同じ名前のシンボリックリンクが発生した場合の tar の動作を変更します。デフォルトでは、tar は最初にシンボリックリンクを削除してから、ディレクトリーの抽出を続行します。--keep-directory-symlink オプションはこの動作を無効にし、アーカイブから抽出するときにディレクトリーへのシンボリックリンクに従うように tar に指示します。(BZ#1350640)

IO::Socket::SSL Perl モジュールが TLS バージョンの制限をサポート

Net:SSLeay Perl モジュールが、セキュリティーを強化するために TLS プロトコルバージョン 1.1 または 1.2 の明示的な仕様をサポートするように更新され、IO::Socket::SSL モジュールがそれに応じて更新されました。新しい IO::Socket::SSL オブジェクトが作成されると、SSL_version オプションをそれぞれ TLSv1_1 または TLS v1_2 に設定して、TLS バージョンを 1.1 または 1. 2 に制限できるようになりました。または、TLSv11 および TLSv12 を使用することもできます。この値では大文字と小文字が区別されることに注意してください。(BZ#1335035)

Net:SSLeay Perl モジュールが TLS バージョンの制限をサポート

Net:SSLeay Perl モジュールが、TLS プロトコルバージョンの明示的な仕様をサポートするように更新されました。これは、セキュリティーを強化するために使用できます。TLS のバージョンを 1.1 または 1.2 に制限するには、Net::SSLeay::ssl_version 変数をそれぞれ 11 または 12 に設定します。(BZ#1335028)

wget が TLS プロトコルバージョンの仕様をサポートするようになりました

以前は、wget ユーティリティーは、リモートサーバーに接続する際に、デフォルトで最も高い TLS プロトコルバージョン 1.2 を使用していました。今回の更新で、wget が拡張され、wget コマンドに --secure-protocol=TLSv1_ 1 または --secure-protocol=TLSv1 _2 コマンドラインオプションを追加して、TLS プロトコル マイナーバージョンを明示的に選択できるようになりました。(BZ#1439811)

tcpdump がバージョン 4.9.0 にリベース

tcpdump パッケージがアップストリームバージョン 4.9.0 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。以下は、主な変更点です。
  • 多くのセキュリティー上の脆弱性が修正されました。
  • 一般的なネットワークプロトコルの分析において、多くの改善が行われました。
  • デフォルトの snaplen 機能が 262144 バイトに増えました。
  • キャプチャーバッファーが 4 MiB に拡大されました (BZ#1422473)

tcpdump のキャプチャー方向を設定するオプションが -P から -Qに変更になりました。

以前は、Red Hat Enterprise Linux の tcpdump ユーティリティーは -P オプションを使用してキャプチャーの方向を設定していましたが、アップストリームバージョンでは -Q を使用していました。-Q オプションが実装され、推奨されています。-P オプションは、以前の機能を -Q のエイリアスとして保持しますが、警告が表示されます。(BZ#1292056)

OpenJDK が 64 ビット ARM アーキテクチャーで SystemTap に対応

OpenJDK プラットフォームは、64 ビット ARM アーキテクチャー上の SystemTap インストルメンテーションツールを使用したイントロスペクションをサポートするようになりました。(BZ#1373986)

sos がバージョン 3.4 にリベース

sos パッケージがアップストリームバージョン 3.4 に更新され、以下のような機能拡張、新機能、バグ修正が数多く追加されました。
  • ceph_ansiblecollectdcryptodracutgnocchijarsnfsganeshanodejsnpmopenstack_ansibleopenstack_instackopenstack_manila、salt、salt master、および storageconsoleに新しいプラグインが追加されました。
  • API プラグインの機能強化
  • 国際化に関する更新
  • ネットワーク名に一重引用符 'が含まれている場合に、ネットワークプラグインがクラッシュしなくなりました。
  • foreman-debug プラグインが、収集された foreman-debug 情報が不完全になるのを防ぐために、より長いタイムアウトで実行されるようになりました。
  • 特定のプライベート SSL 証明書ファイルが収集されなくなりました。(BZ#1414879)

targetd がバージョン 0.8.6 にリベース

targetd パッケージがアップストリームバージョン 0.8.6 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。特に、targetd サービスは Python 2 または Python 3 のランタイムで実行され、次の API が追加されました: initiator_listaccess_group_listaccess_group_createaccess_group_destroyaccess_group_init_addaccess_group_init_delaccess_group_map_listaccess_group_map_create、および access_group_map_destroy
以下は、主なバグ修正です。
  • Targetd が JSON-RPC 応答バージョン 2.0 に準拠するようになりました。
  • export_create API を使用して、同じ LUN を複数のイニシエーターにマッピングできるようになりました。
  • targetd は、起動時に SSL 証明書が存在するようになりました。(BZ#1162381)

shim がバージョン 12-1 にリベース

今回の更新で、shim パッケージがアップストリームバージョン 12-1 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、32 ビット UEFI ファームウェアおよび Extensible Firmware Interface (EFI) ユーティリティーのサポートが追加されたことです。(BZ#1310766)

rubygem-abrt がバージョン 0.3.0 にリベース

rubygem-abrt パッケージがバージョン 0.3.0 にリベースされ、以前のバージョンに比べていくつかのバグ修正と機能拡張が提供されています。以下に例を示します。
  • Ruby ABRT ハンドラーは、自動匿名マイクロレポートである uReports をサポートするようになりました。uReports を有効にすると、開発者はアプリケーションの問題について速やかに通知され、バグを修正し、問題を迅速に解決できます。
  • 以前は、Ruby アプリケーションが Bundler を使用してその依存関係を管理し、エラーが発生した場合に、Ruby ABRT ハンドラーのコンポーネントを読み込むのに正しくないロジックを使用していました。その結果、適切な ABRT レポートではなく、予期しない LoadReport エラーが報告されていました。読み込みロジックが修正され、Ruby アプリケーションエラーが正しく処理され、ABRT を使用して報告されるようになりました。(BZ#1418750)

新規パッケージ: http-parser

新しい http-parser パッケージには、HTTP メッセージを解析するユーティリティーが含まれます。要求と応答の両方を解析します。パーサーは、HTTP パフォーマンスを管理するアプリケーションで使用されるように設計されています。syscall や割り当ては行われず、データはバッファーリングされず、いつでも中断される可能性があります。アーキテクチャーによっては、メッセージストリームごとに約 40 バイトのデータしか必要ありません。(BZ#1393819)

すべてのデフォルトの POSIX ミューテックスに対する Intel および IBM POWER のトランザクションメモリーのサポート

デフォルトの POSIX ミューテックスは、Intel および IBM POWER のトランザクションメモリーサポートに透過的に置き換えることができます。これにより、ロック取得コストが大幅に削減されます。すべてのデフォルトの POSIX ミューテックスに対してトランザクションメモリーサポートを有効にするには、RHEL_GLIBC_TUNABLES=glibc.elision.enable 環境変数を 1 に設定します。その結果、一部のアプリケーションのパフォーマンスを改善できます。
開発者は、プロファイリングを使用して、この機能を有効にするとアプリケーションのパフォーマンスが向上するかどうかを判断することをお勧めします。(BZ#841653, BZ#731835)

glibc がグループマージをサポートするようになりました。

異なるネームサービスモジュールからグループメンバーをマージする機能が glibc に追加されました。その結果、集中型のユーザーアクセス制御と、複数のホストにわたるグループメンバーシップの管理が容易になりました。(BZ#1298975)

glibc が、IBM POWER9 アーキテクチャーで最適化された文字列比較機能に対応

glibc ライブラリーの文字列比較関数 strcmp および strncmp は、IBM POWER9 アーキテクチャー向けに最適化されています。(BZ#1320947)

Intel SSE、AVX、および AVX512 の機能を使用して動的に読み込まれたライブラリーのパフォーマンスが改善されました。

Intel SSE、AVX、および AVX512 の機能を使用するライブラリーの動的ライブラリー読み込みが更新されました。その結果、このライブラリーの読み込み時のパフォーマンスが改善されました。さらに、LD_AUDIT スタイルの監査に対応するようになりました。(BZ#1421155)

elfutils がバージョン 0.168 にリベース

futils パッケージがアップストリームバージョン 0.168 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。
  • eu-readelf ユーティリティーのオプション --symbols で、シンボルを表示するセクションを選択できるようになりました。
  • ELF/DWARF 文字列テーブルを作成する新しい関数が libdw ライブラリーに追加されました。
  • DW_UNDEFINED_PL1 定数が DW_UNDEFINED_PLI に変更されました。以前の名前は引き続き使用できます。
  • libelf ライブラリーの gelf_newehdr 関数および gelf_newphdr 関数の戻り値のタイプが、他の libelf 実装とのソースの互換性のために void* に変更されました。この変更により、Red Hat Enterprise Linux でサポートされているすべてのプラットフォームでバイナリー互換性が維持されます。(BZ#1400302)

bison がバージョン 3.0.4 にリベース

bison パッケージがアップストリームバージョン 3.0.4 にアップグレードされ、バグ修正および機能拡張が数多く追加されました。
  • キャレットエラーによる永続的な診断が修正されました。
  • 指定した警告をエラーとして扱うために、-Werror=CATEGORY オプションが追加されました。警告は、-W オプションを使用して明示的にアクティブ化する必要はありません。
  • 優先ルールと役に立たないルールの処理に多くの改善が加えられました。
また、以下の変更により、後方互換性がなくなりました。
  • YYFAILYYLEX_PARAMYYPARSE_PARAMyystypeyyltypeの機能が非推奨になりました。
  • アクションの最後に欠落しているセミコロンが自動的に追加されなくなりました。
  • autoconf ユーティリティーバージョン 2.69 以前で Bison 拡張機能を使用するには、オプション -Wno-yacc(AM_) YFLAGS に渡します。(BZ#1306000)

システムのデフォルトの CA バンドルは、コンパイル済みデフォルト設定または Muttの設定でデフォルトとして設定されています。

以前は、TLS/SSL 経由で新しいシステムに接続する場合、Mutt メールクライアントはユーザーが証明書を保存する必要がありました。今回の更新で、システム認証局(CA)バンドルがデフォルトで Mutt に設定されます。その結果、Mutt は、証明書の承認または拒否を要求せずに、SSL/TLS 経由で、有効な証明書を持つホストに接続するようになりました。(BZ#1388511)

objdump 混合リストの速度

以前は、DWARF デバッグ情報を解析してソースコードを見つけるための BFD ライブラリーは非常に低速でした。BFD ライブラリーは、objdump ツールによって使用されます。その結果、ソースコードと逆アセンブリーの混合リストを作成すると、objdump が大幅に遅くなりました。BFD ライブラリーのパフォーマンスが改善されました。その結果、objdump を使用した混合リストの作成が速くなります。(BZ#1366052)

fjes ドライバーから人間が読める形式の出力に対する ethtool サポート

ethtool ユーティリティーが拡張され、fjes ドライバーから、人間が読める形式のレジスターダンプ出力が提供されるようになりました。これにより、ethtool のユーザーは、Fujitsu Extended Socket Network Device ドライバーをより詳細に検査できます。(BZ#1402701)

ecj がバージョン 4.5.2 にリベース

ecj パッケージがアップストリームバージョン 4.5.2 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、バージョン 8 で Java 言語に追加された機能のサポートが完了したことです。その結果、Java 8 機能を使用した Java コードのコンパイルに失敗することがなくなりました。これには、Java ランタイム環境が提供するシステムクラスなど、Java 8 の機能を使用していないコードが、これらの機能を使用しているコードを参照しているケースも含まれます。(BZ#1379855)

rhino がバージョン 1.7R5 にリベース

rhino パッケージがアップストリームバージョン 1.7R5 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。注目すべきは、以前からあった正規表現の解析中に無限ループになる問題が修正されたことです。以前このバグに遭遇した Rhino を使用するアプリケーションが正しく機能するようになりました。(BZ#1350331)

scap-security-guide および oscap-docker がコンテナーをサポート

ユーザーは、oscap-docker ユーティリティーおよび SCAP セキュリティーガイド を使用して、誤検出の結果に遭遇することなく、コンテナーまたはコンテナーイメージのコンプライアンスを評価できるようになりました。パーティショニングなど、コンテナーコンテキストでは意味のないテストが not applicable 値に設定されていると、選択したセキュリティーポリシーでコンテナーをスキャンできるようになりました。(BZ#1404392)