Это не ответ как таковой, а несколько комментариев об ошибках и отчетах об ошибках.
Во-первых, вы не можете сообщить об ошибке в устаревшей установке программного обеспечения, это неприемлемо. Таким образом, ошибки, возникающие в старых системах, не могут быть устранены каким-либо реальным образом, потому что они уже могли быть исправлены много лет назад.
Это относится ко всем замороженным пулам дистрибутивов, в частности к Mint, стабильным версиям Debian, Ubuntu LTR, Redhat enterprise, CentOS и так далее.
Это ставит пользователей таких замороженных пулов в невыгодное положение, когда дело доходит до регистрации отчетов об ошибках.
Чтобы помочь в этом процессе, вам нужно сделать несколько вещей:
Вполне возможно, что между вашей версией и текущей версией git было 100 или более выпусков Mate, и это единственная версия, в которой они могут действительно надежно отслеживать ошибки.
Если вы читаете свой отчет об ошибке, отправленный Mate/Marcos, вы видите, что вы предполагаете, что они либо знают, либо заботятся о том, какие особенности Mate работают в Mint. Я могу заверить вас как разработчика, что это НЕ тот случай, когда кто-то отправляет отчет о проблеме, если только я не могу четко определить, что это совершенно не связано с версией моего программного обеспечения, которое они используют, в старой версии я в основном закрываю проблему и игнорирую это, так как я никак не могу узнать, какие ошибки я исправил между годами старого программного обеспечения и сегодняшним.
Вы также не предоставили им никаких системных спецификаций, например, через inxi -bxxx.
Начиная с вашей версии Mint 17.3: https://en.wikipedia.org/wiki/Linux_Mint_version_history
Main Cinnamon, MATE 4 декабря 2015 г. [составлено из Ubuntu 14.4]
Был ВЫПУЩЕН почти 2 года назад, сделан из выпуска Ubuntu, который почти 3-4 года, но то, что он выпущен, не означает, что пакетам, из которых он был сделан, 2-3 года, вполне может быть, что некоторым из них 3-4 года, так что вы, по сути, спрашиваете Mate/ Маркоса, чтобы угадать, какая версия Mate была выпущена в то время (именно поэтому вы должны предоставить им актуальную версию Mate, работающую в вашей системе, чтобы им не пришлось гадать). Установите последнюю версию inxi, а не ту, которая поставлялась с вашим устаревшим Mint ( sudo wget -O /usr/bin/inxi smxi.org/inxi
), тогда она может показать вашу версию Mate, возможно.
В этот момент разработчик может просмотреть отчет, но, скорее всего, он закроет его, поскольку он использует версию Mate, которая слишком устарела, чтобы даже догадываться о проблемах.
Когда вы отправляете отчет о проблеме такого типа, вы ставите сопровождающего в очень затруднительное положение, потому что вы просите его угадать что-то, о чем в принципе невозможно догадаться, поэтому я предполагаю, как они справляются с этим. это игнорировать его. Я обычно отвечаю на такие отчеты о проблемах словами «не исправлю», «не буду смотреть» и закрываю, так как речь идет об устаревшем программном обеспечении.
Кроме того, вы используете очень старую версию nouveau со старым ядром, старым Xorg и старым QT, и места, где могут возникнуть проблемы между всеми этими переменными, совершенно невозможно угадать, но вы должны как минимум показать разработчикам, о каком программном обеспечении вы здесь говорите. Точно так же вам не повезет, опубликовав отчет о проблеме в Mint, поскольку они также не собираются поддерживать старый выпуск, даже если они заявляют, что будут. Но именно здесь вы должны отправить отчет об ошибке, где он будет оставаться нерешенным 10 к 1.
Сообщалось о проблемах с QT, которые схожи для старых оконных менеджеров и старых оконных менеджеров xmonad, https://bugzilla.redhat. com/show_bug.cgi?id=1182674— одна из них, как вы можете видеть, проблема была решена в более новой версии оконного мастера, которая почти по определению не входит в эту версию Redhat.
Все просто:
!/bin/bash
while :
do
echo "Enter a positive integer number (-99 to quit):"
read NUMBER
if (( NUMBER == -99 ))
then
exit
fi
echo "$NUMBER: "
COUNTER=1
while (( COUNTER <= NUMBER ))
do
echo $COUNTER
((COUNTER++))
done
done
#!/bin/bash
while true; do
read -p 'Number (-99 to quit): '
if ! [[ "$REPLY" =~ ^-?[0-9]+$ ]]; then echo 'Error: Not an integer' >&2
elif (( REPLY == -99 )); then break
elif (( REPLY <= 0 )); then echo 'Error: Need positive integers >0' >&2
else
printf 'Got "%d", that is number %d\n' "$REPLY" "$(( ++c ))"
fi
done
Это бесконечный цикл, выход из которого происходит, когда пользователь вводит -99
. Любой положительный целочисленный ответ будет предлагать коду сказать Got "some number"
, за которым следует, сколько действительных чисел прочитано до сих пор, тогда как отрицательное целое число, ноль или не числовое значение -выдаст диагностическое сообщение о стандартной ошибке. В коде используется переменная REPLY
, в которую записывается переменная read
, если не указано другое имя переменной.
Проверка правильности числового ввода выполняется путем сопоставления ответа с регулярным выражением ^-?[0-9]+$
. Это выражение будет соответствовать , если ответ имеет форму, которую мы ожидаем (необязательное тире, за которым следует хотя бы одна цифра ). Если они не совпадают, выдается диагностическое сообщение о стандартной ошибке.
Вплоть до первого elif
мы не можем быть уверены, что $REPLY
является целым числом. После этого используем ((... ))
для арифметической оценки сравнений.
Проверка для -99
должна предшествовать проверке отрицательных целых чисел, так как в противном случае у нас не было бы возможности выйти из цикла.