ekCraft blog

SE転向を目指すサンデープログラマーの備忘録

moodleアップデート(3.3.2→3.6.2+)

検証・学習用にさくらのレンタルサーバーでひっそりと運用しているmoodleサイトを最新版(2019年2月現在)にアップデートしたので備忘録です。手順は基本的に以下のリファレンス通りに行えば大丈夫だと思いますが、翻訳のせいかちょっと戸惑う記載が多くて時間かかってしまいました。 mahakala.lesc.uec.ac.jp 以下、殴り書き注意。

動作環境の確認

まずは、環境が新バージョンのシステム要件を満たしているかチェックしておきます。moodleにサイト管理者アカウントでログインして、ダッシュボード > サイト管理 > サーバ > 動作環境で確認できます。 f:id:ekCraft:20190205230656p:plain 3.4以降からはPHP7.0以上が必要とのこと。さくらのレンタルサーバーではどのバージョンを使うか、コントロールパネルから選択できます。後述。 

バックアップ

動作環境に問題が無ければ、データをバックアップしておきましょう。 バックアップするものは、主に以下3つ。

  1. moodleソフトウェアの中身(例:home/www/moodle
  2. moodledataの中身(例:home/moodledata)
  3. データベース(今回はなくても問題ありませんでした。念の為)

バックアップにはcpコマンドを使いました。バックアップ先をmkdirしておかないとうまくいかなかったけど、そういうものなんでしょうか?だれかご存知でしたら教えてください。。(それか、ほかにもっといい方法あれば。。)

cp -r コピー元ファイル名 コピー先ディレクトリ

DBのダンプはphpMyAdminのエクスポート機能を利用。

サイトをメンテナンスモードにする

別に誰が見るわけでもないのでしなくてもいいけど、一応しておきました(これも勉強)。ダッシュボード > サイト管理 > サーバ > メンテナンスモードでYesを選択します。メッセージは適当。 f:id:ekCraft:20190205234259p:plain

見え方はこんな感じ。 f:id:ekCraft:20190205234542p:plain

moodle3.6.2+をインストール

tgzファイルをダウンロードして、インストール先に置きます。普通はwgetでやるんでしょうね。。 f:id:ekCraft:20190205235039p:plain

download.moodle.org

tgzファイルを置いた場所にcdして以下のコマンドを実行。

tar xvzf tgzファイル名

展開されたら、moodleソフトウェアのバックアップからconfig.phpを新しいmoodleソフトウェアの中(home/www/moodleの直下)にコピーしておきます。

ここで、PHPのバージョンを7.xに切り替えておきます。(3.4以前では5.xが動作要件でした)さくらのレンタルサーバーでは、コントロールパネルから簡単に切り替えることができます。 f:id:ekCraft:20190206000725p:plain

アップグレードプロセスの起動

moodleサイトに移動します。動作環境やデータベースとの整合性等が自動でチェックされて、アップグレードが完了します。最後に、サイト管理者権限でログインして、メンテナンスモードをNoに戻して終わりです。

お疲れ様でした。

ローカル開発環境構築(COBOL編)

仕事の関係でCOBOLを学習する必要が出てきたため、せっかくなのでVagrantでopensource COBOLを動かせるローカル開発環境を構築してみました。 参考サイト様のほぼそのままですが(多謝)、とりあえずできたので備忘録も兼ねて記載しておきます。

■環境

■必要なソフトウェアのインストール

  1. Vagrant
    www.vagrantup.com

  2. VirtualBox
    Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle

■ローカル開発環境(VM)の構築

今後仮想環境を複数作成する可能性を考慮して、仮想環境を括る”Vagrant”をCドライブ直下に作成し、その下に今回作成する仮想環境のディレクトリを作成

> mkdir C:\Vagrant\cbl_centos68

cdコマンドで移動

> cd C:\Vagrant\cbl_centos68

Vagrantfile の作成

C:\Vagrant\cbl_centos68>vagrant init bento/centos-6.8
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Vagrantfileの編集
作成されたVagrantfileをエディタで開き、35行目、以下の部分のコメントアウトを外す

config.vm.network "private_network", ip: "192.168.33.10"

VMの起動

C:\Vagrant\cbl_centos68>vagrant up

VMSSH接続

C:\Vagrant\cbl_centos68>vagrant ssh

CentOSのアップデート

[vagrant@localhost ~]$ sudo yum update -y

opensource COBOLをインストール

opensource-cobol-1.4.0J-1.el6.x86_64.rpmを以下サイトからダウンロードして、先程作成したC:\Vagrant\cbl_centos68に格納しておく

www.osscons.jp

先程のrpmファイルがVagrantディレクトリに格納されているのを確認してlocalinstallを実行

[vagrant@localhost ~]$ cd /vagrant

[vagrant@localhost vagrant]$ ls
hello.cbl opensource-cobol-1.4.0J-1.el6.x86_64.rpm Vagrantfile
[vagrant@localhost vagrant]$ sudo yum localinstall opensource-cobol-1.4.0J-1.el6.x86_64.rpm

途中必要となるパッケージのインストールを求められるので承認

Install 6 Package(s)

Total size: 21 M
Total download size: 20 M
Installed size: 35 M
Is this ok [y/N]: y

以下メッセージが表示されれば成功

Installed:
opensource-cobol.x86_64 0:1.4.0J-1

Dependency Installed:
cpp.x86_64 0:4.4.7-23.el6 gcc.x86_64 0:4.4.7-23.el6 glibc-devel.x86_64 0:2.12-1.212.el6
glibc-headers.x86_64 0:2.12-1.212.el6 kernel-headers.x86_64 0:2.6.32-754.2.1.el6

Complete!

バージョン確認

[vagrant@localhost vagrant]$ cobc -version
opensource COBOL 1.4J
OSS Consortium's patched version of OpenCOBOL1.1(Feb.06 2009)
----
cobc (OpenCOBOL) 1.1.0
Copyright (C) 2001-2009 Keisuke Nishida / Roger While
Built May 07 2015 17:18:48
Packaged Feb 06 2009 10:30:55 CET

■必要な各ライブラリのインストール

gmp-develのインストール

[vagrant@localhost vagrant]$ sudo yum install gmp-devel

途中必要となるパッケージのインストールを求められるので承認

Install 1 Package(s)

Total download size: 171 k
Installed size: 337 k
Is this ok [y/N]: y

以下メッセージが表示されれば成功

Installed:
gmp-devel.x86_64 0:4.3.1-13.el6

Complete!

ncurses-develのインストール

[vagrant@localhost vagrant]$ sudo yum install ncurses-devel

途中必要となるパッケージのインストールを求められるので承認

Install 1 Package(s)

Total download size: 641 k
Installed size: 1.7 M
Is this ok [y/N]: y

以下メッセージが表示されれば成功

Installed:
ncurses-devel.x86_64 0:5.7-4.20090207.el6

Complete!

db4-develのインストール

[vagrant@localhost vagrant]$ sudo yum install db4-devel

途中必要となるパッケージのインストールを求められるので承認

Install 2 Package(s)

Total download size: 7.1 M
Installed size: 26 M
Is this ok [y/N]: y

以下メッセージが表示されれば成功

Installed:
db4-devel.x86_64 0:4.7.25-22.el6

Dependency Installed:
db4-cxx.x86_64 0:4.7.25-22.el6

Complete!

■hello.cblを作成してコンパイル~実行

適当にハローワールドを出力するCOBOLプログラム(hello.cbl)を作成して先程のVagrantフォルダに格納しておく

hello.cblコンパイル

[vagrant@localhost vagrant]$ cobc -x -std=cobol85 hello.cbl

正しくコンパイルされていればhelloファイルが出来上がる。

[vagrant@localhost vagrant]$ ls
hello hello.cbl opensource-cobol-1.4.0J-1.el6.x86_64.rpm Vagrantfile

ただしこのままでは実行できない。 /etc/ld.so.conf.dの中にlibcob.so.1の場所を記載したconfファイルを作成しておく必要がある。

libcob.so.1の場所を確認

[vagrant@localhost vagrant]$ sudo find / -name libcob.so.1
/usr/local/lib/libcob.so.1

viコマンドで先程確認した場所を記載したconfファイルを作成

[vagrant@localhost vagrant]$ sudo vi /etc/ld.so.conf.d/usr-local-lib.conf

catコマンドで作成したconfファイルの内容を確認

[vagrant@localhost vagrant]$ cat /etc/ld.so.conf.d/usr-local-lib.conf
/usr/local/lib

ldconfigコマンドで設定を反映させる

[vagrant@localhost vagrant]$ sudo ldconfig

lddコマンドで確認するとlibcob.so.1のパスが通っているのが確認できる

[vagrant@localhost vagrant]$ ldd ./hello
linux-vdso.so.1 => (0x00007ffccf0cf000)
libcob.so.1 => /usr/local/lib/libcob.so.1 (0x00007f5d531a1000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5d52f1d000)
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f5d52cc1000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f5d52a9f000)
libdb-4.7.so => /lib64/libdb-4.7.so (0x00007f5d5272a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5d52395000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5d52191000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f5d51f70000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5d51d52000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5d533de000)

