Почему команда обновления отображает одинаковую PPA?

Имел ту же проблему на 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 ).

0
27.04.2019, 14:50
2 ответа

Похоже, что основной файл со списком репозиториев был удален.

Следующая команда предоставит исходный базовый файл /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

Внешние ссылки:

Ubuntu 18.04 ISO (2 ГБ)

Gist Source для полной Ubuntu 18.04 LTS/etc/sources.list(обычный текст)

2
28.01.2020, 02:31

@RubberStamp... Мне не удалось оставить комментарий в разделе комментариев -. Пишет, что пользователь не имеет права комментировать этот пост.

В любом случае, не только для атома, но и для любого пакета, который я пытаюсь установить, вывод будет либо

E: Unable to locate package "package-name"

или

E: Package "package-name" has no installation candidate
0
28.01.2020, 02:31

Теги

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