Solaris10でfioがコンパイルできない


Solaris10でfioをコンパイルしようとしたら、configureでエラーがでた。

./configure: 構文エラー 行 985: `GTK_CFLAGS=$' unexpected
Makefile:10: recipe for target 'config-host.mak' failed

該当行を見てみる・・・

GTK_CFLAGS=$(pkg-config --cflags gtk+-2.0 gthread-2.0)

なんで「GTK_CFLAGS=`pkg-config –cflags gtk+-2.0 gthread-2.0`」という表記じゃないんだろ?と不思議に思いつつ、とりあえず書き換え
再実行すると、他にも同様の記述が・・・

もしや、と思って、ヘッダを見てみると「#!/bin/sh」

おいこら!
bash専用命令なのに、shって書くなよ!

というわけで、ヘッダ部分だけ書き換えて対処完了

VMware toolsの配布場所:Windows&Linux&Solaris


2022/11/15修正

最近のVMware Toolsのサポート状況についてまとめ直した

Windows編

Windows Server 2008R2 SP1~Windows Server 2022 / Windows 7 SP1~Windows 11 12.1.0(随時更新中,最新ESXi同梱版?)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS1210&productId=742
 https://packages.vmware.com/tools/releases/12.1.0/windows/

Windows Server 2008 SP2 / Vista SP2用 11.0.6(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS1106&productId=742
 https://packages.vmware.com/tools/releases/11.0.6/windows/

Linux編

RHEL7以降はopen-vm-toolsを使う
 VMware support for open-vm-tools (2073803)

RHEL6/CentOS6用 10.3.25(随時更新中,最新ESXi同梱版?)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10325&productId=974
 https://packages.vmware.com/tools/releases/10.3.25/rhel6/

RHEL5/CentOS5用 10.3.22(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/en/downloads/details?downloadGroup=VMTOOLS10322&productId=1072
 https://packages.vmware.com/tools/releases/10.3.22/rhel5/
 なお、RHEL5はSSL1.2に非対応のため、2022年11月現在RHEL5サーバ上からhttpsアクセスがほぼ不可能になっていることに注意

Ubuntu 14.04以降はopen-vm-toolsを使う
 VMware support for open-vm-tools (2073803)

Ubuntu 10.04/11.04/11.10/12.04用 10.3.25(随時更新中)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10325&productId=974
 https://packages.vmware.com/tools/releases/10.3.25/ubuntu/dists/
 なお、SSL1.2に非対応であるなら2022年11月現在サーバ上からhttpsアクセスがほぼ不可能になっていることに注意
 (Ubuntuの対応について調べていない)

Solaris x86編

Solaris 10 x86用 10.3.10(最終)
 ReleaseNote:
 https://customerconnect.vmware.com/ja/downloads/details?downloadGroup=VMTOOLS10310&productId=742


↓は参考用の過去の記録

古いOSだとSSL1.2非対応のため、httpsアクセスができなくなっていることに注意のこと


VMware toolsのダウンロードURLを調べていたら、Linuxディストリビューションの一部では、yumコマンドでダウンロードできるようなレポジトリファイルも配布されているのを発見したのでメモ書き。

バージョンごとの配布場所:
 https://packages.vmware.com/tools/releases

VMwareにあるvmware-tools配布場所:「https://packages.vmware.com/tools/esx/latest/index.html

Linux向けvmware-toolsについて

Linux向けレポジトリのファイル置き場:

vSpehre 6.7向け: https://packages.vmware.com/tools/esx/6.7latest/repos/
vSphere 7.0向け: https://packages.vmware.com/tools/esx/7.0/repos

レポジトリファイルは、上記4つの他に、SLES11.0, SLES11.1, SLES11.2, SLES11.3, Ubuntu10.04, Ubuntu11.10, Ubuntu12.04が公開されている。

RHEL/CentOSのyumコマンドでインストールする場合、
必要なドライバを一通りインストールする「yum install vmware-tools-esx-nox 」でインストールされるパッケージ

vmware-tools-esx-nox         
vmware-tools-core            
vmware-tools-foundation      
vmware-tools-guestlib        
vmware-tools-libraries-nox   
vmware-tools-plugins-autoUpgrade
vmware-tools-plugins-deployPkg
vmware-tools-plugins-guestInfo
vmware-tools-plugins-hgfsServer
vmware-tools-plugins-powerOps
vmware-tools-plugins-timeSync
vmware-tools-plugins-vix     
vmware-tools-plugins-vmbackup
vmware-tools-services

最小限ってことで「yum install vmware-tools-thinprint」でインストールされるパッケージ

vmware-tools-thinprint
vmware-tools-core
vmware-tools-foundation
vmware-tools-guestlib
vmware-tools-libraries-nox
vmware-tools-services

+追加でOSパッケージがいくつか
vmxnet3,vmw_pvscsi,vmware_balloonがインストールされるけど、vmware-tools-esx-noxでインストールした方がいい。

X-Windowsドライバを含めたインストールを行う「yum install vmware-tools-esx」でインストールされるパッケージ

vmware-tools-esx
vmware-tools-core         
vmware-tools-esx-nox      
vmware-tools-foundation   
vmware-tools-guestlib     
vmware-tools-libraries-nox
vmware-tools-libraries-x  
vmware-tools-plugins-autoUpgrade
vmware-tools-plugins-deployPkg
vmware-tools-plugins-desktopEvents
vmware-tools-plugins-guestInfo
vmware-tools-plugins-hgfsServer
vmware-tools-plugins-powerOps
vmware-tools-plugins-resolutionSet
vmware-tools-plugins-timeSync
vmware-tools-plugins-unity
vmware-tools-plugins-vix
vmware-tools-plugins-vmbackup
vmware-tools-services
vmware-tools-user

+追加でOSパッケージがいくつか

RHEL7/CentOS7など最近のLinuxでは、open-vm-toolsでのサポートになっているため、上記のモノは使用しない。

open-vm-tools に対する VMware のサポートについて (2074713)(英語の原文:VMware support of open-vm-tools (2073803))

具体的には以下のOSが対象となる。
・Fedora 19 and later releases
・Debian 7.x and later releases
・openSUSE 11.x and later releases
・Recent Ubuntu releases (12.04 LTS, 13.10 and later)
・Red Hat Enterprise Linux 7.0 and later releases
・SUSE Linux Enterprise 12 – available Q4 2014

RHEL5向けのvmware toolsの最終版は VMware Tools 10.3.22
また、RHEL5/CentOS5はTLS1.2に対応していない(TLS1.0/1.1のみ)ため、最近のWebサイトからwget/curlおよびyumコマンドでのアクセスができないことに注意
ISOファイルは Download Product:VMware Tools 10.3.22 から入手できる


Windows向けvmware-toolsについて

Windows版vmware-tools配布場所:https://packages.vmware.com/tools/esx/latest/windows/index.html

Windows Server 2008 SP2 / Windows Vista SP2の最終サポート: VMware Tools 11.0.6 (ダウンロードURL VMware Tools 11.0.6)

VMware tools 12.0.0以降からネットワークアダプタ VMXNet2(拡張)が使えなくなりました。いまだに使っている場合はVMXNet3に変更する必要がある(VMwware Tools 12.0.5リリースノートより)


Solaris x86向けvmware-toolsについて

Solaris x86をインストールした時に、VMware-toolsを探したのでメモ書きとして追加

公式文書としては「Installing and upgrading the latest version of VMware Tools on existing hosts (2129825)」が出てくるんだけど、Solaris用のVMware-toolsがどこから入手できるのかMy VMwareからダウンロードできるよ、しか書いてない。

[Product Download]-[VMware vSphere]で「Drivers&Tools」を選択し、「VMware Tools」のツリーを開く

いろいろ表示されている中の「VMware Tools 11.0.6」か「VMware Tools 11.1.0」を選択

するとリンク先には「Solaris用はVMware Tools 10.3.10が最後」と誘導されているので、そのリンクを飛ぶと、「VMware Tools packages for Solaris and OS X」がダウンロードできる。

これを展開して、ESXiの /usr/lib/vmware/isoimages に配置する。

といってもこれは /productLocker/vmtools/ へのシンボリックリンクになっている。

この「/productLocker」をさす先は、ESXiの設定でUserVars.ProductLockerLocation を使って指定する。

指定したディレクトリ内に「vmtools」というディレクトリを作成し、その中にisoイメージなどを展開しておくと、これを使ってVMware toolsのインストールをすることができるようになる。

CentOS7が出たのでRC版から正式版にアップデートしてみた



CentOS7がリリースされたので、CentOS7 RC版でインストールしたマシンを、正式版にできないかやってみた。
 ・CentOS7のリリースのアナウンス:[CentOS-announce] Release for CentOS-7 on x86_64
 ・CentOS7のリリースノート:CentOS 7.0.1406 Release Notes

とりあえず、centos-releaseをアップデートすればいいのかなぁ、とやってみた。
試した時点ではkddlabsにはまだ無かったので、iijからファイルを持ってきた。

[root@cent7rc]# wget http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/Packages/centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm
--2014-07-08 09:41:10--  http://ftp.iij.ad.jp/pub/linux/centos/7/os/x86_64/Packages/centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm
ftp.iij.ad.jp (ftp.iij.ad.jp) をDNSに問いあわせています... 202.232.140.170, 2001:240:bb8f:200::1:170
ftp.iij.ad.jp (ftp.iij.ad.jp)|202.232.140.170|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 20100 (20K) [application/x-rpm]
`centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm' に保存中

