カテゴリー: FreeBSD

  • FreeBSDのメジャーアップグレードでpkgが使えなくなった。

    FreeBSD 12.2 にアップグレードした後、pkgを使おうとしたところ、「libarchive.so.6」が見つからないとエラーになった。

    root@ray:~ # freebsd-version
    12.2-RELEASE-p10
    root@ray:~ # pkg update
    ld-elf.so.1: Shared object "libarchive.so.6" not found, required by "pkg"
    root@ray:~ # pkg
    ld-elf.so.1: Shared object "libarchive.so.6" not found, required by "pkg"
    root@ray:~ # 

    対応として、`pkg-static install -f pkg ` でパッケージを更新(強制インストール)した。これで、pkgがつかえるようになったので、pkg update , pkg upgrade で他の最新の状態にした。

    root@ray:~ # pkg-static install -f pkg
    pkg-static: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
    Updating FreeBSD repository catalogue...
    pkg-static: Repository FreeBSD has a wrong packagesite, need to re-create database
    Fetching meta.conf: 100%    163 B   0.2kB/s    00:01    
    Fetching packagesite.txz: 100%    6 MiB   6.6MB/s    00:01    
    Processing entries: 100%
    FreeBSD repository update completed. 30850 packages processed.
    All repositories are up to date.
    The following 1 package(s) will be affected (of 0 checked):
    
    Installed packages to be REINSTALLED:
    	pkg-1.16.3 (ABI changed: 'freebsd:11:x86:64' -> 'freebsd:12:x86:64')
    
    Number of packages to be reinstalled: 1
    
    The process will require 16 MiB more space.
    7 MiB to be downloaded.
    
    Proceed with this action? [y/N]: y
    [1/1] Fetching pkg-1.16.3.txz: 100%    7 MiB   7.6MB/s    00:01    
    Checking integrity... done (0 conflicting)
    [1/1] Reinstalling pkg-1.16.3...
    [1/1] Extracting pkg-1.16.3: 100%
    root@ray:~ # 

    参考

    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239498

  • FreeBSD 11.4 からFreeBSD 12.2 にメジャーアップグレードしたときのメモ

    FreeBSD 11.4 Releaseのサポートが切れるので、FreeBSD 12.2 Releaseにアップグレードした。その時のメモ。

    最初に現在バージョンを確認(一応)。

    freebsd-version

    アップグレードするバージョンを、12.2で指定。必要なパッチをダウンロード。

    freebsd-update -r 12.2-RELEASE upgrade

    インストールを実施。

    /usr/sbin/freebsd-update install

    インストールの最後に再起動の指示があるので、OSを再起動。再起動後にインストールの指示もあり。

    shutdown -r now

    再度、インストールを実施。

    /usr/sbin/freebsd-update install

    1つ前のインストールの最後に、もう一度インストールの指示があるので、再度インストールを実施。

    /usr/sbin/freebsd-update install

    これで、FreeBSD 12.2 Releaseへのアップグレードは、OSとしては終了。ここまでは、特にトラブルはなし。残りは、pkgの更新など(ここから先はトラブル続き)。

    アップグレードをしたときのログ。

    root@ray:~ # freebsd-version 
    11.4-RELEASE-p13
    root@ray:~ # free
    freebsd-update  freebsd-version freetype-config 
    root@ray:~ # freebsd-update -r 12.2-RELEASE upgrade
    src component not installed, skipped
    Looking up update.FreeBSD.org mirrors... 2 mirrors found.
    Fetching metadata signature for 11.4-RELEASE from update1.freebsd.org... done.
    Fetching metadata index... done.
    Fetching 1 metadata patches. done.
    Applying metadata patches... done.
    Inspecting system... done.
    
    The following components of FreeBSD seem to be installed:
    kernel/generic world/base world/lib32
    
    The following components of FreeBSD do not seem to be installed:
    kernel/generic-dbg world/base-dbg world/doc world/lib32-dbg
    
    Does this look reasonable (y/n)? 
    
    Fetching metadata signature for 12.2-RELEASE from update1.freebsd.org... done.
    Fetching metadata index... done.
    Fetching 1 metadata patches. done.
    Applying metadata patches... done.
    Fetching 1 metadata files... done.
    Inspecting system... done.
    Fetching files from 11.4-RELEASE for merging... done.
    Preparing to download files... done.
    Fetching 9212 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320....330....340....350....360....370....380....390....400....410....420....430....440....450....460....470....480....490....500....510....520....530....540....550....560....570....580....590....600....610....620....630....640....650....660....670....680....690....700....710....720....730....740....750....760....770....780....790....800....810....820....830....840....850....860....870....880....890....900....910....920....930....940....950....960....970....980....990....1000....1010....1020....1030....1040....1050....1060....1070....1080....1090....1100....1110....1120....1130....1140....1150....1160....1170....1180....1190....1200....1210....1220....1230....1240....1250....1260....1270....1280....1290....1300....1310....1320....1330....1340....1350....1360....1370....1380....1390....1400....1410....1420....1430....1440....1450....1460....1470....1480....1490....1500....1510....1520....1530....1540....1550....1560....1570....1580....1590....1600....1610....1620....1630....1640....1650....1660....1670....1680....1690....1700....1710....1720....1730....1740....1750....1760....1770....1780....1790....1800....1810....1820....1830....1840....1850....1860....1870....1880....1890....1900....1910....1920....1930....1940....1950....1960....1970....1980....1990....2000....2010....2020....2030....2040....2050....2060....2070....2080....2090....2100....2110....2120....2130....2140....2150....2160....2170....2180....2190....2200....2210....2220....2230....2240....2250....2260....2270....2280....2290....2300....2310....2320....2330....2340....2350....2360....2370....2380....2390....2400....2410....2420....2430....2440....2450....2460....2470....2480....2490....2500....2510....2520....2530....2540....2550....2560....2570....2580....2590....2600....2610....2620....2630....2640....2650....2660....2670....2680....2690....2700....2710....2720....2730....2740....2750....2760....2770....2780....2790....2800....2810....2820....2830....2840....2850....2860....2870....2880....2890....2900....2910....2920....2930....2940....2950....2960....2970....2980....2990....3000....3010....3020....3030....3040....3050....3060....3070....3080....3090....3100....3110....3120....3130....3140....3150....3160....3170....3180....3190....3200....3210....3220....3230....3240....3250....3260....3270....3280....3290....3300....3310....3320....3330....3340....3350....3360....3370....3380....3390....3400....3410....3420....3430....3440....3450....3460....3470....3480....3490....3500....3510....3520....3530....3540....3550....3560....3570....3580....3590....3600....3610....3620....3630....3640....3650....3660....3670....3680....3690....3700....3710....3720....3730....3740....3750....3760....3770....3780....3790....3800....3810....3820....3830....3840....3850....3860....3870....3880....3890....3900....3910....3920....3930....3940....3950....3960....3970....3980....3990....4000....4010....4020....4030....4040....4050....4060....4070....4080....4090....4100....4110....4120....4130....4140....4150....4160....4170....4180....4190....4200....4210....4220....4230....4240....4250....4260....4270....4280....4290....4300....4310....4320....4330....4340....4350....4360....4370....4380....4390....4400....4410....4420....4430....4440....4450....4460....4470....4480....4490....4500....4510....4520....4530....4540....4550....4560....4570....4580....4590....4600....4610....4620....4630....4640....4650....4660....4670....4680....4690....4700....4710....4720....4730....4740....4750....4760....4770....4780....4790....4800....4810....4820....4830....4840....4850....4860....4870....4880....4890....4900....4910....4920....4930....4940....4950....4960....4970....4980....4990....5000....5010....5020....5030....5040....5050....5060....5070....5080....5090....5100....5110....5120....5130....5140....5150....5160....5170....5180....5190....5200....5210....5220....5230....5240....5250....5260....5270....5280....5290....5300....5310....5320....5330....5340....5350....5360....5370....5380....5390....5400....5410....5420....5430....5440....5450....5460....5470....5480....5490....5500....5510....5520....5530....5540....5550....5560....5570....5580....5590....5600....5610....5620....5630....5640....5650....5660....5670....5680....5690....5700....5710....5720....5730....5740....5750....5760....5770....5780....5790....5800....5810....5820....5830....5840....5850....5860....5870....5880....5890....5900....5910....5920....5930....5940....5950....5960....5970....5980....5990....6000....6010....6020....6030....6040....6050....6060....6070....6080....6090....6100....6110....6120....6130....6140....6150....6160....6170....6180....6190....6200....6210....6220....6230....6240....6250....6260....6270....6280....6290....6300....6310....6320....6330....6340....6350....6360....6370....6380....6390....6400....6410....6420....6430....6440....6450....6460....6470....6480....6490....6500....6510....6520....6530....6540....6550....6560....6570....6580....6590....6600....6610....6620....6630....6640....6650....6660....6670....6680....6690....6700....6710....6720....6730....6740....6750....6760....6770....6780....6790....6800....6810....6820....6830....6840....6850....6860....6870....6880....6890....6900....6910....6920....6930....6940....6950....6960....6970....6980....6990....7000....7010....7020....7030....7040....7050....7060....7070....7080....7090....7100....7110....7120....7130....7140....7150....7160....7170....7180....7190....7200....7210....7220....7230....7240....7250....7260....7270....7280....7290....7300....7310....7320....7330....7340....7350....7360....7370....7380....7390....7400....7410....7420....7430....7440....7450....7460....7470....7480....7490....7500....7510....7520....7530....7540....7550....7560....7570....7580....7590....7600....7610....7620....7630....7640....7650....7660....7670....7680....7690....7700....7710....7720....7730....7740....7750....7760....7770....7780....7790....7800....7810....7820....7830....7840....7850....7860....7870....7880....7890....7900....7910....7920....7930....7940....7950....7960....7970....7980....7990....8000....8010....8020....8030....8040....8050....8060....8070....8080....8090....8100....8110....8120....8130....8140....8150....8160....8170....8180....8190....8200....8210....8220....8230....8240....8250....8260....8270....8280....8290....8300....8310....8320....8330....8340....8350....8360....8370....8380....8390....8400....8410....8420....8430....8440....8450....8460....8470....8480....8490....8500....8510....8520....8530....8540....8550....8560....8570....8580....8590....8600....8610....8620....8630....8640....8650....8660....8670....8680....8690....8700....8710....8720....8730....8740....8750....8760....8770....8780....8790....8800....8810....8820....8830....8840....8850....8860....8870....8880....8890....8900....8910....8920....8930....8940....8950....8960....8970....8980....8990....9000....9010....9020....9030....9040....9050....9060....9070....9080....9090....9100....9110....9120....9130....9140....9150....9160....9170....9180....9190....9200....9210. done.
    Applying patches... done.
    
    To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
    root@ray:~ # 
    root@ray:~ # /usr/sbin/freebsd-update install
    src component not installed, skipped
    Installing updates...
    Kernel updates have been installed.  Please reboot and run
    "/usr/sbin/freebsd-update install" again to finish installing updates.
    root@ray:~ # 
    root@ray:~ # 
    root@ray:~ # 
    root@ray:~ # shutdown -r now
    Shutdown NOW!
    shutdown: [pid 67592]
    root@ray:~ #                       
    
    
    root@ray:~ # /usr/sbin/freebsd-update install
    src component not installed, skipped
    Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
    Scanning //usr/share/certs/trusted for certificates...
    Scanning //usr/local/share/certs for certificates...
    
    Completing this upgrade requires removing old shared object files.
    Please rebuild all installed 3rd party software (e.g., programs
    installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
    again to finish installing updates.
    root@ray:~ # 
    root@ray:~ # 
    root@ray:~ # /usr/sbin/freebsd-update install
    src component not installed, skipped
    Installing updates...rmdir: ///var/db/etcupdate/current/usr/share/openssl/man/en.ISO8859-1: Directory not empty
    rmdir: ///var/db/etcupdate/current/usr/share/openssl/man: Directory not empty
    rmdir: ///var/db/etcupdate/current/usr/share/openssl: Directory not empty
    rmdir: ///var/db/etcupdate/current/usr/share/man/en.UTF-8: Directory not empty
    rmdir: ///var/db/etcupdate/current/usr/share/man/en.ISO8859-1: Directory not empty
    rmdir: ///var/db/etcupdate/current/usr/share/man: Directory not empty
     done.
    root@ray:~ # 
  • 現在のシェルの調べ方(カレントシェルの調べ方)

    現在のshell(current shell)を調べるのは、環境変数の$SHELL(または$shell)をechoで表示させる。

    $ echo $SHELL
    /bin/bash
    
    % echo $shell
    /bin/tcsh
    

    これの欠点としては、bashの上で、tcshを起動した場合、「echo $SHELL」で、bashを返してきてしまう。この時「echo $shell」を実行すると、tcshを返してくる。なので、多重起動させると、よくわからなくなってしまうこと。

    そんなときは、echo $0 も実行してみる。そうすると、現在、実行中のシェルを返してくれる。$0は、特殊な変数で、実行しているシェルスクリプトのファイルパスが格納されるとのこと。

    $ echo $0
    -bash
    

    参考: http://www.ksknet.net/cat24/0_1.html

  • pukiwikiで突然、pkwk_touch_fileのエラーが出た

    pukiwikiでページを更新したところ、画面が白くなり、何も表示されなくなった。ページを更新したところ、下記のエラーが表示された。更新したはずページは、中身が空っぽで表示されず。更新しても、下記のエラーが表示されるだけになった。

    pkwk_touch_file(): Invalid UID and (not writable for the directory or not a flie): recent.dat
    

    急に、これになったので、権限の問題ではない。単純に、ディスクがいっぱいでファイルの書き込みができなかったからだった。容量不足で書き込めていないので、”recent.dat”というファイルを探しても見つからない。

    ディスク上の不要なファイルを削除して、空き容量を作り、無事に書き込めるようになり、解決した。

  • drillコマンドでSPFレコードを確認する方法

    drillコマンドで、TXTレコードを表示することで、SPFレコードの設定が確認できる。 TXTレコードは、”-t txt “をオプションで指定する。

    dirll @dnsサーバ -t TXT ドメイン名
    

    ※ 使い方は、digコマンドと同じ。

    実行例。

    ~ % drill -t txt xenos.jp
    ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 46810
    ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    ;; QUESTION SECTION:
    ;; xenos.jp.    IN      TXT
    
    ;; ANSWER SECTION:
    xenos.jp.       120     IN      TXT     "v=spf1 include:_spf.google.com ~all"
    
    ;; AUTHORITY SECTION:
    
    ;; ADDITIONAL SECTION:
    
    ;; Query time: 44 msec
    ;; SERVER: 157.7.180.133
    ;; WHEN: Wed Dec 18 12:03:34 2019
    ;; MSG SIZE  rcvd: 74
    ~ %
    
  • Let’s Encryptの証明書更新に失敗していた話

    FreeBSDでLet’s Encryptを使ってWebサーバのSSL証明書を作っている。毎回、手作業で行うのはめんどくさいので、cronで自動的に実行させていた。自動更新させていたが、ある日、証明書の有効期限が切れているとブラウザが警告してきたので、調べたところ・・・pkgのアップデートを少し前にやったときに実行ファイルのバージョン(というかファイル名)が変わっていたようで、そのため、cronは実行されるがエラーになっていた模様。ついでにもともとシンボリックリンクだったはずだが、それも消えていた。

    もともと実行していたコマンド

    /usr/local/bin/certbot renew
    

    今のコマンド

    /usr/local/bin/certbot-2.7 renew
    

    凡ミス。pkgをアップデートするときは、気をつけないといけないな。

  • pkgでApacheを更新したら、WARNINGで起動せず

    FreeBSDのpkgで、まるっとアップデートしたら、Apache24が起動時に、WARNINGをはいて起動しなくなった。

    ■発生したエラー

    Mar 22 14:22:10 ray root: /etc/rc: WARNING: failed to start apache24
    Mar 22 14:22:10 ray kernel: pid 763 (httpd), uid 0: exited on signal 11 (core dumped)
    

    ■対応

    • OSの再起動したが、変わらず。
    • Apache24の起動も試したが変わらず。
    • 仕方ないので、一度、Apache24をアンインストール。依存していたパッケージもアンインストールされたので、mod_phpも再インストール。
       pkg delete apache24-2.4.29
       pkg install apache24-2.4.29
       pkg install mod_php56-5.6.32_1
      
    • 再インストール後、Apache24を起動させたところ、無事に起動した。
  • FreeBSD10でApache2.4でUser Dirの設定を行ったところ、エラーになり、User Dirが設定されない

    FreeBSD 10.3 で「/usr/local/etc/apache24/extra/httpd-userdir.conf」
    の内容を変更して、httpd.confに「Include etc/apache24/extra/httpd-userdir.conf」
    の設定をして、Apacheをリスタートさせたところ、
    以下のエラーをはいて、UserDir?は使用できなかった。

    root@hoge:/usr/local/etc/apache24 # service apache24 restart
    Performing sanity check on apache24 configuration:
    AH00526: Syntax error on line 10 of /usr/local/etc/apache24/extra/httpd-userdir.conf:
    Invalid command 'UserDir', perhaps misspelled or defined by a module not included in the server configuration
    root@hoge:/usr/local/etc/apache24 #
    

    対処方法は簡単だった。
    httpd.conf に、以下の設定を入れるか、もともとあるコメントアウトを外すだけ。

    LoadModule userdir_module libexec/apache24/mod_userdir.so

    ユーザ用のディレクトリを設定するのにも、モジュールの読み込みが必要なだけだった。
    わかってしまえば、大したことがなかった。

  • FreeBSD 10 は、sysinstallが廃止されていた

    久しぶりに、FreeBSDをインストールしたら、
    FreeBSD 10は、sysinstallが廃止されていた。
    変わりに、bsdconfig コマンドを使用する。

    使い勝手や見た目などは、sysinstallと同じなので、
    コマンドが変わったくらいの間隔で使用できる(使用できた)。

  • FreeBSDにJekyllをインストール

    FreeBSDに静的サイトジェネレータのJekyllをインストールするには、Portsを使うと楽。
    portsなので、make, make installするだけでOK。
    インストール方法は以下(portsだから書くほどもでもないか)

    # cd /usr/ports/www/rubygem-jekyll/
    # make 
    # make install
    

    rubyやrubygemが入っていなくても、依存関係で同時にインストールしてくれる。
    jekyllがインストールされた先は下記。

    /usr/local/bin/jekyll