The `screen` package is deprecated and not included in RHEL8.0.0.

Solution In Progress - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 8
  • Red Hat Enterprise Linux (RHEL) 7
  • screen

Issue

  • How to install the screen package in RHEL8.0.0?
  • The screen package is not available in RHEL8.

Resolution

After careful consideration, the decision was made to deprecate the screen package and instead recommend the tmux package. The screen utility has an old code base that is not easy to maintain and with little activity in the upstream community. The tmux package was viewed as having a better code base to maintain and build new features upon. Maintaining both within RHEL was becoming increasingly unfeasible when considering keeping up with CVE security errata, government security certifications, and similar requirements. For those concerned with DISA STIG requirements, tmux satisfies the requirement as an alternative to screen.

The screen utility was marked as deprecated with the release of RHEL 7.6 and was not included as part of RHEL 8.0.

In appreciation for the friction of change this imposes on RHEL users, work is underway on a transition guide to help users switch. For example, screen bindings for tmux are available, and a community supported version of screen exists in EPEL 8 repository1.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

13 Comments

What do you recommend for serial connections, since tmux does not support opening a serial device the way that screen did?

e.g.

screen /dev/ttyS0 115200

I'm in the same situation; I used screen a lot to connect to various serial ports (switches, APC PDUs, UPS, etc...). It looks like minicom is available in the RHEL8 repos as an alternative for us. I'm going to try and describe my initial setup, since it's a little different than screen.

First, minicom has a system-wide default configuration defined in /etc/minirc.dfl. Changing the defaults and creating additional profiles/configurations which have unique ports, bitrates, stopbits, parity, etc... can be done interactively by running minicom -s or minicom --setup. At a minimum, you probably want to make changes in the "Serial port setup" and "Modem and dialing" menus. N.B. The Init/Reset strings appear empty, but in fact have generated data in them. You may want to edit those values, and make sure they are empty. Finally, you can save your changes as the new defaults (Save setup as dfl) or as a named profile which can be loaded from the command-line via minicom someConfigName

When you want to disconnect / exit from minicom you use the screen-like keyboard commands of Control-A + X. A list of all of the commands can be found in the man pages.

Update: I recently read a nice article about using "tio" from EPEL to access serial devices. https://opensource.com/article/20/5/tio-linux

Can we get an up-to-date version of tmux? RHEL7 uses tmux 1.8, but the latest version is 3.1 (https://github.com/tmux/tmux/wiki).

so screen is outdated? but rhel 7 provides screen 4.1.0 (some time around 2013) and then tmux v1.8 (also 2013) How is tmux an improvement in security? The latest screen is 4.8 (2020) Sounds like there are too many "meetings" going on at Red Hat... How about updating your Satellite software packages?

Could not find the logging functionality that I could with screen -L, by using the tmux.Any recommendation ?

I don't know how to do it with tmux, but as a workaround, you can log everything that happens in a shell session with the 'script' command (part of util-linux package.) To use it, type "script myoutput.txt", and it'll return right away. Now, everything you run in the new shell will be logged to myoutput.txt. When you're done, type "exit" (or hit Ctrl-D) to leave the script shell. It's not exactly the same as screen's -L use case, but might work for what you need.

From the man page man tmux I found that running tmux with -vv will create an output log file. Does this work for you?

tmux -vv

And later you can review the output by looking at the tmux output log file. The log file is created with the process id (PID) that tmux ran as.

cat tmux-out-$PID.log

Could not find the logging functionality that I used to do with ' screen -L' in the new tmux. Any recommendation?

I am frequently having to help colleagues, and find that "screen -x" is extremely useful. Takes a lot less effort, bandwidth, and time than using Webex or Gotomeeting. Does tmux have an equivalent feature? Thanks in advance.

(I am not oppsed to tmux, if I can achieve the same results. But, my interim solution was simply to download the most recent screen source (Feb 2020) and build it. There were zero problems...)

I also found screen -x to be very useful. With tmux, I use this process instead. First create the tmux "session", then attach two or more clients to that session. Please note that I'm using the long names (e.g. new-session / attach-session) instead of the abbreviations (e.g. new / attach)

tmux new-session -s MYNAME
tmux list-session
tmux attach-session -t MYNAME

Thank you. We will give it a try. Not quite as simple as the "-x" option, but I am happy there is a path here.

If you only plan on running a single tmux, session then you can just use these two commands. The first command will create a new session. The second command will attach to the only available session.

tmux

then

tmux a