先日リリースされた Debian GNU/Linux 7.0(wheezy)では GNU Screen の開発バージョン 4.1 が採用されています。そこで改めて 4.1 で何がどう変わったのか確認してみたいと思います。
squeezeのscreenパッケージ
まずは一つ前のリリース squeeze における screen パッケージを確認します。
パッケージ名こそ 4.0.3-14 ですが、2008/06/01 時点の開発バージョンがバックポートされていますので縦分割やレイアウト、ウィンドウグループなどの新機能がすでに使えます。次のようなパッチが適用されています。
- anonscm.debian.org Git - collab-maint/screen.git/blob - debian/patches/00list
# before doing anything else, advance to CVS HEAD 01CVS # 01-08: fixes to configure, altering preprocessor macros etc. 01configure_fix_alpha_vsprintf 02configure_use_ncursesw 03fully_expand_screenencodings 04AUTOCONF 05fix_osdef_include # 09 : Cherry-picked upstream commits 09CHERRY_f6b50e17 09CHERRY_97708d58 09CHERRY_bb04008e # 10-49: "regular" code and documentation fixes 10norootpassword 11replace_doc_paths 12kfreebsd_ctty 13split_info_files 14size_matters 15manpage_typos 16fix_gcc_warnings 16fix_gcc_warnings_II 17manpage_sessionname_warning 18manpage_maxwin_limit 19flowcontrol_lockup 20defmonitor 21manpage_nethack_activation 22exchange_file_mode 23exitcode_q_ls 24option_parser 25allow_symlink_sockdir 26source_encoding 27doc_sty_noenvpassing 28blankerprg_callsemantics 29infodoc_version 30fix_fsf_address 31upstream_cherries 32misc_minor_fixes 33increase_max_winmsg_renditions 35screen_invoked_with_a_command 40cjk_eastasian 45suppress_remap # 50-99: experimental patches, new features etc. 50EXP_tilde_expansion 51EXP_session_creation_time
- 2008/06/01 時点の CVS HEAD というと 開発版 1f2d8f1 でしょうか(01CVS)
- root 権限で
lock
した時に解除できない問題を修正(10norootpassword) - 入力バッファの文字制限を 100 固定から定数定義 MAXSTR に変更して、その値を 256 から 768 に拡張(14size_matters)
- SCREENDIR 環境変数で変更できるソケットディレクトリにシンボリックリンクを指定可能に(25allow_symlink_sockdir)
- コメント中にある Unicode 合成文字を文字名称に置換(26source_encoding)
lockscreen
時のメッセージにホスト名も表示(31upstream_cherries)開発版 d128abd5 のようです。- Unicode における東アジア文字の曖昧な文字幅を全角/半角のどちらで表示するかという
cjkwidth
オプションを追加(40cjk_eastasian)これは 開発版 b8fd0c8 のようです。 source
で読み込むファイルを指定するパスに ~ を使用可能にする(50EXP_tilde_expansion)これは 開発版 6f4b089 として反映されています。- screen -ls 時にセッション生成時刻を表示(51EXP_session_creation_time)たくさんのセッションを使い分けていて時間ベースで記憶を辿ることが多い人には便利かも知れません。
wheezyのscreenパッケージ
つぎに wheezy における screen パッケージを確認します。
パッケージ名のとおり 開発版 db59704 がベースとなっており、それにあわせてパッチも更新されています。- anonscm.debian.org Git - collab-maint/screen.git/blob - debian/patches/series
# 01-08: fixes to configure, altering preprocessor macros etc. 01configure_fix_alpha_vsprintf.patch 03-fix-terminal-handling-on-kfreebsd.patch 05fix_osdef_include.patch 06-fix-parallel-build.patch # 10-79: "regular" code and documentation fixes 10norootpassword.patch 11replace_doc_paths.patch 12kfreebsd_ctty.patch 13split_info_files.patch 14size_matters.patch 16fix_gcc_warnings.patch 22exchange_file_mode.patch 23exitcode_q_ls.patch 24option_parser.patch 26source_encoding.patch 32misc_minor_fixes.patch 45suppress_remap.patch 46fix-keybinding-typo-in-manpage.patch 47screen-cc.patch 48screen-ipv6.patch 49long-usernames.patch 50increase-max-TERM-length.patch 51fix-utf8-status-padding-bug.patch #52fix_screen_utf8_nfd.patch 53fix-startup-race-condition.patch 58-show-encoding-hardstatus.patch 59-fix-manpage-warnings.patch 60-644788-screen-4.1.0-4.0.3-interoperability.patch # 80-99: experimental patches, new features etc. 80EXP_session_creation_time.patch
- 組込 telnet で IPv6 をサポート(48screen-ipv6.patch)これと 47screen-cc.patch は Fedora のパッチを取り込んだもの ですね。
- ユーザ名の最大文字数を 20 から 50 に拡張(49long-usernames.patch)
- TERM 環境変数の最大文字数を 20 から 40 に拡張(50increase-max-TERM-length.patch)
caption
やhardstatus
におけるマルチバイト UTF8 文字列の文字数計算の修正(51fix-utf8-status-padding-bug.patch)- エンコーディングを表示する文字エスケープ
%e
を追加(58-show-encoding-hardstatus.patch) - バージョン 4.0.3 のセッションを操作できるように(60-644788-screen-4.1.0-4.0.3-interoperability.patch)
この互換情報についてはリリースノートに注意書きがあります。
- 第4章 Debian 6.0 (squeeze) からのアップグレード
4.5.8. 特定のパッケージに対する特別な注意
4.5.8.2. screenGNU Screen が screen クライアントと SCREEN サーバの間の通信に利用するプロトコルが squeeze 用と wheezy 用で変更されています。wheezy の screen パッケージにはパッチが適用されていて、screen クライアントとサーバのバージョンが違っていても最も重要な機能は確保されます。 ... バージョンをまたがった接続でのこういった (無害な) 症状として、他に screen が "Message 40 of 12376 bytes too small" のようなメッセージを発することがあります。 こういった問題はすべて、squeeze 用の screen で始められた screen セッションが終了すると消えます。 wheezy 用の screen パッケージに付属する /usr/share/doc/screen/NEWS.Debian.gz も読んでください。
- /usr/share/doc/screen/NEWS.Debian.gz
screen (4.1.0~20120320gitdb59704-7) unstable; urgency=low In case you upgrade screen from 4.0.3 to 4.1.0 while running inside screen and you have to reconnect to that screen session (or any other screen session which has been started before the upgrade), there may be a few screen features not working until you exit the 4.0.3-started session and replace it with a 4.1.0-started session. Known issues of 4.0.3 to 4.1.0 interoperability as of now: * Terminal window resizing (WINCH signal) does not propagate to the screen session. Detach and reattach again instead to get the size of the terminals inside the screen session adjusted propely. -- Axel Beckert
Sun, 16 Sep 2012 12:48:44 +0200
GNU Screen 4.1 の新機能
新機能やその使用例については過去にいくつかまとめていますのでそちらをご覧ください。(手抜きでスミマセン)
- これからの「GNU Screen」の話をしよう - 新機能について一通りまとめています
- 開発版GNU Screenのlayoutを使ってみよう - レイアウトについて
- 開発版GNU Screenでマウスを使う - マウスでできる操作について
- 開発版GNU Screenで楽々ウィンドウ管理 - ウィンドウグループについて
- 開発版GNU Screenでコピペを極める - コピーモードで追加されたキー割り当てについて
- GNU Screen Watch: January 2011 - April 2013 - 追加された文字エスケープ
%E
について
- 2つのウィンドウグループを作成
- 7つのウィンドウを作成(内5つはシェル、残りはtopとecho-sd用)
- 3つのレイアウトを作成
- いくつかのウィンドウに
stuff
でコマンド文字列を送信
copy
モードに、フォーカスのあるウィンドウ2で escape
してコマンド入力待機状態になっているところです。これらのアクションがあったときに hardstatus
や caption
の配色などを変更して視覚的に状態が分かりやすくしています。なお設定ファイルでは echo-sd コマンドの呼び出しはコメントアウトしています。
おわりに
比較的パッケージ更新が保守的な Debian 本体でバージョン 4.1 が採用されたことによって、Ubuntu などの派生ディストリビューションでも次第に使えるようになっていくでしょうね。
新しめの技術を積極的に取り込む Fedora では 2011年5月 にリリースされた Fedora 15 で既にバージョン 4.1 が採用されていますが、それを基にする Red Hat Enterprise Linux(RHEL) はまだリリースされていません。Fedora 17/18 を基にすると言われる RHEL 7 は 2013年後半にリリースされるようです。
来年にはみなさんがお使いの Linux における GNU Screen はバージョン 4.1 がデフォルトという状態になっているでしょうね。GNU Screen 4.1 はじめるなら今でしょ!
0 件のコメント:
コメントを投稿