The option --status-fd
tells dpkg
to report the progress in a way that other programs can parse, for example to present nice progress reports to the user in a GUI.
The argument to --status-fd
is a file descriptor, i.e. number that designates an open file. Simplifying things a bit:
- When a process opens a file for the first time, that file gets assigned descriptor number 0. The next time, the file is assigned descriptor number 1, and so on. The
open
system call returns the file descriptor.
- When the process wants to perform an operation on the file, such as reading or writing from it, it designates the file by its descriptor, e.g.
read(0, addr, 10)
means “read 10 bytes from descriptor 0 and put them at memory address addr
”.
- Each process has its own file descriptors: file descriptor n in process p bears no relation with file descriptor n in process q.
- Processes inherit their parent's file descriptors when they are created.
- By convention, processes are executed with file descriptors 0, 1 and 2 already open. 0 is to be used for input, 1 for normal output and 2 for error messages.
Redirection opens a file on a particular descriptor. For example, in a shell script or on the command line, mycommand <somefile
connects file descriptor number 0 (standard input) so somefile
(which is opened for reading) instead of whatever it was before (the terminal, if the command is executed in a terminal). You can prepend a descriptor number to the redirection operator: mycommand 3<somefile
connects file descriptor number 3 to somefile
(most commands won't do anything with that file descriptor).
When dpkg is installing, upgrading or removing packages, it executes various other commands in the packages' pre/post install/removal scripts. Some of these commands may read input or display messages, so dpkg keeps the standard descriptors connected to whatever they were connected to when it was invoked.
Since the standard file descriptors are already taken, dpkg
allows the caller to specify a different one for the status reports. You could put the status reports in a file, for example:
dpkg --status-fd 3 -i somefile.deb 3>/tmp/dpkg.status
In another terminal, run tail -n +1 -f /tmp/dpkg.status
and watch the status messages coming.
Often the front-end that calls dpkg
and wants status reports will open a pipe (a unidirectional communication channel) before it runs dpkg
, and pass the file descriptor to write end of the pipe as the argument of --status-fd
. The front-end then reads from the read end of the pipe and gets status messages as they are produced, without risking them getting mixed up with anything else.
fglrx
is no longer supported in Debian 9. Your post appears related to this question previously asked in that they are reporting issues with missing fglrx
. I think this forum post has a solution that could work for you. I am including links to the official Debian wiki on how to install open source and proprietary drivers. I recommend you only use the open source drivers.
Use xrandr to Correct Configuration
Delete your old x.org configuration (rm /etc/X11/xorg.conf
) and set the output with xrandr.
xrandr -q
If this does not help, I recommend you start from scratch.
Start from Scratch
To make the troubleshooting process smoother let us start by purging all old configurations and drivers. As root(sudo) run these commands:
apt purge "fglrx.*"
rm /etc/X11/xorg.conf
apt install --reinstall xserver-xorg-core libgl1-mesa-glx:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:amd64 libgl1-mesa-dri:amd64
Make sure your sources.list contains the contrib and non-free repositories like so:
deb http://ftp.us.debian.org/debian/ stable main contrib non-free
If you needed to add them, do not forget to update apt, simply run as root(sudo) apt update
. Next if you choose to use only the open source firmware for your card you will need to run this command:
apt-get install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati
And reboot your computer to initialize your graphics drivers and settings.
Conclusion
Please comment with any issues and I can update this answer to try and best correct your issue. Do not forget to reference the wiki on how to remove and install drivers. I believe this post on multi-monitor setups for Debian could help as well. Best of Luck!
Best Answer
The version numbers in Debian are of the form
where
epoch
is a single (generally small) unsigned integer, which is included to allow mistakes in the version numbers of older versions of a package. If omitted, theepoch
is assumed to be zero.upstream_version
is usually the version number of the original source package from which the .deb file has been made. It is usually kept the same as the format used for the upstream source.debian_revision
specifies the version of the Debian package based on the upstream version. It is optional and is omitted in cases where a piece of software was written specifically to be a Debian package.