Имел ту же проблему на Wily, нашел этот пост во время поиска известного решения.
Проблема в том, что новый сервис, gpu-manager (понятия не имеет, что он делает и почему), облажается с альтернативами. Включение его в черный список и переустановка шмеля так, чтобы были исправлены альтернативы обновления, решает проблему, больше не черные экраны и optirun работают по назначению.
Убедитесь, что не осталось сломанных/ etc/X11/xorg.conf, выполните следующие действия и перезагрузитесь:
sudo systemctl mask gpu-manager.service
sudo apt-get install --reinstall bumblebee bumblebee-nvidia
-121--184846-
В вашем коде:
if [[ "$(echo "$2" | sed 's/.two//g')" == "load" ]] &&
[[ "$1" == "Decrypt" ]] ||
[[ "$(echo "$2" | sed 's/.two//g')" == "load" ]] &&
[[ "$1" == "Encrypt" ]]
вызов sed можно упростить до: $ {2%? два}
, если замена находится в конце переменной $2
. Пожалуйста, поймите, что "любой символ", который точка (.) представляет в седе, эквивалентен вопросительному знаку (?) в шаблонах (спасибо @ terdon). Если необходимо выполнить замену для всех экземпляров .two
, следует использовать "$ {2//? два}"
.
Тогда мы получим эту более короткую версию:
if [[ "${2//?two}" == "load" ]] && [[ "$1" == "Decrypt" ]] ||
[[ "${2//?two}" == "load" ]] && [[ "$1" == "Encrypt" ]]
, которая делает , если A & & B | | C & & D
.
Если A имеет значение true (load = load), выполняется B.
Если значение B равно true (Decrypt = Decrypt), следующая фраза |
(C) пропускается и
затем выполняется D (Decrypt = Encrypt).
Результаты (последняя выполненная команда) в значении false
.
Затем выполняется else
.....
Я подозреваю, что вы имеете в виду , если (A & & B) | | (C & & D)
, который, как A
совпадает с C
, является точно таким же, как , если (A & & B) | | (A & D)
,
которые можно упростить (используя распределительное свойство ) до , если A & (B | | D)
:
if [[ "${2//?two}" == "load" ]] &&
( [[ "$1" == "Decrypt" ]] || [[ "$1" == "Encrypt" ]] );
then
key=aNXlye1tGbd0uP
else
if [ -z "$key" ]
then key="$2"
fi
fi
Тест -z
для "$ key" можно упростить до простого расширения: key = "$ {key: - $2}"
Возможно, это было бы более удобочитаемым (IMO) следующим образом:
if A; then
if B || D; then
Что переводится так:
if [[ "${2//?two}" == "load" ]]
then if [[ "$1" == "Decrypt" ]] || [[ "$1" == "Encrypt" ]]
then key=aNXlye1tGbd0u
else key="${key:-$2}"
fi
else key="${key:-$2}"
fi
Или, используя идею @ terdon, можно написать следующим образом:
if [[ "${2//?two}" == "load" ]] &&
[[ "$1" =~ (De|En)crypt ]]
then key=aNXlye1tGbd0u
else key="${key:-$2}"
fi
Обратите внимание, что это также эквивалентно:
if [[ ( "${2//?two}" == "load" ) &&
( "$1" =~ (De|En)crypt )
]]
then key=aNXlye1tGbd0u
else key="${key:-$2}"
fi
Скобки не нужны, но добавлены для реализации идеи, что внутри [
теста можно придать структуру тестам, добавляющим пробел (табуляция, пробел, новая строка) и скобки. Это не работает в тестах [
.
-121--199191-
Проще всего с apt-show-versions -u
. Показывает только установленные пакеты с доступными обновлениями текущей и доступной версий. Используйте -b
для отображения только имени пакета (подходит для подачи в apt-get install
).
Похоже, что основной файл со списком репозиториев был удален.
Следующая команда предоставит исходный базовый файл /etc/apt/sources.list
, полученный из загруженного файла образа для Ubuntu 18.04 LTS.
sudo echo -e "# Sources.list obtained directly from the downloaded Ubuntu iso image file\ndeb http://archive.ubuntu.com/ubuntu/ bionic main restricted\ndeb http://security.ubuntu.com/ubuntu/ bionic-security main restricted\ndeb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted" > /etc/apt/sources.list
После создания основного исходного файла репо вам необходимо обновитьapt-cache
:
sudo apt-get update
На этом этапе вы можете получить ошибки в зависимости от того, конфликтуют ли некоторые из ваших PPA с основным репозиторием. Рекомендуется отключить все ваши PPA, прежде чем пытаться исправить проблемы с репо. Однако это также может привести к ошибкам, если для некоторого программного обеспечения, установленного из отдельных PPA, требуются более новые библиотеки, чем официальная Ubuntu.
Если при обновлении не возникает ошибок, возможно, все в порядке. Однако вам может потребоваться включить менее ограниченный список репо ниже. Вы можете заменить содержимое /etc/apt/sources.list
следующим списком репо:
#deb cdrom:[Ubuntu 18.04 LTS _Bionic Beaver_ - Release amd64 (20180426)]/ bionic main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic universe
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse
Внешние ссылки:
Gist Source для полной Ubuntu 18.04 LTS/etc/sources.list
(обычный текст)
@RubberStamp... Мне не удалось оставить комментарий в разделе комментариев -. Пишет, что пользователь не имеет права комментировать этот пост.
В любом случае, не только для атома, но и для любого пакета, который я пытаюсь установить, вывод будет либо
E: Unable to locate package "package-name"
или
E: Package "package-name" has no installation candidate