投稿

5月, 2020の投稿を表示しています

CentOS7 + Subversion + SSL(certbot)

CentOS7にSubversionを設定したときの覚書。 今回はWebSVNをインストールして、コマンドを打たなくてもリポジトリを管理できる環境を構築してみた。
環境: CentOS 7.8, Subversion 1.10.6
1. Subversionをインストール前にyum経由でインストールしたリポジトリを流用する。 # vi /etc/yum.repos.d/WANdisco-svn.repo [WANdisco-svn110] name=WANdisco SVN Repo 1.10 enabled=1 baseurl=http://opensource.wandisco.com/centos/7/svn-1.10/RPMS/$basearch/ gpgcheck=1 gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
インストール実行。dnfはyumとほぼ同じ。 # dnf install subversion subversion-perl subversion-python subversion-tools
2.Apache + mod_dav_svnをインストールyum経由でインストール # dnf install httpd mod_dav_svn
リポジトリ用ディレクトリを作って権限設定 # mkdir /home/svn # chown apache. /home/svn/
apacheの設定。アドミンのメールアドレスを変更。 # less /etc/httpd/conf/httpd.conf ServerAdmin info@dksg.co.jp
起動、自動起動ON、確認 # systemctl start httpd # systemctl enable httpd # systemctl list-unit-files -t service
インストール時に生成されたconfは別ディレクトリへ # cd /etc/httpd/conf.d/ # mkdir bak # mv *.conf bak/
svn用confファイルを作成 # vi 01_svn.conf # Needed to do Subversion Apache server. LoadModule dav_svn_module     modules/mod_dav…

WindowsのChrome上のTextareaやGmailでEmacsのキーバインドを使いたい

イメージ
Happy Hacking Keyboard Professional HYBRID Type-Sの英語配列を買ってWindows10に設定したときの覚書。
HHKBはカーソルキーやHome, Endがない(Fnとの組合せ)ので、Emacsのキーバインドが使えないとストレスが溜まる。 ちなみにMacだとOSでサポートしているのでHHKBと相性がいい。

HHKBの設定 SW1:ON, SW2:OFFでスペース右の◇をWindowsキーにするSW3:ONでDeleteをBackSpaceにするSW4:ONでスペース左の◇をFnにする(キーマップでFnを別のキーに割り当てるため)Microsoft IMEの設定でCtrl+SpaceでIMEのON/OFFを切り替え可能に公式キーマップ変更ツールで最下部のキー配置を変更(下記画像参照)
Keyhacのインストール入力したキーバインドを柔軟に設定可能にする常駐ソフト。作った人天才。 craftware - Keyhac (日本語)
下記設定でconfig.pyを上書きするととりあえず良い感じになる。 smzht/fakeymacs: Emacs-like key bindings for Keyhac
これを元に使いながらカスタマイズしていく。 GitHub上でForkしておく。 C:> cd C:\Users\Daiki\AppData\Roaming\Keyhac C:> git init C:> git remote add origin git@github.com:DaikiSuganuma/fakeymacs.git C:> git fetch origin C:> git reset --hard origin/master
常駐しているKeyhacを右クリックして「設定のリロード」。 ある程度カスタマイズしたらGit pullする。 C:> git add --all C:> git commit -m 'Add insert_row function, Disable some key-bind.' C:> git push origin master
私のカスタマイズ例はGitHubで。 DaikiSuganuma/fakeymacs: Emacs-like key bindings …

【WordPress】投稿一覧をコメントの日付を含めて最新のもので並び替える