helloファイルを実行

[vagrant@localhost vagrant]$ ./hello
HELLO, WORLD!

■参考サイト

sutepulu.com

ローカル開発環境構築(MySQL編)+Workbench接続

社内研修用に手持ちのPC端末上に仮想のローカル開発環境(VM)を構築し、そこにMySQLをインストールして、Workbenchから接続する方法を模索していたので、備忘録+参照用に記載しておきます。

■環境

■必要なソフトウェアのインストール

  1. Vagrant www.vagrantup.com

  2. VirtualBox
    Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle

  3. Workbench
    MySQL :: Download MySQL Workbench

WindowsMySQL Workbenchをインストールして実行するには、以下のライブラリがインストールされている必要があります。

ライブラリがインストールされていれば、ページ下部に進みOSを選択してDownloadをクリック
f:id:ekCraft:20180811144722p:plain

以下の画面が表示されれば、No thanks, just start my download.をクリック。ダウンロードされたインストーラの指示に従いインストールを行って下さい。 f:id:ekCraft:20180811151550p:plain

■ローカル開発環境(VM)の構築

今後仮想環境を複数作成する可能性を考慮して、仮想環境を括るディレクトVagrantをCドライブ直下に作成し、その下に今回作成する仮想環境のディレクトmysql_ubuntu1604を作成(名前はなんでもOK)

