読者です 読者をやめる 読者になる 読者になる

MacOSXでrpm2cpio

rpm2cpioをMacにインストールする場合brew辺りを使うみたいだが、以下のサイトにシェルがあった。

https://gist.github.com/elasticdog/7112671

rpmのヘッダ部分を解析してcpioを取り出すツール。Macrpmの中身を見たいなんてことは滅多にないのでシェルで提供されているこのツールはグッド。ただ、圧縮形式にgzip/bunzip2/xzがあるのでxzについてはbrewMacPortsでインストールしておく。

$ chmod 755 rpm2cpio.sh
$ cat rpm2cpio.sh
#!/bin/sh
 
pkg=$1
if [ "$pkg" = "" -o ! -e "$pkg" ]; then
  echo "no package supplied" 1>&2
  exit 1
fi
 
leadsize=96
o=`expr $leadsize + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "sig il: $il dl: $dl"
 
sigsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "hdr il: $il dl: $dl"
 
hdrsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $hdrsize`
EXTRACTOR="dd if=$pkg ibs=$o skip=1"
 
COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null`
if echo $COMPRESSION | grep -q gzip; then
  DECOMPRESSOR=gunzip
elif echo $COMPRESSION | grep -q bzip2; then
  DECOMPRESSOR=bunzip2
elif echo $COMPRESSION | grep -q xz; then
  DECOMPRESSOR=unxz
elif echo $COMPRESSION | grep -q cpio; then
  DECOMPRESSOR=cat
else
  # Most versions of file don't support LZMA, therefore we assume
  # anything not detected is LZMA
  DECOMPRESSOR=`which unlzma 2>/dev/null`
  case "$DECOMPRESSOR" in
    /* )
      ;;
    *  )
      DECOMPRESSOR=`which lzmash 2>/dev/null`
      case "$DECOMPRESSOR" in
        /* )
          DECOMPRESSOR="lzmash -d -c"
          ;;
        *  )
          DECOMPRESSOR=cat
          ;;
      esac
      ;;
  esac
fi
 
$EXTRACTOR 2>/dev/null | $DECOMPRESSOR
$ ./rpm2cpio.sh rpm-build-5.4.10-10-mdv2012.0.x86_64.rpm | cpio -tv
-rwxr-xr-x   1 root     wheel         963 Nov  6  2012 ./usr/bin/gendiff
-rwxr-xr-x   1 root     wheel         305 Nov  6  2012 ./usr/bin/multiarch-platform
-rwxr-xr-x   1 root     wheel       23712 Nov  6  2012 ./usr/bin/rpmbuild
-rwxr-xr-x   1 root     wheel      719850 Nov  6  2012 ./usr/lib/rpm/bin/api-sanity-autotest.pl
-rwxr-xr-x   1 root     wheel      721319 Nov  6  2012 ./usr/lib/rpm/bin/api-sanity-checker.pl
-rwxr-xr-x   1 root     wheel       10568 Nov  6  2012 ./usr/lib/rpm/bin/dbsql
-rwxr-xr-x   1 root     wheel       32648 Nov  6  2012 ./usr/lib/rpm/bin/debugedit
-rwxr-xr-x   1 root     wheel       13997 Nov  6  2012 ./usr/lib/rpm/bin/install-sh
-rwxr-xr-x   1 root     wheel        3538 Nov  6  2012 ./usr/lib/rpm/bin/mkinstalldirs
-rwxr-xr-x   1 root     wheel       17311 Nov  6  2012 ./usr/lib/rpm/bin/pom2spec
-rwxr-xr-x   1 root     wheel       19488 Nov  6  2012 ./usr/lib/rpm/bin/rpmcache
-rwxr-xr-x   1 root     wheel       10816 Nov  6  2012 ./usr/lib/rpm/bin/rpmcmp
-rwxr-xr-x   1 root     wheel       20400 Nov  6  2012 ./usr/lib/rpm/bin/rpmdeps
-rwxr-xr-x   1 root     wheel       32592 Nov  6  2012 ./usr/lib/rpm/bin/rpmdigest
-rwxr-xr-x   1 root     wheel       24856 Nov  6  2012 ./usr/lib/rpm/bin/rpmkey
-rwxr-xr-x   1 root     wheel       10704 Nov  6  2012 ./usr/lib/rpm/bin/rpmrepo
-rwxr-xr-x   1 root     wheel       10568 Nov  6  2012 ./usr/lib/rpm/bin/sqlite3
-rwxr-xr-x   1 root     wheel        1452 Nov  6  2012 ./usr/lib/rpm/brp-compress
-rwxr-xr-x   1 root     wheel        1418 Nov  6  2012 ./usr/lib/rpm/brp-java-gcjcompile
-rwxr-xr-x   1 root     wheel         677 Nov  6  2012 ./usr/lib/rpm/brp-nobuildrootpath
-rwxr-xr-x   1 root     wheel         951 Nov  6  2012 ./usr/lib/rpm/brp-python-bytecompile
-rwxr-xr-x   1 root     wheel        1075 Nov  6  2012 ./usr/lib/rpm/brp-sparc64-linux
-rwxr-xr-x   1 root     wheel         561 Nov  6  2012 ./usr/lib/rpm/brp-strip
-rwxr-xr-x   1 root     wheel         853 Nov  6  2012 ./usr/lib/rpm/brp-strip-comment-note
-rwxr-xr-x   1 root     wheel         758 Nov  6  2012 ./usr/lib/rpm/brp-strip-shared
-rwxr-xr-x   1 root     wheel         465 Nov  6  2012 ./usr/lib/rpm/brp-strip-static-archive
-rwxr-xr-x   1 root     wheel         569 Nov  6  2012 ./usr/lib/rpm/check-files
-rwxr-xr-x   1 root     wheel        2804 Nov  6  2012 ./usr/lib/rpm/check-multiarch-files
-rwxr-xr-x   1 root     wheel         283 Nov  6  2012 ./usr/lib/rpm/executabledeps.sh
-rwxr-xr-x   1 root     wheel        9623 Nov  6  2012 ./usr/lib/rpm/find-debuginfo.sh
-rwxr-xr-x   1 root     wheel        7912 Nov  6  2012 ./usr/lib/rpm/find-lang.sh
-rwxr-xr-x   1 root     wheel        4188 Nov  6  2012 ./usr/lib/rpm/find-prov.pl
-rwxr-xr-x   1 root     wheel          44 Nov  6  2012 ./usr/lib/rpm/find-provides.perl
-rwxr-xr-x   1 root     wheel        3571 Nov  6  2012 ./usr/lib/rpm/find-req.pl
-rwxr-xr-x   1 root     wheel          44 Nov  6  2012 ./usr/lib/rpm/find-requires.perl
-rwxr-xr-x   1 root     wheel         489 Nov  6  2012 ./usr/lib/rpm/fontconfig.prov
-rwxr-xr-x   1 root     wheel        4535 Nov  6  2012 ./usr/lib/rpm/gem_helper.rb
-rwxr-xr-x   1 root     wheel         794 Nov  6  2012 ./usr/lib/rpm/getpo.sh
-rwxr-xr-x   1 root     wheel        1303 Nov  6  2012 ./usr/lib/rpm/gstreamer.sh
-rwxr-xr-x   1 root     wheel         574 Nov  6  2012 ./usr/lib/rpm/haskelldeps.sh
drwxr-xr-x   2 root     wheel           0 Nov  6  2012 ./usr/lib/rpm/helpers
-rwxr-xr-x   1 root     wheel          62 Nov  6  2012 ./usr/lib/rpm/helpers/makeshlibs
-rwxr-xr-x   1 root     wheel        4451 Nov  6  2012 ./usr/lib/rpm/http.req
-rwxr-xr-x   1 root     wheel        1928 Nov  6  2012 ./usr/lib/rpm/javadeps.sh
-rwxr-xr-x   1 root     wheel        1821 Nov  6  2012 ./usr/lib/rpm/kmod-deps.sh
-rwxr-xr-x   1 root     wheel         707 Nov  6  2012 ./usr/lib/rpm/libtooldeps.sh
-rw-r--r--   1 root     wheel       22769 Nov  6  2012 ./usr/lib/rpm/macros.rpmbuild
-rwxr-xr-x   1 root     wheel        2406 Nov  6  2012 ./usr/lib/rpm/mkmultiarch
-rwxr-xr-x   1 root     wheel        1666 Nov  6  2012 ./usr/lib/rpm/mono-find-provides
-rwxr-xr-x   1 root     wheel        4914 Nov  6  2012 ./usr/lib/rpm/mono-find-requires
-rwxr-xr-x   1 root     wheel        5700 Nov  6  2012 ./usr/lib/rpm/osgideps.pl
-rwxr-xr-x   1 root     wheel        6269 Nov  6  2012 ./usr/lib/rpm/perl.prov
-rwxr-xr-x   1 root     wheel        9502 Nov  6  2012 ./usr/lib/rpm/perl.req
-rwxr-xr-x   1 root     wheel        8846 Nov  6  2012 ./usr/lib/rpm/perldeps.pl
-rwxr-xr-x   1 root     wheel        1115 Nov  6  2012 ./usr/lib/rpm/php.prov
-rwxr-xr-x   1 root     wheel        2586 Nov  6  2012 ./usr/lib/rpm/php.req
-rwxr-xr-x   1 root     wheel        1380 Nov  6  2012 ./usr/lib/rpm/pkgconfigdeps.sh
-rwxr-xr-x   1 root     wheel         433 Nov  6  2012 ./usr/lib/rpm/pythondeps.sh
-rwxr-xr-x   1 root     wheel        8161 Nov  6  2012 ./usr/lib/rpm/pythoneggs.py
drwxr-xr-x   2 root     wheel           0 Nov  6  2012 ./usr/lib/rpm/qf
-rw-r--r--   1 root     wheel         664 Nov  6  2012 ./usr/lib/rpm/qf/deb_Packages
-rw-r--r--   1 root     wheel         712 Nov  6  2012 ./usr/lib/rpm/qf/deb_Sources
-rw-r--r--   1 root     wheel         421 Nov  6  2012 ./usr/lib/rpm/qf/deb_control
-rw-r--r--   1 root     wheel          47 Nov  6  2012 ./usr/lib/rpm/qf/deb_md5sums
-rw-r--r--   1 root     wheel          81 Nov  6  2012 ./usr/lib/rpm/qf/deb_postinst
-rw-r--r--   1 root     wheel          81 Nov  6  2012 ./usr/lib/rpm/qf/deb_postrm
-rw-r--r--   1 root     wheel          77 Nov  6  2012 ./usr/lib/rpm/qf/deb_preinst
-rw-r--r--   1 root     wheel          77 Nov  6  2012 ./usr/lib/rpm/qf/deb_prerm
-rw-r--r--   1 root     wheel         253 Nov  6  2012 ./usr/lib/rpm/qf/nix_meta
-rw-r--r--   1 root     wheel        1301 Nov  6  2012 ./usr/lib/rpm/qf/psq_pkgng_yaml
-rw-r--r--   1 root     wheel         243 Nov  6  2012 ./usr/lib/rpm/qf/wdj_l10n_sqlite
-rw-r--r--   1 root     wheel          82 Nov  6  2012 ./usr/lib/rpm/qf/wdj_srpm
-rw-r--r--   1 root     wheel         623 Nov  6  2012 ./usr/lib/rpm/qf/wdj_srpm_mongo
-rw-r--r--   1 root     wheel         303 Nov  6  2012 ./usr/lib/rpm/qf/wnh_filelists_mongo
-rw-r--r--   1 root     wheel         298 Nov  6  2012 ./usr/lib/rpm/qf/wnh_filelists_yaml
-rw-r--r--   1 root     wheel         408 Nov  6  2012 ./usr/lib/rpm/qf/wnh_other_mongo
-rw-r--r--   1 root     wheel         373 Nov  6  2012 ./usr/lib/rpm/qf/wnh_other_yaml
-rw-r--r--   1 root     wheel        1373 Nov  6  2012 ./usr/lib/rpm/qf/wnh_primary_mongo
-rw-r--r--   1 root     wheel        1369 Nov  6  2012 ./usr/lib/rpm/qf/wnh_primary_yaml
-rw-r--r--   1 root     wheel         203 Nov  6  2012 ./usr/lib/rpm/qf/xiu_stdenv
-rw-r--r--   1 root     wheel         177 Nov  6  2012 ./usr/lib/rpm/qf/yum_filelists_sqlite
-rw-r--r--   1 root     wheel         277 Nov  6  2012 ./usr/lib/rpm/qf/yum_filelists_xml
-rw-r--r--   1 root     wheel         317 Nov  6  2012 ./usr/lib/rpm/qf/yum_other_sqlite
-rw-r--r--   1 root     wheel         387 Nov  6  2012 ./usr/lib/rpm/qf/yum_other_xml
-rw-r--r--   1 root     wheel        1177 Nov  6  2012 ./usr/lib/rpm/qf/yum_primary_sqlite
-rw-r--r--   1 root     wheel        1887 Nov  6  2012 ./usr/lib/rpm/qf/yum_primary_xml
-rwxr-xr-x   1 root     wheel        3257 Nov  6  2012 ./usr/lib/rpm/rubygems.rb
-rwxr-xr-x   1 root     wheel        3624 Nov  6  2012 ./usr/lib/rpm/symclash.py
-rwxr-xr-x   1 root     wheel         412 Nov  6  2012 ./usr/lib/rpm/symclash.sh
-rwxr-xr-x   1 root     wheel        2050 Nov  6  2012 ./usr/lib/rpm/u_pkg.sh
-rwxr-xr-x   1 root     wheel       98508 Nov  6  2012 ./usr/lib/rpm/vcheck
-rwxr-xr-x   1 root     wheel        9480 Nov  6  2012 ./usr/lib/rpm/vpkg-provides.sh
-rwxr-xr-x   1 root     wheel        2659 Nov  6  2012 ./usr/lib/rpm/vpkg-provides2.sh
-rw-r--r--   1 root     wheel        2828 Nov  6  2012 ./usr/share/man/man8/rpmbuild.8.xz
-rw-r--r--   1 root     wheel         612 Nov  6  2012 ./usr/share/man/man8/rpmdeps.8.xz
-rwxr-xr-x   2 root     wheel           0 Nov  6  2012 ./usr/lib/rpm/bin/luac
-rwxr-xr-x   2 root     wheel      113320 Nov  6  2012 ./usr/lib/rpm/bin/rpmluac link to ./usr/lib/rpm/bin/luac
-rwxr-xr-x   2 root     wheel           0 Nov  6  2012 ./usr/lib/rpm/bin/lua
-rwxr-xr-x   2 root     wheel      167064 Nov  6  2012 ./usr/lib/rpm/bin/rpmlua link to ./usr/lib/rpm/bin/lua
4365 blocks
$ 

parallels上のwindows10でMacのかな・英数キーでIMEオン・オフを切り替える方法

参考サイトは以下、本家サイト。Windows10はWindows8の方法と一緒だけど一応記載する。

http://kb.parallels.com/jp/115294

Windows10での方法

MS-IMEのプロパティを開く(タスクバーの[A]を右クリック)

f:id:kazuokohchi:20170416165229p:plain

詳細設定をクリック

f:id:kazuokohchi:20170416165239p:plain

編集操作の変更をクリック

f:id:kazuokohchi:20170416165256p:plain

「キー」列が「ひらがな」の行の「入力/変換済み文字なし」列を「IME-オン」にする

f:id:kazuokohchi:20170416165309p:plain

「キー」列が「無変換」の行の「入力/変換済み文字なし」列を「IME-オフ」にする

f:id:kazuokohchi:20170416165320p:plain

Oracleのストアドでのエラーの備忘録

以下のエラーについて調べたのでまとめ備忘録。

ORA-04068: パッケージの既存状態は廃棄されました。
ORA-04061: package body “スキーマ.パッケージ名"の既存状態は無効になりました。
ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした。

よくある原因

DBに接続している状態でストアドをリコンパイルして呼び出したりするとこのエラーが発生。これをなくすにはWebアプリケーションとOracleとのコネクションプールを開放、つまりWebアプリケーションを再起動する必要があるようだ。

これに関連したエラー

ORA-04063: view “スキーマ.ビュー名"にエラーがあります。

  1. テーブル定義を変更
  2. 変更したテーブルを参照しているビューを参照するとエラー

コネクションプールを開放しないで回避するには、

  1. テーブル定義を変更
  2. 該当テーブルを参照しているビューも変更

をやらないといけないみたい(本当?)。

Google Chromeで証明書を表示する方法

Google Chromeがバージョン56(55あたりも?)になってから、URLを表示している鍵マークをクリックしても証明書の内容を表示できなくなっていた。 f:id:kazuokohchi:20170205113209p:plain

以下の方法で表示できたので備忘録として記載する。

How to view certificate

  1. ページでコンテキストメニュー(右クリックやMacならCtrl+クリック)を表示して「検証」。つまり、ディベロッパーツールを開いちゃう。 f:id:kazuokohchi:20170205113251p:plain

  2. Securityタブを表示。 f:id:kazuokohchi:20170205113619p:plain

  3. 「View Certificate」をクリック。 f:id:kazuokohchi:20170205113632p:plain

57とかになれば元に戻るんでしょうかねぇ。

evernoteのiphoneアプリが起動しないで落ちる件

iphone6s(iOS 10.2)のevernoteを8.0.1にアップデートした後、evernoteを起動すると画面が一瞬白くなり落ちる。8.0.2にしても同じ症状。ネットを見ると、

【iPhone】Evernoteバージョン8.0アップデートで「起動できない」「落ちる」時の対処方法

というのがあるので、インストールし直すとうまくいくんだろうけど、急いでいるわけではないのでバージョンアップして治るのかどうか試してみようと思ってそのまま放置プレイ。

本日(1/27)8.0.3が出てたので早速アップデートしアプリを起動したら、

Evernoteが予期しない理由で終了
問題が修正できるよう、レポートを送信しますか。
レポートを送信
常に送信
送信しない

と出る。 「レポートを送信」を選んだあとはメッセージが消え、使える状態になるがアプリ終了後、再度起動すると同じメッセージが出る。 「送信しない」を選択するとその後のアプリ起動時のこのメッセージは出なくなった。

8.0.3でやっと使える状態にはなったがまだおかしいのでないのか?>evernote

2017-02-05 追記

8.0.4でも上記の「レポートを送信」のメッセージは出る。

VMware Fusion上のWindows10が調子悪かったのでVMwareに問い合わせてみた件

VMware Fustion上のWindows10がストールしてしまうことが時々あったので、問い合わせしたところメールをいただいた結果が以下。

VMware Fusionのスナップショットの意味

メールでは

  • バックアップを取り
  • スナップショットを消してみて

とのことだったので、それをして様子見している。と回答した。

でもじゃあ、スナップショットは何個とれるの?って質問したら 100まで取れるけど、スナップショットからの起動(そうなの?)はパフォーマンスに影響があり、 そもそもスナップショットは未知や危険な何かのテストのためのもので テスト終わったら消せとのこと。ストール時は12,13個スナップショットが溜まっていた状態。

要はバックアップの意味合いはまったくないということ(バックアップは仮想マシンのファイルをまるごとコピーで対処)。

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2076998

によると、最初のVMからの差分らしい。 バックアップしたいのならやはり、

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078674

https://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=2078257

を参考に仮想マシンをコピーするべき。

Oracle CREATE DIRECTORYでディレクトリオブジェクトを使用

PL/SQLでUTL_FILE()なんかを使う場合に便利なディレクトリオブジェクト

CREATE DIRECTORY オブジェクト名 AS '/path/to/foo/bar';
GRANT READ ON DIRECTORY オブジェクト名 TO ユーザ名;
GRANT WRITE ON DIRECTORY オブジェクト名 TO ユーザ名;

こうしておくと「オブジェクト名」でアクセスできる。

CREATE OR REPLACE PROCEDURE FOO_BAR
AS
    vHandle     UTL_FILE.FILE_TYPE;
BEGIN
    vHandle := UTL_FILE.FOPEN('オブジェクト名(大文字)', 'foo.txt', 'a');
        ....
END;
/

大文字ってのがミソ。

参考は以下。

Oracleでディレクトリ・オブジェクトの作成・削除・確認
UTL_FILEの使い方 (CREATE DIRECTORY 編)