- 2015-11-14 (Sat) 13:25
- ソフトウェア ( Linux/coLinux )
.bashrc に export LD_LIBRARY_PATH=~/opt/lib/ と書かれている環境で,glibc を configure --prefix=~/opt とやって make all install とかやってしまった.おかげで新しく実行するコマンドがインストール途中の glibc を見に行ってしまって「ライブラリロードできねーんだよボケ」と吐いて止まってしまう状況に陥った.つまりスタティックリンクされてないような普通の mv, cp, cat, ... なコマンド達が使えない.
この状況から抜け出すには .bashrc の LD_LIBRARY_PATH の設定を消してログインしなおせばいい.最も単純には echo > .bashrc とやってしまえば良いけれど,.bashrc のバックアップを取ってないのでこれをやる前にバックアップを取っておきたい.
ということで,bash の機能だけで .bashrc を .bashrc.bak にコピーするという必要が生じた(ということにした).1分位悩んだ後で思いついた解答:
while read line; do echo $line; done < ~/.bashrc > ~/.bashrc.bak
とりあえず思いついたのがこの回答だったのだけど,もっとスマートにコピーできないのだろうか?
閑話休題.
上記の状況でファイルをコピーする一番楽な方法は,LD_LIBRARY_PATH を空にすることである.
export LD_LIBRARY_PATH=""
これで状況を脱した.
もしくは状況を楽しんだままコピーだけしたいなら,コマンドを打つときにローカルで指定してもいい.
LD_LIBRARY_PATH="" cp .bashrc .bashrc.bak
なお,他のアカウントからどうにかするという手順は面倒なので却下.
- Newer: ことはじめ