> mkdir C:\Vagrant\mysql_ubuntu1604

cdコマンドで移動

> cd C:\Vagrant\mysql_ubuntu1604

Vagrantfile の作成

> vagrant init bento/ubuntu-16.04

Vagrantfileの編集
作成されたVagrantfileをエディタで開き、35行目、以下の部分のコメントアウトを外す

config.vm.network "private_network", ip: "192.168.33.10"

VMの起動

> vagrant up

VMSSH接続

> vagrant ssh

Ubuntuの日本語化

$ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc
$ localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
// パスワードを入力
$ source /etc/default/locale
$ echo $LANG
ja_JP.UTF-8

Ubuntuの諸々アップデート

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get -y autoclean
sudo init 6
// 再起動

MySQLインストール

sudo apt-get install mysql-server
// rootのパスワード設定

■よく使うコマンド

MySQLバージョン確認

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

MySQLにrootユーザでログイン

$ mysql -u root -p
// パスワードを入力

MySQLの状態確認

$ mysqladmin ping -u root -p
Enter password:
mysqld is alive

■Workbenchの設定

VagrantSSH接続中であればexitしておく
Workbenchを起動したらAdd Connectionsをクリックして以下画像のように設定 f:id:ekCraft:20180811145207p:plain

f:id:ekCraft:20180811145238p:plain

VM上のMySQLに接続できました。 f:id:ekCraft:20180811152507p:plain

■参考サイト

proengineer.internous.co.jp

※日本語化はかかる手間と得られる恩恵が見合わない気がするのでやりませんでした。

Android Studio 2.0をインストール〜日本語化

4月8日、Android Studio 2.0が正式リリースされたとのことで、早速インストールしてみました。

getnews.jp

 

環境



MacBook Proでも良かったのですが、すでにXcodeEclipseが入っているので、今回はWindows10を導入したLaVie LL750/Lを使います。

f:id:ekCraft:20160409232850p:plain

LaVie LL750/LにWindows10を導入した記事はこちら↓

ekcraft.hatenablog.com

 

 

JDKJava Development Kit)をインストール


JDKJava実行環境)がインストールされていない場合、Android Studioをインストールする前に、先にJDKのインストールが必要です。

 

OracleのダウンロードページよりプラットフォームにあったJDKを選択しましょう。

Java SE Development Kit 8 - Downloads

 

私の場合は一番下のWindows x64版になります。Accept Licence Agreementにチェックを入れてクリックするとダウンロードできます。

f:id:ekCraft:20160410094836p:plain

ダウンロードが終わったら、パッケージを開いてインストーラの指示に従ってインストールを進めます。

 

JDKのインストールについては、下記記事がわかりやすくまとめてありとても参考になります。

qiita.com

 

環境変数の設定


ここが私のつまづきポイントでしたので少々くどめに書きます。

 

Macで以前インストールした時は何も考えずにどんどん進めても問題なかったように記憶しているのですが、Windowsの場合、この作業をしないと後でなんかうまくいかなくなります。よく見るとAndroid Studioをダウンロードした後に遷移するInstall Android Studioのページに書いてあるんですが、スルーしてしまっていました。

f:id:ekCraft:20160410095232p:plain

 

まずWindowsボタンを右クリックして出てくるメニューからシステムを選択、システムの詳細設定をクリックします。

f:id:ekCraft:20160409233806p:plain

詳細設定タブの環境変数をクリックします。

f:id:ekCraft:20160409234302p:plain


