Gitのインストールでエラー

VirtualBoxのCentOS7でGitを最新版にアップデートしようとするとエラーが出ます。libiconv はインストール済みです。

CentOS7に最新のGitをインストール、アップデート、他

プランAを試しましたが、

2016-08-24

むむ。http://kazuph.hateblo.jp/entry/20120809/1344475952 を参考にして、

# make install CFLAGS="-liconv"

とすると一応インストールに成功しました。が、ヴァージョン確認すると「そのようなファイルやディレクトリはありません。」とでます。パスが通っていないのだなと思い、

# which git
/root/bin/git
# export PATH=$PATH:/root/bin

すると

# git --version
git version 2.9.3

めでたし、めでたし。

参考URL libiconv-1.14 日本語パッチ
Windows10 をホストに VirtualBox をインストールしようとしたら苦労した話 – たのしい人生

Excelのくし刺し演算

あまり使わない機能なので何度、検索しても忘れてしまうので困っています。

エクセルで同じ書式の複数シートの当該セルの合計を出したいとき、総合計シートのセルでΣ(SUM関数)を出して最初のシートのセルを選択、Shiftキーを押しながら最後のシートのタブをクリック。

ですよね。勉強になります。

参考URL http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1412189669

SoftEther VPN ブリッジの作成

新しいNIC、eth1をブリッジモードにしてSoftEther VPN管理マネージャーから仮想HUBとしてブリッジを追加したところ、AndoridからL2TP/IPSec接続して共有フォルダにアクセスできました。

eth1をブリッジモードにする

bridge-utilesのインストール

# yum install bridge-utiles

br1の追加

# brctl addbr br1
# brctl stp br1 off
# brctl addif br1 eth1

ネットワークマネージャーをOffにする(ネットワークからサーバーに接続していると、通信が切れます。サーバーのコンソールから直接、操作します。)

# service NetworkManager stop
# service network stop

network-scripts の修正(元に戻せるように別ディレクトリにバックアップファイルをコピーすることをお勧めします。)

# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /home/gusachan/ifcfg-eth1_back
# vi /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1
TYPE=Bridge
STP=no
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
GATEWAY=192.168.24.1
DNS1=192.168.24.1
IPADDR=192.168.24.101
PREFIX=24
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
NAME=br1
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPV6INIT=yes
IPADDR=0.0.0.0
NAME="System eth1"
HWADDR=XX:XX:XX:XX:XX:XX
BRIDGE=br1
# service network restart
# service NetworkManager start

問題がなければ、eth1,br1がブリッジとして立ち上がります。

# brctl show
bridge name     bridge id               STP enabled     interfaces
br1             8000.00152a6e642c       no              eth1

管理マネージャーから[接続設定名]を選択して、 [接続]。
管理画面の[ローカルブリッジの作成]をクリック。
[仮想HUB]にVPNと入力、[物理的な既存のLANカードとのブリッジ接続]をチェックして[LANカード]にbr1を選択して[ローカルブリッジを追加]。
同じく、[仮想HUB]にVPN、[新しいtapデバイスとのブリッジ接続]をチェックして[新しいtapデバイス名]にVPNと入力して、[ローカルブリッジを追加]します。

2016-08-20

eth1,br1をプロミスキャスモードに設定する

eth1をプロミスキャスモードで起動する

# ifconfig eth1 down
# ifconfig eth1 promisc
# ifconfig eth1 up
# ifconfig eth1
eth1   Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          BROADCAST PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:23883 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3702 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4576076 (4.3 MiB)  TX bytes:326466 (318.8 KiB)
          Interrupt:16 Memory:f7ea0000-f7ec00001

参考URL
https://ja.softether.org/4-docs/1-manual/3/3.6
ttps://uehatsu.info/tech/wordpress/2013/06/how-to-setup-bridge-ethernet-interface-on-centos-6.4.html

ttp://www.jifu-labo.net/2015/11/softether_ipsec/

参考URL http://www.suzu841.com/tools.html

VPN Serverマネージャーのパスワード

PCを再起動したときなど、管理マネージャーのパスワードがロックされてログインできない時がありました。

そんな時、/usr/local/vpnserver/vpn_server.config内の

byte HashedPassword *******(ハッシュされたパスワードデータ)

上記行を削除すると空白のパスワードでログインできます。ログイン後はパスワードの再設定をします。

参考URL https://ja.softether.org/4-docs/1-manual/B/11.1

SoftEther VPN Serverのインスト―ル

SoftEther VPN Serverをインストールしてみた。

http://www.softether-download.com/ja.aspx?product=softether

#cd /usr/local/src
# tar zxvf softether-vpnserver-v4.19-9605-beta-2016.03.06-linux-x64-64bit.tar.gz
# cd vpnserver
# make
使用許諾契約書に 1 を3回応答して
# cd ..
# mv vpnserver/ /usr/local
# cd vpnserver
# chmod 600 *
# chmod 700 vpn*
起動スクリプトを/etc/init.d/vpnserverとして設置して
# chkconfig --add vpnserver
# service vpnserver start

同様に、vpnbridgeをインストール。

# tar zxvf softether-vpnbridge-v4.19-9605-beta-2016.03.06-linux-x64-64bit.tar.gz
~して
# service vpnbridge start

https://ja.softether.org/4-docs/1-manual/7/7.3
https://ja.softether.org/4-docs/1-manual/9/9.3

