tmuxが次の方法でユーザー名を報告できない問題を解決したいと思いますlogname
。
logname: no login name
次の手順を使用しています。
# lets assume all other prerequisites are compiled already
# and staged/installed to $HOME/opt
# libutempter (http://freecode.com/projects/libutempter)
# URL : ftp://ftp.altlinux.org/pub/people/ldv/utempter/libutempter-1.1.5.tar.bz2
tar xvfj libutempter-1.1.5.tar.bz2
cd libutempter-1.1.5
vi Makefile
grep 'DESTDIR =' Makefile
---
DESTDIR = /home/xxxxxx/opt
make
make install
# tmux (http://tmux.sourceforge.net/)
# URL : git://git.code.sf.net/p/tmux/tmux-code
git clone git://git.code.sf.net/p/tmux/tmux-code tmux
cd tmux
sh autogen.sh
CFLAGS="-I$HOME/opt/include -I$HOME/opt/usr/include -I$HOME/opt/include/ncurses" \
CPPFLAGS="-I$HOME/opt/include -I$HOME/opt/usr/include -I$HOME/opt/include/ncurses" \
LDFLAGS="-L$HOME/opt/lib -L$HOME/opt/include/ncurses -L$HOME/opt/include -L$HOME/opt/usr/lib" \
./configure --enable-static
CPPFLAGS="-I$HOME/opt/include -I$HOME/opt/usr/include -I$HOME/opt/include/ncurses" \
LDFLAGS="-static -L$HOME/opt/include -L$HOME/opt/usr/include -L$HOME/opt/include/ncurses -L$HOME/opt/lib -L$HOME/opt/usr/lib" \
make
ただし、tmuxはまだログインを報告しませんlogname
。
(ルートアクセスなし)パッケージをインストールできません。
環境変数とフラグを更新しましたが、lddは共有ライブラリがないと報告しましたが、tmuxはまだログ名でログインを表示できませんでした。
答え1
これは目的の目的ですが、libutempter
一定レベルのアプリケーションサポートも必要ですtmux
。最近まで(2014年2月)中に入った所有者使用している分岐ですが、まだ使用する準備ができていない可能性があります。
現在の1.9aソースディストリビューションのFAQ:
* How is tmux different from GNU screen?
[...]
- screen has support for updating utmp. Nobody has really come up with a clean,
portable way to do this without making tmux setuid or setgid yet.
マスターブランチオンラインFAQCHANGES
文書は更新されていませんが、これは完全に無視されます。
実行後、定義を確認してくださいHAVE_UTEMPTER
(Makefile
予期しない!)。定義がない場合は、ビルド環境に問題があるかどうかを確認するために読んでください。config.h
configure
config.log
現在私の最善の推測は次のとおりです。
libutempter.a
、のみがないため、libutempter.so
これを使用すると-static
リンクできないため、libtempterの検出は失敗します。- 検出されコンパイルされますが、
utempter
(更新された特権タスクが委任されている)ヘルパーはutmp
setgid(通常setgid utmp)ではありません。 - 一部のシステムは既知の制限付きアクセスそのヘルパーに愚かさを防ぐしたがって、呼び出しバイナリ(例
tmux
:)は次のようになります。返品setgidです(通常setgid utempter)。
自分で作れば作らlibutempter
なければならない両方静的バージョンと動的バージョンがありますが、展開パッケージには動的バージョンのみが含まれているようです。
ルートアクセス権がない場合できないutmp
あなた自身のlibutempterを正しくインストールしてください。システム/ファイルを保持できませんwtmp
。システムにインストールされているlibutemperが欠落している場合は、静的設定/リンク用に独自のlibutemperをコンパイルし、インストールされているシステムsetgidヘルパー(通常または)を使用できる必要がlibutempter.a
あります。バイナリへのアクセスも制限されている場合、つまりこれを実行するためにsetgidが必要な場合、問題に対する解決策はありません。libutempter.a
tmux
/usr/lib/utempter/utempter
/usr/libexec/utempter/utempter
tmux
tmux
新しい libutetemper 機能のエラー処理は現在不完全です。-DUTEMPTER_DEBUG
上記のいずれも実行されていない場合は、それを使用してlibutetemperを再構築できれば便利です。
make CFLAGS=-DUTEMPTER_DEBUG