linuxbrewを使って、owncloudをインストールできるのかなと思ってやっていた時に
つまずいた話、結局owncloudをインストールするまでに至らなかったが、
opensslのインストール時に発生したビルドエラー対処法だけ記載します。
linuxbrew でopensslをインストールしようとした時に、ビルドエラーで進めない時の対処法
opensslビルド動作中にこんなエラーがでる
cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in
ググると、32-bit環境にも関わらず、64-bit環境用にビルドしようとしてるとのこと
configureしてるところにオプションを指定してやればよいよと知ったが、brewってどうやってそこんところ弄るの?
fomulaってのがあって、Rubyで書かれたスクリプトがあるんだけど、
そこでconfigure用のコマンド文字列を生成しているみたい。
brew edit openssl ってするとそれを編集できる。
58行目あたりに、32 or 64bit の判定をしている部分があるけど、おそらくここで64bitが選ばれてしまうからだろう。。。
def arch_args
  return { :i386  => %w[linux-generic32], :x86_64 => %w[linux-x86_64] } if OS.linux?
    {
    :x86_64 => %w[darwin64-x86_64-cc enable-ec_nistp_64_gcc_128],
    :i386   => %w[darwin-i386-cc],
    }
end
# -- 省略
def install
  if build.universal?
    ENV.permit_arch_flags
    archs = Hardware::CPU.universal_archs
  elsif MacOS.prefer_64_bit?
    archs = [Hardware::CPU.arch_64_bit]
  else
    archs = [Hardware::CPU.arch_32_bit]
  end
  dirs = []
  archs.each do |arch|
    if build.universal?
      dir = "build-#{arch}"
      dirs << dir
      mkdir dir
      mkdir "#{dir}/engines"
      system "make", "clean"
    end
    arch=:i386 # 無理やりここで32-bit用にしてしまう。
    ENV.deparallelize
    system "perl", "./Configure", *(configure_args + arch_args[arch])
    system "make", "depend"
    system "make"
# -- 省略
上記のarch変数を直接書き換えることで、対応できた!
 
0 件のコメント:
コメントを投稿