コンピュータ/ソフトウェア関連Tips

開発ツールのインストール(FreeBSD版)

作成日: Oct 18, 2020
更新日: Oct 18, 2020
カテゴリー: FreeBSD タグ: FreeBSD

FreeBSD 12.2 RC2 に開発ツールをインストールしたときのメモです。

nkf

$ sudo pkg install ja-nkf

wget

$ sudo pkg install wget

zfsnap2

$ sudo pkg install zfsnap2

10分ごとのスナップショットを1ヶ月保存する。/etc/crontabを編集。

# zfs snapshot
*/10    *       *       *       *       root    /usr/local/sbin/zfsnap snapshot tank/data

リスタートコマンドを忘れるので、/etc/crontabの末尾に以下を記載しておく。

# execute following commnad after editting this file.
# sudo /etc/rc.d/cron restart

スナップショットは、以下のように確認できる。

$ zfs list -t snapshot
NAME                           USED  AVAIL  REFER  MOUNTPOINT
tank@2020-10-18_18.24.05--1m      0      -    24K  -

Python

$ sudo pkg install python3
$ sudo pkg install py37-pip

PHP

$ sudo pkg install php74 php74-mbstring mod_php74

$ cd /usr/local/etc
$ sudo cp php.ini-production php.ini
$ sudo chmod 600 php.ini

以下のWebページのとおり、Apache設定ファイルの修正。

Apache 2.4のインストール

先にApacheをインストール済の場合は、Apacheを再起動。

$ sudo /usr/local/etc/rc.d/apache24 restart

node.js、npm

$ sudo pkg install npm

以下がインストールされる。

New packages to be INSTALLED:
        brotli: 1.0.9,1
        gmake: 4.3_2
        node: 14.13.0
        npm: 6.14.8

google-home-notifier

$ sudo pkg install mDNSResponder mDNSResponder_nss
$ cd /tank/data
$ npm install google-home-notifier

-g により、npmのインストール場所にパッケージをインストールすることができるが、rootでインストールしても失敗してしまったので、一般ユーザ(/tank/dataの所有者)で実行した。結果は以下。

$ npm install google-home-notifier
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported

> mdns@2.5.1 install /tank/data/node_modules/mdns
> node-gyp rebuild

gmake: ディレクトリ '/tank/data/node_modules/mdns/build' に入ります
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_sd.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_browse.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_enumerate_domains.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_get_addr_info.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_process_result.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_ref.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_ref_deallocate.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_ref_sock_fd.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_register.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_resolve.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_service_update_record.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/mdns_utils.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/network_interface.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/socket_watcher.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_ref.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_create.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_deallocate.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_set_value.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_get_length.o
  CXX(target) Release/obj.target/dns_sd_bindings/src/txt_record_buffer_to_object.o
  SOLINK_MODULE(target) Release/obj.target/dns_sd_bindings.node
  COPY Release/dns_sd_bindings.node
gmake: ディレクトリ '/tank/data/node_modules/mdns/build' から出ます

> protobufjs@6.10.1 postinstall /tank/data/node_modules/protobufjs
> node scripts/postinstall


> ngrok@2.3.0 postinstall /tank/data/node_modules/ngrok
> node ./postinstall.js

ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-freebsd-amd64.zip
ngrok - downloading progress: 13695745/13695745
ngrok - binary downloaded to /home/wizard/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1mcmVlYnNkLWFtZDY0LnppcA==.zip
ngrok - unpacking binary
ngrok - binary unpacked to /tank/data/node_modules/ngrok/bin/ngrok
npm WARN saveError ENOENT: no such file or directory, open '/tank/data/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/tank/data/package.json'
npm WARN data No description
npm WARN data No repository field.
npm WARN data No README data
npm WARN data No license field.

+ google-home-notifier@1.2.0
added 142 packages from 168 contributors and audited 142 packages in 120.497s

1 package is looking for funding
  run `npm fund` for details

found 1 low severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

portaudio

$ sudo pkg install portaudio

pyaudio (Python Package)

https://stackoverflow.com/questions/33513522/when-installing-pyaudio-pip-cannot-find-portaudio-h-in-usr-local-include を参考にした。

$ sudo pip install --global-option='build_ext' --global-option='-I/usr/local/include' --global-option='-L/usr/local/lib' pyaudio

/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py:235: UserWarning: Disabling all use of wheels due to the use of --build-option / --global-option / --install-option.
  cmdoptions.check_install_build_global(options)
Collecting pyaudio
  Using cached PyAudio-0.2.11.tar.gz (37 kB)
Skipping wheel build for pyaudio, due to binaries being disabled for it.
Installing collected packages: pyaudio
    Running setup.py install for pyaudio ... done
Successfully installed pyaudio-0.2.11

requests (Python Package)

$ sudo pip install requests

mdns有効化

$ sudo vi /etc/nsswitch.conf

hosts: files dns
↓
hosts: files mdns dns
$ sudo vi /etc/rc.conf

mdnsd_enable="YES"
mdnsresponder_enable="YES"
$ sudo service mdnsd start

Google home mini で再生

$ ./playgh.js 192.168.0.34 "http://192.168.0.193/voice/hello.wav"
Device notified

wol

$ sudo pkg install wol
$ sudo pkg install wakeonlan

wakeonlan の実行コマンドはwake。ただし、どちらも起動できなかった。

$ sudo ifconfig bge0 wol wol_ucast wol_mcast wol_magic

ダメ