とある器用貧乏の技術メモ

何でもは知らないわよ。Googleが知ってることだけ。

ChocolateyでのAutoHotkeyインストールがエラーになる件

Windows10になってから、PC初期化する頻度が増えました。

元々、PC環境を初期化するのに抵抗が異常に少ない方で、Windows2000~7時代では年に1回、Windows8では半年に1回、最近では季節の変わり目には初期化しています(笑)

 

当然、初期化すると仕事に必要なソフト類も全部消えちゃうわけなので、仕事に支障があるんじゃないの?と思われますが、最近はChocolateyとかで全自動インストールも可能なので、それほど時間も手間もかけずに環境を再構築できます。

 

しかし、今回の初期化&再構築時に、なにかの依存関係で自動で入るAutoHotkeyのインストールがコケるという事態が発生し、ハマってしまいました。

AutoHotkeyのインストールを指定したわけではなく、他のソフトのインストールのために使用するために自動でインストールされる部分なだけに「めんどくせぇ」感もひとしおです。

 

ログを読んで解決策を探ったところ、手動でダウンロードしたAutoHotkeyの圧縮ファイルを

C:\Users\ユーザー名\AppData\Local\Temp\chocolatey\autohotkey.portable\1.1.24.02

↑この場所に「autohotkey.portableInstall.zip」とリネームして置いてあげれば、問題なくインストールされます。

 

原因はAutoHotkeyの公式ダウンロードページが、Captcha(ロボットからのアクセスかどうかを判別する仕組み)を導入しており、Chocolateyのインストーラがそれを突破できなくてダウンロードがコケるというものでした。

あと、Visual StudioやOffice 365などのMS系も手動でインストールする必要があります。カタログには載っているんですが、残念ながらChocoではうまくインストールできないようです。

 

でもまぁ、VSはインストールするモジュールを選びたいし、Officeはインストール速くなったしで、あまり手間ではないですね。

 

 

JIRA Standaloneのインストール

JAIL環境にインストール。最初にpkgを更新。

pkg update
pkg upgrade

jira用のユーザーを追加

adduser

Username: jira
Full name: JIRA psuedo-user
Uid (Leave empty for default): 71
Login group [jira]:
Login group is jira. Invite jira into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh rzsh git-shell nologin) [sh]:
Home directory [/home/jira]: /usr/local/jira
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: no
Username : jira
Password : <disabled>
Full Name : JIRA psuedo-user
Uid    : 71
Class   :
Groups  : jira
Home   : /usr/local/jira
Home Mode :
Shell   : /bin/sh
Locked  : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jira) to the user database.

JREをインストール

pkg install openjdk openjdk-jre

wgetをインストール

pkg install wget

https://www.atlassian.com/software/jira/update ここからTAR.GZ Archiveを選択し、wgetする

wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.0.tar.gz
tar zxvfatlassian-jira-software-7.2.0.tar.gz
mv atlassian-jira-6.3.14-standalone /usr/local/share/jira
cd /usr/local/share/jira
chown jira:jira logs temp work
mkdir /usr/local/jira

/usr/local/etc/rc.d/jira

#!/bin/sh

#
# PROVIDE: jira
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

load_rc_config jira

JAVA_HOME="/usr/local/openjdk8"
JRE_HOME="/usr/local/openjdk8/jre"
JIRA_INSTALL="/usr/local/share/jira"
JIRA_HOME="/usr/local/jira"

jira_enable=${jira_enable:-"NO"}
jira_user=${jira_user:-"jira"}

name=jira
rcvar=jira_enable

procname="java"
pidfile="/var/run/jira.pid"

start_cmd="jira_start"
stop_cmd="jira_stop"

jira_start()
{
su -l ${jira_user} -c "export JAVA_HOME=${JAVA_HOME};export JRE_HOME=${JRE_HOME};export JIRA_HOME=${JIRA_HOME};${JIRA_INSTALL}/bin/catalina.sh start || err 1 'Error triggering JIRA startup'"
}

jira_stop()
{
su -l ${jira_user} -c "export JAVA_HOME=${JAVA_HOME};export JRE_HOME=${JRE_HOME};export JIRA_HOME=${JIRA_HOME};${JIRA_INSTALL}/bin/catalina.sh stop 10 -force || err 1 'Error triggering JIRA shutdown'"
}

run_rc_command "$1"

パーミッションを変更

chmod u-w,ugo+x /usr/local/etc/rc.d/jira

/etc/rc.confを変更

# more /etc/rc.conf
portmap_enable="NO"
sshd_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
hostname="JIRA"
devfs_enable="YES"
devfs_system_ruleset="devfsrules_common"
inet6_enable="YES"
ip6addrctl_enable="YES"
jira_enable="YES"

MySQLを使用するので、JDBCコネクターを http://dev.mysql.com/downloads/connector/j/ からダウンロード

tar zxvf mysql-connector-java-5.1.39.tar.gz
cp mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar /usr/local/share/jira/lib

MySQLにDBを作成

CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;

このまま起動すると下記のエラーがでる

# service jira start
        .....
     .... .NMMMD. ...
    .8MMM. $MMN,..~MMMO.
    .?MMM.    .MMM?.

  OMMMMZ.     .,NMMMN~
  .IMMMMMM. .NMMMN. .MMMMMN,
   ,MMMMMM$..3MD..ZMMMMMM.
    =NMMMMMM,. .,MMMMMMD.
    .MMMMMMMM8MMMMMMM,
     .ONMMMMMMMMMMZ.
      ,NMMMMMMM8.
      .:,.$MMMMMMM
     .IMMMM..NMMMMMD.
    .8MMMMM: :NMMMMN.
    .MMMMMM. .MMMMM~.
    .MMMMMN  .MMMMM?.

   Atlassian JIRA
   Version : 7.2.0


