:::: MENU ::::

Subsonic 4.xから6.0betaへアップデート

このサイトでも何度かSubsonicのアップデート情報を書いてますが、さほど変わりはありません。

環境は、sl6上で、Subsonic 4.xから6.0betaへのアップデートです。

たぶん、rpm -Uvhでアップデートかけても大丈夫かと思いますが、今回のアップデート作業は下記の手順で行いました。

  1. Subsonicが起動していたら停止
    # service subsonic stop
  2. javaのインストール
    # sudo yum install java-1.7.0-openjdk
  3. 最新版をダウンロード
    (http://www.subsonic.org/pages/download.jsp)でrpmをダウンロード
  4. アップデート
    # sudo yum install --nogpgcheck subsonic-x.x.rpm

もし、アップデートが上手くいかなければ、古いパッケージを削除してからインストールしましょう。

# sudo yum remove subsonic

バージョンアップ後は、4.xからの設定等もそのまま引き継がれました。
5.xのバージョンをすっ飛ばしてのバージョンアップなので、結構UIが洗練されてますね。

6.0betaではHTML5Audioが採用されていますが、やっぱりiPhone/iPadのブラウザ上での再生はダメか。
また、DLNAを有効にしても、我が家のムービーファイルは再生出来なかった。(T_T)


Macのディスクユーティリティでマウント解除できない時の対処

私の使っているiMac内蔵のSSDがよく壊れます。
ディスクユーティリティで検証・修復しようとしても、”修復できません”との警告で、よく復旧作業を行うことがあります。

通常だと、「⌘(コマンド)+ R」のリカバリモードで起動し、ディスクユーティリティを起動して、壊れたSSD/HDDを消去するのですが、時々、”マウント解除できませんでした”と消去すらできない症状に遭遇します。
おそらく、リカバリーモードで起動しても、消去対象のSSD/HDDに何らかのアクセスがあるからマウント解除できないのでしょう。

ディスクユーティリティを抜け、コンソールで調べてみても良いかと思いますが、面倒臭いので、USBディスクで起動するとあっさり消去できますので、緊急起動用にインストールUSBを作成しておくと良いです。
ちょっと情報古いですが、インストールUSBの作り方はこんな感じで↓

OS X 10.8 Mountain Lion インストールUSBの作り方

コンソールで作業したい方は、psやlsofで消去対象のSSD/HDDを探して、プロセスを殺すと上手く行くかと思います。


$ sudo lsof /Volumes/<HDD名や共有名>
mds 60 root 50r DIR 48,12 16384 2 /Volumes/share
Finder 360 hoge 26r DIR 48,12 16384 2 /Volumes/share
zsh 75882 hoge cwd DIR 49,10 1554 2 /Volumes/share

この場合は、shareがFinderとzshで利用されているので、Finderで開いていないか、zshでshare内にいないか確認すればOKですね。

偶に、Finderが全て閉じているにも関わらず、アンマウントできないことがあるので、その場合には、FinderをOption+右クリックで「再度開く」により、Finderを再起動しましょう。

http://blog.fkoji.com/2013/03200100.html


3日間悩んだApache2.4系ユーザーディレクトリのForbidden

Apache2.4系を入れる必要があったので、CentOS6/Apache2.2からCentOS7/Apache2.4へ更新しました。

2.4系では、httpd.conf内の書式やアクセス制御の書式も変更になり、修正を施し、Apache起動まで確認できたところで、ユーザーディレクトリの設定を有効にしたところ、Fobiddenのエラーでハマってしまいました。

この時の環境では、

  • Firewall無効
  • SELinux無効
  • mod_userdir.soのモジュールが読み込まれているか確認
  • /etc/httpd/conf.d/userdir.con内を確認
    UserDir public_html
    <Directory “/home/*/public_html”>
    AllowOverride ALL
    Options ALL
    Require all granted
    </Directory>
  • userのパーミッションを711確認
  • user下public_htmlディレクトリのパーミッションを755確認
  • public_html下のindex.htmlに読み込み属性があるか確認
  • user下に.htaccessがあるか確認
    .htaccessが見つかった場合、アクセス制御書式が古くなっているのでorder deny allow形式からRequire形式に変更

おおよそ、これくらいの設定で普通なら閲覧できるはずなんです。

実は、今回運用したサイトの構成で、userのディレクトリは、グループ分けする必要があったので、下記のようになってます。

/home/group1/user1
/home/group1/user2
/home/group2/user3
/home/group2/user4

これらuser1からuser4までチルダ(~)を使ったURL(http://localhost/~user1)でアクセスすると、すべて、下記のエラー

Forbidden
You don’t have permission to access /~user1 on this server.

httpdのエラーログを見ても、permission denied.と記載されている。

/home/group/userの位置が悪いのか?と思い、/home/user5のユーザーを作成してみると、~/user5でアクセス出来る。

と言うことは、/etc/httpd/conf.d/userdir.conf内のディレクティブ/home/*/public_htmlが怪しい。
*の指定だと、homeとpublic_html間に何が入っても有効なはずじゃないのか?と思い、下記のディレクティブを追加してみた。

<Directory "/home/*/*/public_html">
AllowOverride ALL
Options IncludesNoExec ExecCGI FollowSymLinks
Require method GET POST OPTIONS
</Directory>

これで、Apacheを再起動したところ、チルダ(~)による各ユーザーのホームページが閲覧できるようになった。

結果オーライだが、/home/*/*/public_htmlの書式は、何かスマートじゃないよね?
何かよい書き方もしくは方法があったら、教えてください。


CentOS7でネットワーク不調だった原因

CentOS7をインストール後に、nfsに接続できなかったり、digでDNS情報が引けなかったりと、四苦八苦してました。

NFSでは、下記の環境

  • Firewall無効
  • SELinux無効
  • NFS関連のプログラムはインストール済み
  • 関連プログラムは、起動済み
  • tcp_wrapperrrで制限はしていない
  • Google等へのpingでネットワーク疎通確認
  • autofsも起動している

autofsで指定しているフォルダにアクセスしても、手動でmountコマンドを打っても、しばらく経ったあとに、Connection timed out.で接続できない。
また、接続先を変更してみても、接続できないので、サーバー側で弾かれているわけではなさそう。

ググってみると、状況によっては、IPアドレスと名前のマッピングも関係する場合があるとの情報もあったので、hostsやDNS関連も確認した。

この作業の途中で、DNSのdigコマンドで自分のホストを確認しようとしてみたところ、なぜかdigの情報がGoogle等では引けるのに、自分のDNSでは引けないことに気づく。

なぜ?と、徐ろに、ipコマンドを打ってみた。

# ip addr
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:0cxx:b0:xx:e0 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.37/32 brd 192.168.1.37 scope global ens32

もう、お分かりになったでしょう!

サブネットマスクが32になっているではありませんか。

CentOS7のネットワーク設定で、nmtuiコマンドによりネットワーク設定を行ったわけですが、IPアドレス入力欄で192.168.1.37だけを入力した時に、自動的に192.168.1.37/32へ設定されていたようでした。

もう一度、nmtuiを起動して変更しても構いませんが、下記を編集して手動で対処した。

# vi /etc/sysconfig/network-scripts/ifcfg-en32
PREFIX=24  #32から24へ変更して保存
# systemctl restart network

これにて、NFSもdigも一件落着しました。


Error: uninitialized constant Formulary::HOMEBREW_CORE_FORMULA_REGEX

MacのHomebrewでアップデートをかけると、またもや下記のエラー

Error: uninitialized constant Formulary::HOMEBREW_CORE_FORMULA_REGEX

$ brew update
Error: uninitialized constant Formulary::HOMEBREW_CORE_FORMULA_REGEX
Please report this bug:
    https://git.io/brew-troubleshooting
/usr/local/Library/Homebrew/formulary.rb:227:in `loader_for'
/usr/local/Library/Homebrew/formulary.rb:176:in `factory'
/usr/local/Library/Homebrew/cmd/update.rb:173:in `block in report'
/usr/local/Library/Homebrew/cmd/update.rb:159:in `each_line'
/usr/local/Library/Homebrew/cmd/update.rb:159:in `report'
/usr/local/Library/Homebrew/cmd/update.rb:24:in `update'
/usr/local/Library/brew.rb:140:in `<main>'

gitのトラブルシューティングを見ろとの事で、https://github.com/Homebrew/homebrew/issues/42553に書いてありました。

もう一度、brew updateをかければ良いみたいです。

$ brew --version
0.9.5
$ brew update
Already up-to-date.

Debian 8(Jessie)にVMware Toolsをインストール

前記で、Debian 8(Jessie)をVMware Fusion上にインストールしたので、VMware-Toolsを導入しました。

まずは、VMwareTools導入にあたり、必須となるファイルやプログラムをDebian上にインストールします。

# apt-get install gcc make perl
# apt-get install linux-headers-$(uname -r)

MacのVMware Fusion上のメニュー欄から仮想マシンのVMware Toolsのインストール選びます。
すると、/media/cdromへマウントされます。

その中の既存のインストーラを起動しようとすると・・下記のエラー

chmod: `./vmware-tools-upgrader-64′ のパーミッションを変更しています: 読み込み専用ファイルシステムです

なので、/tmp/に展開してインストール

# tar zxf /media/cdrom/VMwareTools-9.9.2-2496486.tar.gz -C /tmp
# cd tmp/mware-tools-distrib/
# ./vmware-install.pl

再起動後、VMwareToolsが有効になっている事と思います。


Debian wheezy(7.8) から jessie(8.0)へアップグレード

Debianが約2年ぶりにメジャーアップグレードで、Debian 8.0 Jessieがリリースされましたので、早速、既存の7.x(wheezy)からアップグレードを行ってみました。
メジャーアップグレードでリリースされたばかりなので、用心をとって、VMware Fusion上にてテスト的にアップグレードです。

VMware Fusion上で、7.8(wheezy)をnet installした後、8.0(jessie)へのアップグレード方法です。

もし、運用しているwheezyをそのままアップグレードする場合には、/etc下やapt関連のバックアップを取ってから行った方が良いでしょう。

  1. 既存のパッケージを更新しておきます。
    # apt-get update; apt-get upgrade
    また、整合性の競合がないことも確認しておきましょう
  2. wheezyからjessieへsourcelessを変更
    # sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
  3. 更新・アップグレード
    # apt-get update
    # apt-get upgrade
    # apt-get dis-upgrade
  4. 掃除
    # aptitude purge '~c’
  5. 再起動
    # init 6
  6. バージョン確認
    #lsb_release -aNo LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux 8.0 (jessie)
    Release: 8.0
    Codename: jessie

以上で、7.xから8へのアップグレード完了です。

jessieから、GNOMEが標準になったり、標準のinitシステムがSysVinitからSystemdへ変更されたりと、7.xとは大幅な変更がありますし、リリースされたばかりと言うこともあり、不具合も出る可能性が大いにあるので、急がなければ、1ヶ月近くは様子をみて、アップグレードした方が良いかと思われます。


Scientifix Linux 6.4から6.6へアップグレード

ここのサーバで稼働しているScientific Linux 6 (sl6)を、バージョン6.4で止まったままでしたので、最新(現時点で6.6)へアップグレードしました。

一応、バージョン確認

$cat /etc/redhat-release
Scientific Linux release 6.4 (Carbon)

普通にyum updateしても、最新へアップグレードされないままでしたので、下記コマンドで無事6.6へアップグレード。

# yum install -y yum-conf-sl6x
yum clean all
yum update

アップグレード後、再起動して確認
$ cat /etc/redhat-release
Scientific Linux release 6.6 (Carbon)


Macでjavaのjarファイルを実行

時々、Mac上のターミナルで、Javaのjarファイルを実行したい時があるのでメモ。

javaの起動には、Java Developer Kitが必須のようなので、下記のアドレスからMac版をダウンロードして、インストールしておく。


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
ちなみに現時点だとjdk-8u40-macosx-x64.dmg

その後に、下記コマンドで実行

$ java -jar jarfile.jar

複製したVMwareゲストOSがネットワークにつながらない時に確認するポイント

VMware Fusionで他からコピーしてきたCentOSのゲストOSをそのまま起動しようとすると、デバイス名(eth*)が認識されなくてネットワークが利用できません。ちなみにVirtualBoxでも同様だと思います。

# ifconfig -a

loしか表示されず、eth*が表示されない

ここでのポイントは、MACアドレスとデバイス名を確認し、修正する事で、おおよそ解決できるかと思います。

MACアドレスの確認と修正

確認

ゲストOSのCentOSを起動後、ログインし、/etc/sysconfig/network-scripts/ifcfg-eth0(←この数字は環境に合わせて)を確認します。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
ここで表示されたHWADDRのMACアドレスを確認します

次に、VMware Fusion上の起動したCentOSの設定より、ネットワークアダプターを選び、下部の詳細オプションをクリックします。

表示されたMACアドレスが新しいものなので、ifcfg-eth0内のMACアドレスをこれに置き換えます。

保存後に、ネットワークを有効化します。

# /sbin/service network start

この後に、何もエラーが出ずに、ネットワークが利用できるのであれば、これだけで終了です。

しかし、ほとんどが、下記のエラーが出る場合が多いです。

Device eth0 does not seem to be present, delaying initialization

デバイス名の設定変更

# cat /etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:92:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:65:yy:yy", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

同じネットワークデバイス名が存在し、上記が古いMACアドレス、下記が新しいMACアドレスになっているかと思います。
下記のMACアドレスが、上図の詳細オプションで表示されたMACアドレスになっていることを確認し、上記の古い情報(デバイス、MACアドレス)を削除します。

このままでも問題はありませんが、ネットワークデバイス名がeth0でなく、eth1となってしまうので、eth1をeth0に変更すると良いでしょう。

この後、OS再起動するとネットワークが利用できる環境になっている事と思います。


ページ:1234567...25