aboutsummaryrefslogtreecommitdiffstats
path: root/general/genutils/screen.xml
blob: 032c2f9fe205f6e0c0f219f842a7fb1af2cf46bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY screen-download-http "&gnu-http;/screen/screen-&screen-version;.tar.gz">
  <!ENTITY screen-download-ftp  " ">
  <!ENTITY screen-md5sum        "9a9bdc956bd93e4f0cb9e48678889e26">
  <!ENTITY screen-size          "1020 KB">
  <!ENTITY screen-buildsize     "9.5 MB">
  <!ENTITY screen-time          "0.1 SBU">
]>

<sect1 id="screen" xreflabel="Screen-&screen-version;">
  <?dbhtml filename="screen.html"?>


  <title>Screen-&screen-version;</title>

  <indexterm zone="screen">
    <primary sortas="a-Screen">Screen</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Screen</title>

    <para>
      <application>Screen</application> is a terminal multiplexor that runs
      several separate processes, typically interactive shells, on a single
      physical character-based terminal. Each virtual terminal emulates a DEC
      VT100 plus several ANSI X3.64 and ISO 2022 functions and also provides
      configurable input and output translation, serial port support,
      configurable logging, multi-user support, and many character encodings,
      including UTF-8. Screen sessions can be detached and resumed
      later on a different terminal.
    </para>

    &lfs122_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&screen-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&screen-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &screen-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &screen-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &screen-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &screen-time;
        </para>
      </listitem>
    </itemizedlist>
<!--
    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Required patch:
          <ulink url="&patch-root;/screen-&screen-version;-upstream_fixes-1.patch"/>
        </para>
      </listitem>
    </itemizedlist>
-->
    <bridgehead renderas="sect3">Screen Dependencies</bridgehead>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="linux-pam"/>
    </para>

  </sect2>

  <sect2 role="installation">
    <title>Installation of Screen</title>
<!--
    <para>
      First, apply a patch from upstream that fixes a security vulnerability:
    </para>

<screen><userinput remap="pre">patch -Np1 -i ../screen-&screen-version;-upstream_fixes-1.patch</userinput></screen>
-->
    <para>
      Install <application>Screen</application> by running the
      following commands:
    </para>

<screen><userinput>sh autogen.sh                                 &amp;&amp;
./configure --prefix=/usr                     \
            --infodir=/usr/share/info         \
            --mandir=/usr/share/man           \
            --with-socket-dir=/run/screen     \
            --with-pty-group=5                \
            --with-sys-screenrc=/etc/screenrc &amp;&amp;

sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* &amp;&amp;
make</userinput></screen>

    <para>
      This package does not come with a test suite.
    </para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install &amp;&amp;
install -m 644 etc/etcscreenrc /etc/screenrc</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <parameter>--with-socket-dir=/run/screen</parameter>: This option
      places the per-user sockets in a standard location.
    </para>

    <para>
      <parameter>--with-sys-screenrc=/etc/screenrc</parameter>: This option
      places the global screenrc file in <filename
      class='directory'>/etc</filename>.
    </para>

    <para>
      <parameter>--with-pty-group=5</parameter>: This option sets the gid
      to the value used by LFS.
    </para>

    <para>
      <command>sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%"
      {etc,doc}/*</command>: This command corrects the configuration and
      documentation files to the location that is used here for the global
      screenrc file.
    </para>

  </sect2>

  <sect2 role="configuration">
    <title>Configuring Screen</title>

    <sect3 id ="screen-config">
      <title>Config Files</title>

      <para>
        <filename>/etc/screenrc</filename> and
        <filename>~/.screenrc</filename>
      </para>

      <indexterm zone="screen screen-config">
        <primary sortas="e-AA.screenrc">~/.screenrc</primary>
      </indexterm>

      <indexterm zone="screen screen-config">
        <primary sortas="e-etc-screenrc">/etc/screenrc</primary>
      </indexterm>

    </sect3>

    <sect3>
      <title>Configuration Information</title>

      <para>
        You may want to look at the example configuration file that was
        installed and customize it for your needs.
      </para>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Program</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directory</segtitle>

      <seglistitem>
        <seg>screen (symlink) and screen-&screen-version;</seg>
        <seg>None</seg>
        <seg>/usr/share/screen and /run/screen</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="screen-prog">
        <term><command>screen</command></term>
        <listitem>
          <para>
            is a terminal multiplexor with VT100/ANSI terminal emulation
          </para>
          <indexterm zone="screen screen-prog">
            <primary sortas="b-screen">screen</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>