WordPress上に掲示板プラグインを開発しているときの覚書。
環境: WordPress 5.4.1
投稿一覧を表示するときに最近コメントがあったものを上にもってきたい。 デフォルトではできないので、どこかにHookしてorder by句を直書きする必要がある。
WP_Queryのソースコードを読んでみると、「posts_orderby」にadd_filterすればいけそう。
フック関数のコード例 function group_forum_posts_orderby($orderby, $query) { if (empty($query->query['orderby'])) { return $orderby; }
if ($query->query['orderby'] != 'active') { return $orderby; }
global $wpdb;
// Latest comment date $sql = []; $sql[] = "("; $sql[] = "SELECT comment_date"; $sql[] = "  FROM {$wpdb->comments}"; $sql[] = " WHERE comment_post_ID = {$wpdb->posts}.ID"; $sql[] = "   And comment_approved = 1"; $sql[] = " ORDER By comment_date DESC"; $sql[] = " LIMIT 1"; $sql[] = ")";
return "COALESCE(" . implode("", $sql) . ", {$wpdb->posts}.post_modified) DESC"; } add_filter('posts_orderby', 'group_forum_posts_orderby', 10, 2);
呼び出すときはこんな感じ。 new WP_Query([ 'o…

CentOSのgit設定(GitHubからパスフレーズなしでclone/push)

CentOS上でGitHubのプライベートリポジトリをGit cloneしたときの覚書。
環境: CentOS 7.8, Git 2.22.3
GitHub公式サイトヘルプを参考に Generating a new SSH key and adding it to the ssh-agent - GitHub HelpまずはCentOS上で鍵を生成する。 メールは一応GitHubのアカウントと合わせておく。 # ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
このときにパスフレーズは入力しない。 パスフレーズを入れるとgit pull/pushする度に入力が必要になる。
デフォルトで公開鍵(id_rsa.pub)と秘密鍵(id_rsa)が~/.ssh/に作成される。 分かりやすい名前に変更。 # cd ~/.ssh/ # mv id_rsa id_rsa.github # mv id_rsa.pub id_rsa.github.pub
gitで使用する鍵ファイルを指定 # less config Host github.com         IdentityFile ~/.ssh/id_rsa.github         User git
gitの設定は終わり。
GitHubへログインしてメニューから Settings -> SSH and GPG keys 「New SSH key」でKeyに公開鍵の値を貼り付ける。 タイトルは生成した仮想マシンのホスト名を入れといた。
実際にプライベートリポジトリを作ってgit clone/pushを試してみる。

【関連記事】 CentOS7の環境でGitをソースからビルドWindowsのPhpStormでGitのSSH設定WindowsにGitの環境を構築(msysGit + TortoiseGit)してGitLabにPush

ドキュメント管理はSubversion、ソースコード管理はGit

「リモートワークでもバージョン管理システムを使うと幸せになれるよ」と教えるときに調査したときの覚書。
結論からいうと、IT技術職のソースコード管理はGitが便利。 それ以外のデザイナーや営業などのドキュメント管理はSubversionが便利。
以下特徴など
1.Subversion特徴 集中型のバージョン管理システム。
→ 集中管理サーバーが壊れれば変更履歴ログもなくなる(今やサーバー側が多重化されているのでこの心配はほとんどない)
→ ユーザーはファイルの最新版のみ持っている(Gitに比べるとディスク容量が少なくて済む)2000年初版。ネットワークストレージ(NAS)をクラウド型にしたイメージ。
→ 誰でも直感的に使える。TortoiseSVNで技術職じゃなくても使ってくれる。ファイルのロック機能で、自分が編集していることを周知することができる。フォルダごとにアクセス権限を設定できる。
使ってみての感想 昔MicrosoftのSourceSafeを使っていた人はだいたいこれに移行。Subversionのマージ機能で地獄を見た人多数。運用ルールを定めればソースコード管理も問題ない。お堅い担当者が自分たちでガチガチに権限設定して集中管理したいという場合はSubversionから離れられない。

2.Git特徴 分散型のバージョン管理システム。
→ 各ユーザーは全ての変更履歴ログを持っている(多くのディスク容量が必要)。
→ どこか1つでも生き残っていれば変更履歴まで復元できる。2005年初版。Linuxカーネルのソースコード管理のために開発された。(テキストの)マージ機能がとても優秀で動作が軽い。Gitの考え方を理解するのに勉強が必要
→ Subversionと比較して学習コストが高い
→ GitHubがGitの機能を見やすく管理できるインターフェイスを提供して一気に広まった。GitHubやGitLabでプライベートリポジトリが簡単無料で作れる。GitHubではSubversionも使える(参考:GitHub で Subversion を使う - GitHub ヘルプ
使ってみての感想 新機能を開発するときにブランチ作って、機能が完成したらマージすることが安心してできる。
→ Subversionでこれを行うと地獄をみる(運用ルールで回避可能)今やオープンソースプロジェクトはGitHubで管理するのが当…

CentOS7上でFontForgeの最新をビルド(途中で諦めた)

SVGからWebフォントをビルドするときにYUM(DNF)経由でインストールしたFontForgeのバージョンが古い(20120731b)ので最新をビルドしたときの覚書。
環境: CentOS 7.8
GitHubを参考に GitHub | fontforge/INSTALL.md at master · fontforge/fontforgeCMake guide for FontForge · fontforge/fontforge Wiki
ビルドツールをインストール。cmakeは3.5以上が必要。 # dnf install cmake3 ninja-build
CMakeLists.txtを見ながら必須パッケージをインストール。 # dnf install freetype-devel gettext-devel glib2-devel libticonv-devel libxml2-devel zlib-devel
freetypeのバージョンは2.8 FontForgeよりFreeTypeのバージョンの方が大事な気がしてきた。
オプションのライブラリをインストール # dnf install libspiro-devel libuninameslist-devel libjpeg-turbo-devel libpng-devel readline-devel libtiff-devel
ソースをGit cloneしてビルド # cd /opt/software/ # git clone https://github.com/fontforge/fontforge.git # cd fontforge/ # git checkout 20200314 # fontforge/ # mkdir build && cd build # cmake3 -GNinja -ENABLE_GUI=off ..
develをインストールしているのに「"Freetype::Freetype" but the target was not found.」と出力される。 freetypeのヘッダーファイルの置き場所を探す # find /usr/ -name freetype* /usr/bin/freetype-config /usr/lib64/girepository-1.0/…

【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール

CentOS7の環境でfontcustomをインストールしたときの覚書。 ちなみにIcoMoonを利用すれば無料で簡単に生成できる。
Bootstrap IconsのsvgがIcoMoonだと潰れてしまうのでCentOS7上でビルドしてみた。 (おそらくfontforgeが内部で使っているfreetypeかlibxml2のバージョンが原因だと思う)
環境: CentOS 7.8, ruby 2.0.0 → 2.6.6, fontforge 20120731

公式サイトは古いのでGitHubを参考に Font CustomGitHub | FontCustom/fontcustom: Generate custom icon webfonts from the comfort of the command line. fontcustomが利用するライブラリをインストールおよびビルド。 # cd /opt/software/ # dnf install fontforge # git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli && cd sfnt2woff-zopfli && make && mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff # git clone --recursive https://github.com/google/woff2.git && cd woff2 && make clean all && sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
Rubyのパッケージ管理システムgemでfontcustomをインストール。 # gem install fontcustom ERROR:  Error installing fontcustom:         ERROR: Failed to build gem native extension.
    /usr/bin/ruby extconf.rb m…

CentOS7の環境にRuby2.6をインストール

YUMのRubyが古いので最新のRubyをインストールしたときの覚書。
環境: CentOS 7.8
1.rbenvをインストール公式サイトを参考に GitHub | rbenv/rbenv: Groom your app’s Ruby environment
git cloneしてビルドする。 # git clone https://github.com/rbenv/rbenv.git ~/.rbenv # cd ~/.rbenv && src/configure && make -C src
rbenvの初期化スクリプトをBashに追加する。 # echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile # ~/.rbenv/bin/rbenv init # echo 'eval "$(rbenv init -)"'  >> ~/.bash_profile
ログインスクリプトを読み込みし直し # source ~/.bash_profile
確認 # rbenv --version rbenv 1.1.2-30-gc879cb0
2.ruby-buildをインストールrbenv単体ではRuby自体のインストールをサポートしていないのでプラグインをインストールする。 GitHub | rbenv/ruby-build: Compile and install Ruby pluginsディレクトリに配置するだけ。 # mkdir -p ~/.rbenv/plugins # git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

3.Rubyをインストールインストール可能なバージョンを一覧表示 # rbenv install -l
現在の安定版をインストール # rbenv install 2.6.6 # rbenv global 2.6.6
確認 # ruby -v ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux] 他のユーザーで使えないので、ruby(gem)コマ…

法人用Apple IDをApple Business Managerで管理

会社用Mac miniを購入した際に法人用Apple IDで管理しようとしたときの覚書。
今はApple Business Managerで法人用デバイスを一括管理する仕組みがある。 ビジネス - IT - Apple(日本)
Apple Business ManagerとはiPhone, iPad, Macを管理下に置いて機能制限を設定できる。 アプリをリモートで一括インストールもできる。 Apple製品を従業員に貸与してリモートワークしてもらう時に便利そう。 Apple Business Managerとは - Apple サポート
登録方法登録する際はDUNS Numberが必要。 会社名もDUNS Numberで一致していないと登録できない。 (DUNS Numberを入れると自動補完される) 取得、修正する場合は前の記事を参考に。 DUNS Numberを取得・住所変更
Apple Business Managerを使えるようになるまでの流れ 公式サイトから組織の登録祝日明けの2日後の午前中に確認電話が掛かってきた(電話に出れず)。「連絡取れない」とAppleからメールが来たので、こちらから電話。本人確認と組織の契約の判断ができる人か?と聞かれる。
電話したときに自動音声で対応言語を聞かれるすぐに登録確認のメールが送られてくる。管理者用Apple IDを作成
使ってみた感想など App Storeは法人用AppleIDで使えない。個人用AppleIDを登録しないとアップデートできない。iPadのSidebarはMacとiPad共に個人用AppleIDでないと使えないApple Configurator 2を使うとiOSデバイス管理が捗るらしい。


【関連記事】 DUNS Numberを取得・住所変更

CentOS7の環境でGitをソースからビルド

git公式サイトのビルド方法がYUMからDNFに変更されていたので、やってみたときの覚書。
環境: CentOS 7.8.2003
ちなみにIUSリポジトリを使うとYUM経由でgit2系を簡単インストールできる(この記事の最後に記載)。 IUS - Setup
1.ソースをダウンロードしてビルド公式サイトに従ってビルドツールをインストール。 # dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel
依存関係でgit1系がインストールされた。 (追記:dh-autoreconfはなくてもビルドできたので、dh-autoreconfをインストールしなければ古いgitはインストールされない)
gitのソースをダウンロードして解凍。 # mkdir /opt/software # cd /opt/software # curl -O https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz # tar -xzvf git-2.26.2.tar.gz
ビルド実行 # cd git-2.26.2 # make configure # ./configure --prefix=/usr # make all # make install
確認 # git --version git version 2.26.2
gitの環境設定 # git config --global user.name "Hoge" # git config --global user.email "hoge@company.co.jp"

2.gitリポジトリをcloneしてアップデート環境を作っておくgit cloneでダウンロードされるサイズは600MBくらい。 必要になったときでいいと思う。 # cd /opt/software/ # git clone git://git.kernel.org/pub/scm/git/git.git # cd git # git tag # git checkout v2.26.2
ビルドコマンドは同じ。 # make configure # ./configure …