システム環境変数(またはユーザー環境変数)の新規をクリックします。

f:id:ekCraft:20160424164010p:plain

変数名にJAVA_HOME、変数値に先ほどインストールしたJDKのいる場所を指定します。特に自分で保存先を指定してない限りはProgram Files¥Javaの中にいるんじゃないかなと思います。

f:id:ekCraft:20160424164115p:plain

 以上で環境変数の設定は終わりです。

 

2016.4.24追記:

特に理由がなければ、システム環境変数を選択するのが無難なようなので、一部修正しました。(下記記事参照)

takelab.sub.jp


 

Android Studioのインストール


下記のリンク先からAndroid Studioをダウンロードします。

Download Android Studio and SDK Tools | Android Developers

f:id:ekCraft:20160410000214p:plain

なお、記事執筆時は日本語のページだと旧バージョンのダウンロードページに飛んでしまうようです。DOWNLOAD ANDROID STUDIO 2.0と書かれていない場合は、ページ右下のドロップダウンリストからEnglishを選択してみて下さい。

ダウンロードが終わったら、インストーラの指示に従ってインストールを進めます。

f:id:ekCraft:20160409235815p:plain

JDKのインストールと環境変数が正しく設定されていればこちらも特につまづくポイントはないかと思います。カスタムしてインストールもできるよ〜とかなんか色々聞かれますが私の場合は次へ次へと進んでいくだけで大丈夫でした。

 

Hello Worldアプリを作る


Start a new Android Studio projectをクリックします。

f:id:ekCraft:20160410000857p:plain

Application nameとCompany Domainを入力します。とりあえずそのままでも大丈夫だと思いますが適当に名前をつけておきました。

f:id:ekCraft:20160410000943p:plain

Phone and Tabletにチェックが入っていることを確認します。Minimum SDKはとりあえず自分の持っている端末の環境に合わせてKitKatにしておきました。

f:id:ekCraft:20160410001211p:plain

Empty Activityが選択されていることを確認の上Nextをクリック。

f:id:ekCraft:20160410001435p:plain

で、Finishを押すとビルドやら何やらごにょごにょ始まります。かなり時間がかかるので気長に待ちましょう。

f:id:ekCraft:20160410001553p:plain

出ましたよー!Hello world!こちらこそ!

f:id:ekCraft:20160410001616p:plain

いやー、満足しました。w

 

日本語化について(追記あり)


version1.xの時のように日本語化できるかどうか試してみたのですが、残念ながらresources_jp.jarファイルをlib配下に置くやり方(下記記事参照)だとエラーが出てしまいうまくいきませんでした。

androidstudio.hatenablog.com

日本語化に成功した方がいらっしゃいましたら、ぜひ教えていただきたいです。

私も今後いじくってみて、もしできたらまたここに追記しようと思います。

 

2016.6.4 追記:

SushiSukiyakiSumoさんが、Andriod Studio 2.0に対応したresources_jp.jarファイルを公開されています。私の環境でも日本語化することができましたのでご紹介します。

Android Studio 2.0 を日本語化してみた | 寿司すき焼き相撲

わかりやすいYouTube動画もあります。感謝。

【Swift】NSUserDefaultsでデータを保存する

ゲーム製作の中でスコアのランキングをInt型の配列で作ったのですが、そのままではアプリを終了すると(当然ですが)消えてしまいます。再度アプリを立ち上げた時、前回のスコアランキングが保持されている仕様にしたく、例によってネットで色々と調べまわり、NSUserDefaultsを使ってデータを保存するという方法をとりました。また、その中で参考サイトのサンプルプログラム通りにプログラムしてもうまくいかなかった部分(特に下記手順4)は、エラーが出ず、期待した振る舞いをしてくれるところまでなんとか手探りで修正しました。

もっと良い書き方をご存知でしたら、是非教えて頂きたいです。

環境


Swift 2
Xcode 7.2

手順


  1. 保存するデータをつくる。

    var scores = [0,0,0,0,0,0]

    ※今回はInt型、6要素の配列としました。

  2. 利用するクラスの中でNSUserDefaultsのインスタンスをつくる。

    let ud = NSUserDefaults.standardUserDefaults()

  3. データを書き込みたい場所に以下のコードを書く。

    ud.setObject(scores, forKey: "scoresKey")
    ud.synchronize()

  4. データを読み込みたい場所に以下のコードを書く。

    if ud.objectForKey("scoresKey") != nil {
    scores = ud.objectForKey("scoresKey") as! [Int]
    }

  5. 保存されたデータを削除したい場所に以下のコードを書く。

    ud.removeObjectForKey("scoresKey")

参考サイト


swift-salaryman.com

qiita.com

いつもありがとうございます。