100%[======================================>] 20,100      --.-K/s 時間 0.01s

2014-07-08 09:41:11 (1.47 MB/s) - `centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm' へ保存完了 [20100/20100]

[root@cent7rc ~]# rpm -Uvh centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm
警告: centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:centos-release-7-0.1406.el7.cento################################# [ 50%]
エラー: アーカイブの伸長に失敗: ファイル /usr/share/doc/redhat-release: cpio: rename失敗 - ディレクトリです
エラー: centos-release-7-0.1406.el7.centos.2.3.x86_64: インストール 失敗
エラー: centos-release-7-0.el7.0.140617.3.x86_64: 削除 スキップした
[root@cent7rc ~]#

失敗した。

が・・・/etc/yum.repos.d/には、さっきまで無かったファイル群が・・・

[root@cent7rc ~]# ls -l /etc/yum.repos.d/
合計 16
-rw-r--r--. 1 root root 1612  7月  4 20:00 CentOS-Base.repo
-rw-r--r--. 1 root root  640  7月  4 20:00 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 1331  7月  4 20:00 CentOS-Sources.repo
-rw-r--r--. 1 root root  156  7月  4 20:00 CentOS-Vault.repo
[root@cent7rc]#

では、ということで「yum update」

[root@cent7rc ~]# yum update
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ NetworkManager.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7 を 更新
---> パッケージ NetworkManager.x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0 を アップデート
---> パッケージ NetworkManager-glib.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7 を 更新
---> パッケージ NetworkManager-glib.x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0 を アップデート
---> パッケージ NetworkManager-tui.x86_64 1:0.9.9.1-13.git20140326.4dba720.el7  を 更新
---> パッケージ NetworkManager-tui.x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0 を アップデート
---> パッケージ anaconda.x86_64 0:19.31.79-1.el7.centos.3 を 更新
---> パッケージ anaconda.x86_64 0:19.31.79-1.el7.centos.4 を アップデート
---> パッケージ anaconda-widgets.x86_64 0:19.31.79-1.el7.centos.3 を 更新
---> パッケージ anaconda-widgets.x86_64 0:19.31.79-1.el7.centos.4 を アップデー ト
---> パッケージ centos-logos.noarch 0:70.0.5-1.el7.centos を 更新
---> パッケージ centos-logos.noarch 0:70.0.6-1.el7.centos を アップデート
---> パッケージ centos-release.x86_64 0:7-0.el7.0.140617.3 を 更新
---> パッケージ centos-release.x86_64 0:7-0.1406.el7.centos.2.3 を アップデート
---> パッケージ evolution.x86_64 0:3.8.5-21.el7 を 更新
---> パッケージ evolution.x86_64 0:3.8.5-22.el7_0.1 を アップデート
---> パッケージ evolution-data-server.x86_64 0:3.8.5-23.el7 を 更新
---> パッケージ evolution-data-server.x86_64 0:3.8.5-24.el7_0 を アップデート
---> パッケージ evolution-help.noarch 0:3.8.5-21.el7 を 更新
---> パッケージ evolution-help.noarch 0:3.8.5-22.el7_0.1 を アップデート
---> パッケージ firefox.x86_64 0:24.5.0-1.el7.centos を 更新
---> パッケージ firefox.x86_64 0:24.6.0-1.el7.centos を アップデート
---> パッケージ fprintd.x86_64 0:0.5.0-3.el7 を 更新
---> パッケージ fprintd.x86_64 0:0.5.0-4.0.el7_0 を アップデート
---> パッケージ fprintd-pam.x86_64 0:0.5.0-3.el7 を 更新
---> パッケージ fprintd-pam.x86_64 0:0.5.0-4.0.el7_0 を アップデート
---> パッケージ gdm.x86_64 1:3.8.4-27.el7 を 更新
---> パッケージ gdm.x86_64 1:3.8.4-28.el7_0.1 を アップデート
---> パッケージ gdm-libs.x86_64 1:3.8.4-27.el7 を 更新
---> パッケージ gdm-libs.x86_64 1:3.8.4-28.el7_0.1 を アップデート
---> パッケージ gnome-classic-session.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-classic-session.noarch 0:3.8.4-10.el7_0 を アップデート
---> パッケージ gnome-online-accounts.x86_64 0:3.8.5-8.el7 を 更新
---> パッケージ gnome-online-accounts.x86_64 0:3.8.5-9.el7_0.1 を アップデート
---> パッケージ gnome-settings-daemon.x86_64 0:3.8.6.1-9.el7 を 更新
---> パッケージ gnome-settings-daemon.x86_64 0:3.8.6.1-9.el7_0.1 を アップデート
---> パッケージ gnome-settings-daemon-updates.x86_64 0:3.8.6.1-9.el7 を 更新
---> パッケージ gnome-settings-daemon-updates.x86_64 0:3.8.6.1-9.el7_0.1 を アップデート
---> パッケージ gnome-shell.x86_64 0:3.8.4-31.el7 を 更新
---> パッケージ gnome-shell.x86_64 0:3.8.4-32.el7_0 を アップデート
---> パッケージ gnome-shell-extension-alternate-tab.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-shell-extension-alternate-tab.noarch 0:3.8.4-10.el7_0 を  アップデート
---> パッケージ gnome-shell-extension-apps-menu.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-shell-extension-apps-menu.noarch 0:3.8.4-10.el7_0 を アッ プデート
---> パッケージ gnome-shell-extension-common.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-shell-extension-common.noarch 0:3.8.4-10.el7_0 を アップデート
---> パッケージ gnome-shell-extension-launch-new-instance.noarch 0:3.8.4-9.el7  を 更新
---> パッケージ gnome-shell-extension-launch-new-instance.noarch 0:3.8.4-10.el7_0 を アップデート
---> パッケージ gnome-shell-extension-places-menu.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-shell-extension-places-menu.noarch 0:3.8.4-10.el7_0 を ア ップデート
---> パッケージ gnome-shell-extension-window-list.noarch 0:3.8.4-9.el7 を 更新
---> パッケージ gnome-shell-extension-window-list.noarch 0:3.8.4-10.el7_0 を ア ップデート
---> パッケージ gnutls.x86_64 0:3.1.18-8.el7 を 更新
---> パッケージ gnutls.x86_64 0:3.1.18-9.el7_0 を アップデート
---> パッケージ gnutls-dane.x86_64 0:3.1.18-8.el7 を 更新
---> パッケージ gnutls-dane.x86_64 0:3.1.18-9.el7_0 を アップデート
---> パッケージ gnutls-utils.x86_64 0:3.1.18-8.el7 を 更新
---> パッケージ gnutls-utils.x86_64 0:3.1.18-9.el7_0 を アップデート
---> パッケージ java-1.7.0-openjdk.x86_64 1:1.7.0.51-2.4.5.5.el7 を 更新
---> パッケージ java-1.7.0-openjdk.x86_64 1:1.7.0.55-2.4.7.2.el7_0 を アップデート
---> パッケージ java-1.7.0-openjdk-headless.x86_64 1:1.7.0.51-2.4.5.5.el7 を 更 新
---> パッケージ java-1.7.0-openjdk-headless.x86_64 1:1.7.0.55-2.4.7.2.el7_0 を  アップデート
---> パッケージ json-c.x86_64 0:0.11-3.el7 を 更新
---> パッケージ json-c.x86_64 0:0.11-4.el7_0 を アップデート
---> パッケージ kernel.x86_64 0:3.10.0-123.4.2.el7 を インストール
---> パッケージ kernel-tools.x86_64 0:3.10.0-123.el7 を 更新
---> パッケージ kernel-tools.x86_64 0:3.10.0-123.4.2.el7 を アップデート
---> パッケージ kernel-tools-libs.x86_64 0:3.10.0-123.el7 を 更新
---> パッケージ kernel-tools-libs.x86_64 0:3.10.0-123.4.2.el7 を アップデート
---> パッケージ kexec-tools.x86_64 0:2.0.4-32.el7 を 更新
---> パッケージ kexec-tools.x86_64 0:2.0.4-32.el7.centos.1 を アップデート
---> パッケージ kpatch.noarch 0:0.0-1.el7 を 更新
---> パッケージ kpatch.noarch 0:0.1.2-1.el7_0 を アップデート
---> パッケージ libcacard.x86_64 10:1.5.3-60.el7 を 更新
---> パッケージ libcacard.x86_64 10:1.5.3-60.el7_0_0.2 を アップデート
---> パッケージ libipa_hbac.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ libipa_hbac.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ libipa_hbac-python.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ libipa_hbac-python.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ libsmbclient.x86_64 0:4.1.1-31.el7 を 更新
---> パッケージ libsmbclient.x86_64 0:4.1.1-33.el7_0 を アップデート
---> パッケージ libsss_idmap.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ libsss_idmap.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ libtasn1.x86_64 0:3.3-3.el7 を 更新
---> パッケージ libtasn1.x86_64 0:3.3-5.el7_0 を アップデート
---> パッケージ libwbclient.x86_64 0:4.1.1-31.el7 を 更新
---> パッケージ libwbclient.x86_64 0:4.1.1-33.el7_0 を アップデート
---> パッケージ mariadb-libs.x86_64 1:5.5.35-3.el7 を 更新
---> パッケージ mariadb-libs.x86_64 1:5.5.37-1.el7_0 を アップデート
---> パッケージ microcode_ctl.x86_64 2:2.1-7.1.el7 を 更新
---> パッケージ microcode_ctl.x86_64 2:2.1-7.1.el7_0.1 を アップデート
---> パッケージ openssl.x86_64 1:1.0.1e-34.el7 を 更新
---> パッケージ openssl.x86_64 1:1.0.1e-34.el7_0.3 を アップデート
---> パッケージ openssl-libs.x86_64 1:1.0.1e-34.el7 を 更新
---> パッケージ openssl-libs.x86_64 1:1.0.1e-34.el7_0.3 を アップデート
---> パッケージ python-sssdconfig.noarch 0:1.11.2-65.el7 を 更新
---> パッケージ python-sssdconfig.noarch 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ qemu-guest-agent.x86_64 10:1.5.3-60.el7 を 更新
---> パッケージ qemu-guest-agent.x86_64 10:1.5.3-60.el7_0_0.2 を アップデート
---> パッケージ qemu-img.x86_64 10:1.5.3-60.el7 を 更新
---> パッケージ qemu-img.x86_64 10:1.5.3-60.el7_0_0.2 を アップデート
---> パッケージ qemu-kvm.x86_64 10:1.5.3-60.el7 を 更新
---> パッケージ qemu-kvm.x86_64 10:1.5.3-60.el7_0_0.2 を アップデート
---> パッケージ qemu-kvm-common.x86_64 10:1.5.3-60.el7 を 更新
---> パッケージ qemu-kvm-common.x86_64 10:1.5.3-60.el7_0_0.2 を アップデート
---> パッケージ samba-client.x86_64 0:4.1.1-31.el7 を 更新
---> パッケージ samba-client.x86_64 0:4.1.1-33.el7_0 を アップデート
---> パッケージ samba-common.x86_64 0:4.1.1-31.el7 を 更新
---> パッケージ samba-common.x86_64 0:4.1.1-33.el7_0 を アップデート
---> パッケージ samba-libs.x86_64 0:4.1.1-31.el7 を 更新
---> パッケージ samba-libs.x86_64 0:4.1.1-33.el7_0 を アップデート
---> パッケージ selinux-policy.noarch 0:3.12.1-153.el7 を 更新
---> パッケージ selinux-policy.noarch 0:3.12.1-153.el7_0.10 を アップデート
---> パッケージ selinux-policy-targeted.noarch 0:3.12.1-153.el7 を 更新
---> パッケージ selinux-policy-targeted.noarch 0:3.12.1-153.el7_0.10 を アップデート
---> パッケージ shim.x86_64 0:0.7-5.2.el7.centos.1 を 更新
---> パッケージ shim.x86_64 0:0.7-5.2.el7.centos.2 を アップデート
---> パッケージ sssd.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-ad.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-ad.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-client.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-client.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-common.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-common.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-common-pac.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-common-pac.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-ipa.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-ipa.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-krb5.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-krb5.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-krb5-common.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-krb5-common.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-ldap.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-ldap.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ sssd-proxy.x86_64 0:1.11.2-65.el7 を 更新
---> パッケージ sssd-proxy.x86_64 0:1.11.2-68.el7_0.5 を アップデート
---> パッケージ tuned.noarch 0:2.3.0-11.el7 を 更新
---> パッケージ tuned.noarch 0:2.3.0-11.el7_0.3 を アップデート
---> パッケージ tzdata.noarch 0:2014b-1.el7 を 更新
---> パッケージ tzdata.noarch 0:2014e-1.el7_0 を アップデート
---> パッケージ tzdata-java.noarch 0:2014b-1.el7 を 更新
---> パッケージ tzdata-java.noarch 0:2014e-1.el7_0 を アップデート
---> パッケージ webkitgtk3.x86_64 0:2.0.4-6.el7 を 更新
---> パッケージ webkitgtk3.x86_64 0:2.0.4-6.el7_0.1 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                         アーキテクチャー
                                        バージョン                リポジトリー
                                                                           容量
================================================================================
インストール中:
 kernel                          x86_64 3.10.0-123.4.2.el7        updates  29 M
更新します:
 NetworkManager                  x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0
                                                                  updates 1.4 M
 NetworkManager-glib             x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0
                                                                  updates 369 k
 NetworkManager-tui              x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0
                                                                  updates 190 k
 anaconda                        x86_64 19.31.79-1.el7.centos.4   base    2.2 M
 anaconda-widgets                x86_64 19.31.79-1.el7.centos.4   base    715 k
 centos-logos                    noarch 70.0.6-1.el7.centos       base     21 M
 centos-release                  x86_64 7-0.1406.el7.centos.2.3   base     20 k
 evolution                       x86_64 3.8.5-22.el7_0.1          updates 8.3 M
 evolution-data-server           x86_64 3.8.5-24.el7_0            updates 2.8 M
 evolution-help                  noarch 3.8.5-22.el7_0.1          updates 3.0 M
 firefox                         x86_64 24.6.0-1.el7.centos       updates  49 M
 fprintd                         x86_64 0.5.0-4.0.el7_0           updates  75 k
 fprintd-pam                     x86_64 0.5.0-4.0.el7_0           updates  15 k
 gdm                             x86_64 1:3.8.4-28.el7_0.1        updates 912 k
 gdm-libs                        x86_64 1:3.8.4-28.el7_0.1        updates  13 k
 gnome-classic-session           noarch 3.8.4-10.el7_0            updates  23 k
 gnome-online-accounts           x86_64 3.8.5-9.el7_0.1           updates 394 k
 gnome-settings-daemon           x86_64 3.8.6.1-9.el7_0.1         updates 1.2 M
 gnome-settings-daemon-updates   x86_64 3.8.6.1-9.el7_0.1         updates  53 k
 gnome-shell                     x86_64 3.8.4-32.el7_0            updates 1.2 M
 gnome-shell-extension-alternate-tab
                                 noarch 3.8.4-10.el7_0            updates  15 k
 gnome-shell-extension-apps-menu noarch 3.8.4-10.el7_0            updates  18 k
 gnome-shell-extension-common    noarch 3.8.4-10.el7_0            updates  91 k
 gnome-shell-extension-launch-new-instance
                                 noarch 3.8.4-10.el7_0            updates  14 k
 gnome-shell-extension-places-menu
                                 noarch 3.8.4-10.el7_0            updates  17 k
 gnome-shell-extension-window-list
                                 noarch 3.8.4-10.el7_0            updates  22 k
 gnutls                          x86_64 3.1.18-9.el7_0            updates 609 k
 gnutls-dane                     x86_64 3.1.18-9.el7_0            updates  51 k
 gnutls-utils                    x86_64 3.1.18-9.el7_0            updates 207 k
 java-1.7.0-openjdk              x86_64 1:1.7.0.55-2.4.7.2.el7_0  updates 209 k
 java-1.7.0-openjdk-headless     x86_64 1:1.7.0.55-2.4.7.2.el7_0  updates  25 M
 json-c                          x86_64 0.11-4.el7_0              updates  31 k
 kernel-tools                    x86_64 3.10.0-123.4.2.el7        updates 669 k
 kernel-tools-libs               x86_64 3.10.0-123.4.2.el7        updates 609 k
 kexec-tools                     x86_64 2.0.4-32.el7.centos.1     updates 320 k
 kpatch                          noarch 0.1.2-1.el7_0             updates 7.8 k
 libcacard                       x86_64 10:1.5.3-60.el7_0_0.2     updates 175 k
 libipa_hbac                     x86_64 1.11.2-68.el7_0.5         updates  73 k
 libipa_hbac-python              x86_64 1.11.2-68.el7_0.5         updates  67 k
 libsmbclient                    x86_64 4.1.1-33.el7_0            updates 114 k
 libsss_idmap                    x86_64 1.11.2-68.el7_0.5         updates  77 k
 libtasn1                        x86_64 3.3-5.el7_0               updates 316 k
 libwbclient                     x86_64 4.1.1-33.el7_0            updates  84 k
 mariadb-libs                    x86_64 1:5.5.37-1.el7_0          updates 752 k
 microcode_ctl                   x86_64 2:2.1-7.1.el7_0.1         updates 488 k
 openssl                         x86_64 1:1.0.1e-34.el7_0.3       updates 705 k
 openssl-libs                    x86_64 1:1.0.1e-34.el7_0.3       updates 939 k
 python-sssdconfig               noarch 1.11.2-68.el7_0.5         updates  97 k
 qemu-guest-agent                x86_64 10:1.5.3-60.el7_0_0.2     updates 240 k
 qemu-img                        x86_64 10:1.5.3-60.el7_0_0.2     updates 596 k
 qemu-kvm                        x86_64 10:1.5.3-60.el7_0_0.2     updates 1.8 M
 qemu-kvm-common                 x86_64 10:1.5.3-60.el7_0_0.2     updates 307 k
 samba-client                    x86_64 4.1.1-33.el7_0            updates 516 k
 samba-common                    x86_64 4.1.1-33.el7_0            updates 690 k
 samba-libs                      x86_64 4.1.1-33.el7_0            updates 4.3 M
 selinux-policy                  noarch 3.12.1-153.el7_0.10       updates 340 k
 selinux-policy-targeted         noarch 3.12.1-153.el7_0.10       updates 3.8 M
 shim                            x86_64 0.7-5.2.el7.centos.2      base    671 k
 sssd                            x86_64 1.11.2-68.el7_0.5         updates  66 k
 sssd-ad                         x86_64 1.11.2-68.el7_0.5         updates 169 k
 sssd-client                     x86_64 1.11.2-68.el7_0.5         updates 120 k
 sssd-common                     x86_64 1.11.2-68.el7_0.5         updates 1.2 M
 sssd-common-pac                 x86_64 1.11.2-68.el7_0.5         updates 121 k
 sssd-ipa                        x86_64 1.11.2-68.el7_0.5         updates 273 k
 sssd-krb5                       x86_64 1.11.2-68.el7_0.5         updates 110 k
 sssd-krb5-common                x86_64 1.11.2-68.el7_0.5         updates 203 k
 sssd-ldap                       x86_64 1.11.2-68.el7_0.5         updates 203 k
 sssd-proxy                      x86_64 1.11.2-68.el7_0.5         updates 117 k
 tuned                           noarch 2.3.0-11.el7_0.3          updates 145 k
 tzdata                          noarch 2014e-1.el7_0             updates 433 k
 tzdata-java                     noarch 2014e-1.el7_0             updates 148 k
 webkitgtk3                      x86_64 2.0.4-6.el7_0.1           updates  10 M

トランザクションの要約
================================================================================
インストール   1 パッケージ
更新          72 パッケージ

総ダウンロード容量: 180 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for base
No Presto metadata available for updates
警告: /var/cache/yum/x86_64/7/updates/packages/NetworkManager-glib-0.9.9.1-23.git20140326.4dba720.el7_0.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
NetworkManager-glib-0.9.9.1-23.git20140326.4dba720.el7_0.x86_64.rpm の公開鍵がインストールされていません
(1/73): NetworkManager-glib-0.9.9.1-23.git20140326.4dba720 | 369 kB   00:00
<略>
(73/73): webkitgtk3-2.0.4-6.el7_0.1.x86_64.rpm             |  10 MB   00:01
--------------------------------------------------------------------------------
合計                                               8.3 MB/s | 180 MB  00:21
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-0.el7.0.140617.3.x86_64 (@base/$releasever)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : libwbclient-4.1.1-33.el7_0.x86_64             1/145
<略>
  更新します              : centos-release-7-0.1406.el7.centos.2.3.x8    62/145
Error unpacking rpm package centos-release-7-0.1406.el7.centos.2.3.x86_64
error: unpacking of archive failed on file /usr/share/doc/redhat-release: cpio: rename
  更新します              : 10:libcacard-1.5.3-60.el7_0_0.2.x86_64       63/145
<略>
  更新します              : json-c-0.11-4.el7_0.x86_64                   71/145
  インストール中          : kernel-3.10.0-123.4.2.el7.x86_64             72/145
  更新します              : 10:qemu-guest-agent-1.5.3-60.el7_0_0.2.x8    73/145
  整理中                  : sssd-1.11.2-65.el7.x86_64                    74/145
<略>
  整理中                  : 10:qemu-guest-agent-1.5.3-60.el7.x86_64     144/145
  検証中                  : evolution-3.8.5-22.el7_0.1.x86_64             1/145
<略>
  検証中                  : gnome-shell-extension-apps-menu-3.8.4-9.e   131/145
centos-release-7-0.el7.0.140617.3.x86_64 was supposed to be removed but is not!
  検証中                  : centos-release-7-0.el7.0.140617.3.x86_64    132/145
  検証中                  : 1:java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7   133/145
<略>
  検証中                  : 1:java-1.7.0-openjdk-headless-1.7.0.51-2.   145/145

インストール:
  kernel.x86_64 0:3.10.0-123.4.2.el7

更新:
  NetworkManager.x86_64 1:0.9.9.1-23.git20140326.4dba720.el7_0
<略>
  webkitgtk3.x86_64 0:2.0.4-6.el7_0.1

失敗:
  centos-release.x86_64 0:7-0.el7.0.140617.3
  centos-release.x86_64 0:7-0.1406.el7.centos.2.3

完了しました!
[root@cent7rc ~]#

centos-releaseのインストールに失敗している?
rpmコマンドを実行して確認してみるとRC時代のものが残っている模様

[root@cent7rc ~]# rpm -qa|grep release
centos-release-7-0.el7.0.140617.3.x86_64
[root@cent7rc ~]#

rpmファイルを–forceで適用しようとしても、同じ状態

[root@cent7rc ~]# rpm -Uvh --force centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:centos-release-7-0.1406.el7.cento################################# [100%]
エラー: アーカイブの伸長に失敗: ファイル /usr/share/doc/redhat-release: cpio: rename失敗 - ディレクトリです
エラー: centos-release-7-0.1406.el7.centos.2.3.x86_64: インストール 失敗
[root@cent7rc ~]#

ファイルが壊れているのかとrpm2cpio/cpioで展開してみると、それは正常終了

[root@cent7rc tmp]# rpm2cpio ../centos-release-7-0.1406.el7.centos.2.3.x86_64.rpm |cpio -ivd
./etc/centos-release
./etc/issue
./etc/issue.net
./etc/os-release
./etc/pki/rpm-gpg
./etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
./etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7
./etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-7
./etc/redhat-release
./etc/rpm/macros.dist
./etc/system-release
./etc/system-release-cpe
./etc/yum.repos.d/CentOS-Base.repo
./etc/yum.repos.d/CentOS-Debuginfo.repo
./etc/yum.repos.d/CentOS-Sources.repo
./etc/yum.repos.d/CentOS-Vault.repo
./usr/lib/systemd/system-preset/85-display-manager.preset
./usr/lib/systemd/system-preset/90-default.preset
./usr/share/centos-release/EULA
./usr/share/doc/centos-release/Contributors
./usr/share/doc/centos-release/GPL
./usr/share/doc/redhat-release
./usr/share/redhat-release
67 blocks
[root@cent7rc tmp]#

謎な状態ですね。

まぁ、テストマシンなので、気にせず消しましょうかね・・・

Windowsバッチファイルでping応答の違いで動作をかえる


Windowsバッチファイルで、指定IPアドレスから応答がなくなったら次の作業を実施する、という処理をやりたかったので作った。

普通にping実行時のERRORLEVELを見ればいいか、と思っていたが、試験した環境では応答があってもなくてもERRORLEVEL0だったので判別ができなかった・・・

調べたところ「otnx.jpのコマンド別/ping」に調査した結果と回避方法があったのでそれを使った。

ちなみにotnx.jpではfindで「bytes=32」を引っかけていたが、日本語環境だと「 バイト数 =32」になってしまう。しかし、バッチには日本語文字列を書きたくなかったので、その後ろにある「ms TTL=」の方を引っかけるようにした。

・停止待ちバッチファイル

応答がなかったら終了。
応答があったら3回繰り返す

@echo off

set COUNT=0

:error
set /a COUNT=COUNT+1
echo %COUNT%
if "%COUNT%" == "3" goto errorout
ping -n 1 IPアドレス | find "ms TTL=" > NUL
if ERRORLEVEL 1 goto notrespond
timeout /t 5  > nul
goto error

:notrespond
echo host stopped
goto end

:errorout
echo host not stop

:end

・起動待ちバッチファイル

ping応答があるまで待機する
3回繰り返してもping応答がなければ諦める

@echo off

set COUNT=0

:error
set /a COUNT=COUNT+1
if "%COUNT%" == "3" goto errorout
ping -n 1 IPアドレス | find "ms TTL=" > NUL
if ERRORLEVEL 1 goto error

echo host working
goto end

:errorout
echo host not working

:end

Windows上でperlを使って日本語ファイル名を操作する(メモ



slashdot.jpの「Perlはゾンビだ」に、日本語Windows環境において、perlを使って日本語ファイル名を操作する時の注意点がまとめられていたので、引用&備忘録化。

過去にperlスクリプトを作る際、ファイル内に書かれた日本語の操作に関することはWindows/Linuxで動作が共通化できたものの、「日本語ファイル名の取り扱い」について、Windows上での動作がいまいち分からず、面倒になり、NASに該当ファイル群を置き、Linuxで処理する、ということをしたことがある。

その時に受けた感じからすると、以下の解説は非常に納得がいくモノだった。

Anonymous Coward の書き込み (#2628619) 」より

コマンドラインからの引数取得とかファイル操作とかのたびに
@ARGV = map { decode(‘cp932’, $_) } @ARGV; とか
open my $fh, ”, encode(‘cp932’, $filename) or die $!; とか
@files = map { decode(‘cp932’, $_) } readdir($d); とか
if (-f encode(‘cp932’, $filename)) とか
mkdir encode(‘cp932’, $filename); とかソース全体にわたって書かなければならないこと。

これが面倒だと思わない奴はWindows上でPerlを本気で使ったことがないとしか思えない。少なくとも小飼弾はMac使っているようだし。つーか面倒だと思わないならそもそもどうして開祖が「怠惰はプログラマの美徳」とか言ってる言語なんか使ってるの?

56億7千万歩ほど譲ってこれは面倒ではないということにしても、Windows以外の環境への移植性がまったくない。Windows上でシステムロケールを変えただけで動作がおかしくなる。当然どんな環境で動くかわからないモジュール内では使えない。
まあいちおうこれには対処の方法があって、
use Encode::Locale;
@ARGV = map { decode(locale, $_) } @ARGV; とか
open my $fh, ”, encode(locale_fs, $filename) or die $!; とか
@files = map { decode(locale_fs, $_) } readdir($d); とか
if (-f encode(locale_fs, $filename)) とか
mkdir encode(locale_fs, $filename); とかさらに呪文を積み増しすればいいらしい。
MacやLinuxでこんなことわざわざしてる奴いないと思うけど。つーか忘れてもたいてい問題なく動くからWindows以外の環境で正しく書くのが超困難。だから結局Windowsに移植する奴が貧乏クジを引かされる。Windows上ですら、localeとlocal_fsが違う環境があるというバグを知らずに踏んでも気づかない。

しかし実はEncode::Locale;使ってもまだ不十分で、システムロケール(日本語版ならシフトJIS)で表せない文字を含んだファイル名が扱えない。いちおうWin32::Unicode::Fileというモジュールがあるようだが、ファイル読み書きをモジュール内で独自に行なっているので信じられないほど遅くて捨てた。Win32::Longnameというモジュールがちょっとはマシなようだが、どちらにしてもまたも移植性がなくなる。

自分で書くコードは上記の面倒じゃないことにした書き換えを「するだけで」済むとしても、File::compareのような超基本的モジュールすらいまだに非対応。

Perlでこのへんが改善される見込みはまったくなさそうなので、自分はPythonの勉強を始めた。

そして、(#2630401) より

> ・PerlをUTF-8ベース(CP65001)でPerlを動かす
> ことだと思います。

Console CPはファイル名で使われるコードページにはまったく影響を与えない。Encode::Localeでもlocale_fsとconsole_inとconsole_outが別々に定義されている(そう、APIレベルではコンソール入力と出力さえ異なる可能性がある)。Perlの仕様をまともにするためにあなたのような知ったかぶりバカをマサカリで殴って回るよりコストがかからないに違いないからPythonの勉強を始めたの。

> 普通のコマンドプロンプト(SJIS)ベースでは不可能。

Windowsにはコンソール入出力にもワイド文字APIがあり、それを使えば可能(リダイレクトやパイプが絡むとこっちの都合だけでエンコーディングを決められないけどそれはCygwinでも同じだし)。もちろん今あるPerlでは不可能だがそれは実装の手抜きにすぎない。そもそもCygwinはどうやってUTF-8文字を受け付けるコンソールを実現してると思ってるの?

> ・UTF-8 な cygwin の環境を構築し、その上で Perl を使う

Cygwinはパスの扱いが特殊すぎて、結局普通のアプリとパス名をやりとりする際にパスの変換/逆変換が必要なので、面倒だとか移植性ゼロだとかいう問題は何も解決しない。Perlがmsvcrt使うのやめて、UTF-8←→UTF-16LE変換を行ってワイド文字API呼び出して、Encode::LocaleはあたかもロケールがUTF-8であるかのようにふるまってくれるのが一番いいのだが、それを実現するために投入するコストを考えるとすでにまともな処理している言語の乗り換えにコストを振り向けたほうがどう考えても省エネ。

> ・@ARGVやファイル名を、スクリプト本体内のデータ処理と混ぜない

それを面倒と思わないなら以下略