Amazon Linux のPHPを 7.2から7.4に上げた

WordPressがおすすめしてくるので上げてみた。
無停止でOK

まずは何も考えずに

# php -v
PHP 7.2.27 (cli) (built: Feb 18 2020 23:49:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# yum update -y
[省略]
PHP 7.2.34になった。
# amazon-linux-extras enable php7.4
Refusing because php7.4 could cause an invalid combination.

はい、失敗。
依存を無効化したりする必要があるらしい。

# amazon-linux-extras disable lamp-mariadb10.2-php7.2 php7.2
# amazon-linux-extras enable php7.4
[省略]
Now you can install:
 # yum clean metadata
 # yum install php-cli php-pdo php-fpm php-json php-mysqlnd
# yum clean all
# yum update
[省略]
=============================================================================================================================================
 Package                          アーキテクチャー           バージョン                          リポジトリー                           容量
=============================================================================================================================================
更新します:
 jemalloc                         x86_64                     3.6.0-1.el7                         epel                                  105 k
 php-cli                          x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     4.9 M
 php-common                       x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     1.1 M
 php-devel                        x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     1.3 M
 php-fpm                          x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     1.7 M
 php-gd                           x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     182 k
 php-json                         x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                      71 k
 php-mbstring                     x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     514 k
 php-mysqlnd                      x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     241 k
 php-pdo                          x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     134 k
 php-xml                          x86_64                     7.4.21-1.amzn2                      amzn2extra-php7.4                     199 k

トランザクションの要約
=============================================================================================================================================
更新  11 パッケージ

総ダウンロード容量: 10 M
Is this ok [y/d/N]: y
[省略]
更新:
  jemalloc.x86_64 0:3.6.0-1.el7                php-cli.x86_64 0:7.4.21-1.amzn2                 php-common.x86_64 0:7.4.21-1.amzn2            
  php-devel.x86_64 0:7.4.21-1.amzn2            php-fpm.x86_64 0:7.4.21-1.amzn2                 php-gd.x86_64 0:7.4.21-1.amzn2                
  php-json.x86_64 0:7.4.21-1.amzn2             php-mbstring.x86_64 0:7.4.21-1.amzn2            php-mysqlnd.x86_64 0:7.4.21-1.amzn2           
  php-pdo.x86_64 0:7.4.21-1.amzn2              php-xml.x86_64 0:7.4.21-1.amzn2                

完了しました!

# php -v
PHP 7.4.21 (cli) (built: Jul  7 2021 17:35:08) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

お疲れ様でした。

Ubuntu 20.04 で bundle install でハマったのでメモ

$ bundle install
...
Fetching mysql2 0.5.3
Installing mysql2 0.5.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/' succeeds before
bundling.

In Gemfile:
mysql2

ググっていろいろやりましたが、
結局こちらのインストールで解消しました。
$ sudo apt install libmysqlclient-dev

mysql docker をワンライナーで使う

毎回調べたくないのでメモ

docker run --name mysql -v ${PWD}/data:/var/lib/mysql \
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=pass -e TZ=Asia/Tokyo \
-d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

接続

mysql -u root -ppass -h 127.0.0.1

Ubuntu 20.04 LTS に rbenv をインストールした

結論から言うと、公式サイトの通りでOKでした。

# install lib
$ sudo apt-get install -y git curl libssl-dev libreadline-dev zlib1g-dev

# install rbenv
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ ~/.rbenv/bin/rbenv init
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

# restart terminal

# install "rbenv install"
$ mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

# check
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

Eclipse本体のバージョンアップ方法

以前の記事で簡単なものは対応できますが、
プラグイン等が多いと対応が難しいので書き直し。
Eclipse本体のアップデート 3.6→3.7へ(4.3までのリンクを追記)

まず、事前にまるっとバックアップを取ってください。

基本的なやり方は、上げたいバージョンを追加
Install/Update – Available Software
4.4.x releases http://download.eclipse.org/eclipse/updates/4.4

で、4.3(kepler)から4.4(luna)にあげることを例にとると、
http://xxx/xxx/xxx/kaplerを
http://xxx/xxx/xxx/lunaに変えたものを追加
http://xxx/xxx/xxx/4.3を
http://xxx/xxx/xxx/4.4に変えたものを追加
アップデート完了まで、今までのものを削除とOFFにしないことが重要

で、アップデートをかけると、たいていはうまくいく。

[Knockout] Knockout.js ではまったりするパターン

続々更新予定

  • バインドしてるboolean変数を括弧なしで判定しちゃう
    ⇒括弧なしだとfunctionが返ってくるので、if(hasCome) なんてしてると爆死
     正解は if (hasCome())
  • クリックバインドに処理したい内容をそのまま書いちゃう
    ⇒funtion(){} でくくってあげないと、表示時にいきなり実行されて爆死

[Java] こんなコードは嫌だ

常に更新予定

糞コード関連

  • 同じ処理を複数の箇所に書く
  • 継承の概念がなく、同じ処理が複数のクラスに存在する。
  • 参照渡しでデータを詰めてるUtilクラスのvoidメソッド
  • 無駄にpublic
  • データが定義ファイルに外だしされているのに、コメントが具体的になってる
  • 特例の処理なのにコメント一つない

ソース管理関連

  • 使わなくなった処理がコメントアウトされてる⇒削除しなさい
  • 処理変更の時に異なる名称でファイルを作り直して、元のファイルは消さない。