Почему у меня возникла следующая проблема при установке freeglut3-dev, и что мне нужно было сделать по-другому?

Это должно сработать:

xrandr --listactivemonitors | grep >/dev/null && xrandr --output --off || xrandr --output --right-of --mode 1920x1080

Пояснение:

  • xrandr --listactivemonitorsпечатает только те мониторы, которые в данный момент включены.
  • grep >/dev/nullПоиск в предыдущем выводе имени монитора, который мы хотим переключить. Если он найден, grep вернет код выхода, который интерпретируется оболочкой как истинный. Если он не найден, он вернет код выхода, который интерпретируется оболочкой как false. Вывод отправляется в /dev/null, чтобы не загромождать экран.
  • && xrandr --output --offЕсли grep найдет монитор в списке активных мониторов, то он запустится, отключив монитор. Но если grep завершился с ложным кодом выхода, то это не будет выполнено, потому что независимо от того, что он оценивает, логическое предложение and в целом уже известно как ложное.
  • || xrandr --output --right-of --mode 1920x1080Если grep не находит его, то выполняется этот пункт, включая монитор. Он выполняется, поскольку предыдущее предложение(grep... && xrandr...)оценивается как ложное. Чтобы узнать, верно ли это логическое или предложение, оболочка должна оценить правую часть. С другой стороны, если левая сторона -уже оценена как истина, тогда нет необходимости оценивать правую сторону -, поэтому это не будет выполнено.

Вот краткое описание потока управления, опосредованного логическими условиями.

0
22.10.2019, 14:38
1 ответ

В этом корень проблемы:

# apt-cache policy libdrm2
libdrm2:
  Installed: 2.4.95-1~bpo9+1
  Candidate: 2.4.95-1~bpo9+1
  Version table:
 *** 2.4.95-1~bpo9+1 100
        100 /var/lib/dpkg/status
     2.4.74-1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages

Это указывает на то, что в какой-то момент вы установили libdrm2из бэкпортов Stretch, а также что бэкпорты больше не настроены в ваших репозиториях.

Когда ты бежал

apt-get install libdrm2=2.4.74-1

вы попросили apt-getпонизить версию libdrm2. В этом сценарии apt-getне понижает связанные пакеты сам по себе; он проверяет результирующие зависимости и удаляет все пакеты, чьи зависимости больше не удовлетворяются. В этом случае другие пакеты, которые вы установили из бэкпортов и которые имели зависимость от libdrm2новее 2.4.74, будут удалены:libegl1и т. д. Пакеты, зависящие от них, также будут удалены; это включает xserver-xorg-core. Процесс продолжается до тех пор, пока не останется ни одного пакета с неудовлетворенными зависимостями...

Вы не сломали свою систему; для этого требуются дополнительные подтверждения. Ваш apt-get installне сделал ничего особенно полезного, потому что вы дали ему список пакетов, которые теперь являются кандидатами на автоматическое удаление; эти пакеты все еще установлены. Чтобы отменить удаление, вы должны установить пакеты, которые были удалены:

The following packages will be REMOVED:
  audacious audacious-plugins compton-conf libaudqt0 libegl-mesa0 libegl1
  libegl1-mesa libgbm1 libqgsttools-p1 libqt5gui5 libqt5multimedia5
  libqt5multimedia5-plugins libqt5multimediawidgets5 libqt5opengl5
  libqt5printsupport5 libqt5svg5 libqt5widgets5 libqt5x11extras5
  libwayland-egl1-mesa qt5-gtk-platformtheme virtualbox-5.2 wireshark
  wireshark-qt xorg xserver-xorg xserver-xorg-core xserver-xorg-input-all
  xserver-xorg-input-libinput xserver-xorg-input-wacom xserver-xorg-video-all
  xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev
  xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl
  xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware
4
28.01.2020, 02:17

Теги

Похожие вопросы