ここまでで、UDP500,4500,TCP443のポート開放、フォワーディングとeth0をブリッジ接続br0に、管理マネージャーから仮想ブリッジにタップデバイスを追加して割り振られたDDNSアドレスにAndroidからL2TP/IPSec接続は出来たんすけどね~。

ESファイルマネージャーエクスプローラーをインストールしたところ、ローカルネットワークは見えるんですけどサーバーの共有フォルダをスキャンしても応答がない・・・。多分、1) Andoridがファイアウォールでハジかれている。2) タップデバイスを追加するLinuxのコマンド/sbin/ip tuntapがCentOS6では実装されていない。3) ブリッジにはeth0 以外のプロミスキャスで作動するNICが必要。4) ルーターが悪い。5) それ以外の原因、だと思うんですけど。(迷推理

追記)正解は、3) でした。

コマンドプロンプトでのIP固定

>netsh interface ip show config # インターフェイス名確認
>netsh interface ip set address "<インターフェイス名>" static 192.168.24.58 255.255.255.0 192.168.24.1
>netsh interface ip set address "<インターフェイス名>" dhcp # 自動取得

SoftEther VPN管理マネージャーで仮想NATを有効にしたらプライベートIPが変更されてインターネットに繋がらなくなった件。ipconfig /all で確認してナットク。

参考URL http://www.atmarkit.co.jp/ait/articles/1002/05/news097.html

Anniversary Update

VAIOのWindows10をAnniversary Update、完了です・・・。

先週から[更新とセキュリティ]に通知が来ていたのですけれど上手く行かず、公式サイトからISOをDVDに焼いてアップグレードを試してみました。

最初は、75%でフリーズしたのでセキュリティソフトが原因と考えられました。電源ボタン長押しから終了→システムロールバック→セキュリティソフト終了して再試行しましたが、2回目は87%で進まなくなりました。エラーを見ると、

「0xC1900101-0x400D SECOND_BOOTフェーズでエラー」と出ていたので検索するとクリーンブートが必要とのこと。
msconfigからMicrosoft以外のスタートアップとサービスを無効にしてみましたが失敗、同じエラーが出たのでやり直し。セキュリティソフトをいったん、アンインストールして3回目にやっと成功しました。

スタートアップとセキュリティソフトを元に戻して作業終了です。

2016-08-11

プロンプトでのKBのアンインストール

コマンドプロンプトでのKBのアンインストール(Windows7以降)

wusa.exe /uninstall /KB:893810 /quiet /norestart

コマンドからPowerShellを管理者権限で実行

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process powershell.exe -Verb runas"

追記)powershell.exe -File [ファイルパス]  オプションで指定したスクリプト実行できるらしい・・・。
怖いな~、Set-ExecutionPolicy Restricted すとこ。

Vistaのアップグレード

Windows7 Professional 32bit 版にアップグレード、完了です・・・。

前回のエントリーでKBをアンインストールするコマンドをご紹介しましたが、パッケージマネージャーの /up オプションにファイル名を指定しないといけなかったのが原因だったようです。

結局、スタンドアロンのKB KB928439、KB968930 をダウンロードしてC:\TEMPに保存した後、管理者権限でコマンドプロンプトから

expand c:\temp\Windows6.0-KB968930-x86.msu –F: Windows6.0-KB968930-x86.xml c:\temp

して、.xml ファイルをメモ帳で開き属性値を変更

<package action="install">↓
<package action="remove">変更
start /w pkgmgr /n:c:\temp\Windows6.0-KB968930-x86.xml

pkgmgrしてpowershellを手動でアンインストールできました。KB928439も同様に。

Windows7 Professional のファイルの展開が20%で止まるというのは、私も体験しました。そのときは、Windows Defender を有効にしていた時でした。Defenderを無効にしたらスムーズにインストールできました。

(^ ^;

配列変数への文字列の代入

今日もLinuxのシェルスクリプト、配列変数のお勉強です。

今回は、findコマンドで取得したディレクトリ名を配列変数へ代入して表示するスクリプトです。

#!/bin/bash
declare -a dir=()
declare -i count
for DIR in $(find . -maxdepth 1 -type d)
do
    dir=("${dir[@]}" `basename ${DIR}`)
    echo "${dir[count]}"
    count=count+1
done

実は以下のように書けば、同じことをするのに配列変数は関係ないのですけれどね。コードの可搬性、拡張性を考えると配列変数を使うこともあるのかな・・・と。

#!/bin/bash
for DIR in $(find . -maxdepth 1 -type d)
do
    echo `basename $DIR`
done

実際の結果は、隠しディレクトリも表示されます。隠しディレクトリを除外したいときには、findコマンドの -not -regex オプションでドットの付くファイルを指定します。

#!/bin/bash
for DIR in $(find . -maxdepth 1 -type d -not -regex ".*\/\..*")
do
    echo `basename $DIR`
done

maxdepth の値を変えるとさらに掘り進められます・・・が、表示結果があまりエレガントではありません。ではforループをネストすれば良いのでしょうが、それもあまり意味がないのかも知れません。

# sh findDir.sh
public_html
samba
test
ダウンロード
テンプレート
デスクトップ
ドキュメント
音楽
画像
公開

参考URL

http://qiita.com/b4b4r07/items/e56a8e3471fb45df2f59
http://d.hatena.ne.jp/yohei-a/20091028/1256707671
ttp://tapira.hatenablog.com/entry/2014/10/02/120550