If you encounter issues starting or stopping JIRA, please see the Troubleshooting guide at http://confluence.atlassian.com/display/JIRA/Installation+Troubleshooting+Guide

Using JIRA_HOME:   /usr/local/jira

Server startup logs are located in /usr/local/share/jira/logs/catalina.out
Using CATALINA_BASE: /usr/local/share/jira
Using CATALINA_HOME: /usr/local/share/jira
Using CATALINA_TMPDIR: /usr/local/share/jira/temp
Using JRE_HOME:    /usr/local/openjdk8/jre
Using CLASSPATH:   /usr/local/share/jira/bin/bootstrap.jar:/usr/local/share/jira/bin/tomcat-juli.jar
Using CATALINA_PID:  /usr/local/share/jira/work/catalina.pid
*************************************************************************************************************************************
**********  Wrong JVM version! You are running with .. but JIRA requires at least 1.8 to run.   **********
*************************************************************************************************************************************
err: not found

/usr/local/share/jira/bin/check-java.sh の以下の行を書き換えて対処する。

"$_RUNJAVA" -version 2>&1 | grep "java version" | (

これを

"$_RUNJAVA" -version 2>&1 | grep -E "(openjdk|java) version" | (

このように。

service jira start

でスタートすれば、無事に起動する。

        .....
     .... .NMMMD. ...
    .8MMM. $MMN,..~MMMO.
    .?MMM.    .MMM?.

  OMMMMZ.     .,NMMMN~
  .IMMMMMM. .NMMMN. .MMMMMN,
   ,MMMMMM$..3MD..ZMMMMMM.
    =NMMMMMM,. .,MMMMMMD.
    .MMMMMMMM8MMMMMMM,
     .ONMMMMMMMMMMZ.
      ,NMMMMMMM8.
      .:,.$MMMMMMM
     .IMMMM..NMMMMMD.
    .8MMMMM: :NMMMMN.
    .MMMMMM. .MMMMM~.
    .MMMMMN  .MMMMM?.

   Atlassian JIRA
   Version : 7.2.0


If you encounter issues starting or stopping JIRA, please see the Troubleshooting guide at http://confluence.atlassian.com/display/JIRA/Installation+Troubleshooting+Guide

Using JIRA_HOME:   /usr/local/jira

Server startup logs are located in /usr/local/share/jira/logs/catalina.out
Using CATALINA_BASE: /usr/local/share/jira
Using CATALINA_HOME: /usr/local/share/jira
Using CATALINA_TMPDIR: /usr/local/share/jira/temp
Using JRE_HOME:    /usr/local/openjdk8/jre
Using CLASSPATH:   /usr/local/share/jira/bin/bootstrap.jar:/usr/local/share/jira/bin/tomcat-juli.jar
Using CATALINA_PID:  /usr/local/share/jira/work/catalina.pid
Tomcat started.

Visual Studio Xamarinから実機に転送できなくなって困った

Visual StudioからXamarinを使ってiOSの開発をしていてぶつかったトラブルなんですが、ググっても見つからなかったのでメモします。

 

MacにXamarin Studioをインストールして、WindowsのXamarin for Visual Studioからコンパイルさせているんですが、ある日実機に送り込んで実行させようとしたらうまく起動しなくなっていました。

それまでは、VS側で実行ボタンをポチっと押せば、しばらく待ったのちにMacにつないでいるiPhoneにアプリが転送されて自動で起動していたんですが、ある日実機デバッグしようとしたら、バイナリ(ipa)は作られるものの起動しない。

iTunesに読み込ませても、転送も出来ない。

 

ググってみても、「Xamarin使って無償で実機デバッグ」という話題ばかりが見つかって、Apple Developper登録済みの私にとっては意味がないノウハウばかり見つかって途方にくれてしまいました。

 

色々試行錯誤してやっと見つかった解決策と原因は、iOSアプリ作成の最大のはまりどころ「プロビジョニングプロファイルと署名」周りでした。

プロトタイプをTest Flightで飛ばしていたんですが、その際に指定するプロビジョニングと、ローカルで実機に転送するプロビジョニングが違っていたのが原因でした。

 

以下は正しい(と思われる)設定例

Application Loaderを使ってiTunes Connectにアップロードする場合は、図のようにDistributionの署名と、作成したアプリのIDを指定します。

f:id:PanicMeo:20160911195134p:plain

ローカルで実機に転送する場合は以下のように、Developの署名とワイルドカードIDで署名して、実機に送り込みます。

f:id:PanicMeo:20160911195442p:plain

どうやら、TestFlightを飛ばすために、いろいろいじっているうちに変更しちゃってたみたいです。

一応「Auto」という選択肢もあって、うまいことやってくれるみたいなのですが、私の場合うまく設定されなかったみたいなんですよね。。。

 

蛇足ですが、以下のようにipaを作成するようにしておかないと、肝心のアップロード用バイナリは作成されないので注意です。

バイナリは

~ライブラリ/Caches/Xamarin/mtbs/アプリ名/ランダムな文字列/bin/iPhone/Release/日付

フォルダの中に作られます。

f:id:PanicMeo:20160911200021p:plain

(まだXamarinを使い始めたばかりなので、もっと違う場所にあるのかもしれませんが・・・)

 

Xcodeでの開発もかじった程度だったので、プロビジョニング周りについて勘違いしているかもしれませんが、対症療法的に解決できましたってことで。

もっとスマートな方法があったら教えてもらいたいところです。