2016-10-20 6 views
3

Обновление gcloud на Ubuntu 16.04 с ошибкой при настройке postinst. Google-cloud-sdk был установлен и используется без проблем установки, но это прерывает обновление на этапе конфигурации. Проблема заключается в том, что скрипт postinst выполняет скрипт Python3 с интерпретатором Python2, который не работает в синтаксической строке Python3.Обновление google-cloud-sdk Сбой при настройке


# sudo dpkg --configure google-cloud-sdk 
Setting up google-cloud-sdk (131.0.0-0) ... 
dpkg: error processing package google-cloud-sdk (--configure): 
subprocess installed post-installation script returned error exit status 1 
Errors were encountered while processing: 
google-cloud-sdk 

dpkg: error processing package google-cloud-sdk (--configure): 
subprocess installed post-installation script returned error exit status 1 
Errors were encountered while processing: 
google-cloud-sdk 


# sudo dpkg --configure -D 777 google-cloud-sdk 
D000001: ensure_diversions: new, (re)loading 
D000001: process queue pkg google-cloud-sdk:all queue.len 0 progress 1, try 1 
D000040: checking dependencies of google-cloud-sdk:all (- <none>) 
D000400: checking group ... 
D000400:  checking possibility -> python2.7 
D000400:  checking non-provided pkg python2.7:amd64 
D000400:  is installed, ok and found 
D000400:  found 3 
D000400: found 3 matched 0 possfixbytrig - 
D000040: ok 2 msgs >><< 
D000040:  checking Breaks 
Setting up google-cloud-sdk (131.0.0-0) ... 
D000002: fork/exec /var/lib/dpkg/info/google-cloud-sdk.postinst (configure 129.0.0-0) 
dpkg: error processing package google-cloud-sdk (--configure): 
subprocess installed post-installation script returned error exit status 1 
D000001: ensure_diversions: same, skipping 
Errors were encountered while processing: 
google-cloud-sdk 


# sudo /usr/bin/gcloud components post-process 

Compiling platform/gsutil/third_party/httplib2/python3/httplib2/__init__.py ... 
    File "platform/gsutil/third_party/httplib2/python3/httplib2/__init__.py", line 350 
    print('%s:' % h, end=' ', file=self._fp) 
         ^
SyntaxError: invalid syntax 

ERROR: gcloud crashed (CommandLoadFailure): Problem loading gcloud.dns.record-sets.import: 'module' object has no attribute 'CAA'. 

If you would like to report this issue, please run the following command: 
    gcloud feedback 


# sudo which python; sudo python --version 
/usr/bin/python 
Python 2.7.12 

# sudo which python3; sudo python3 --version 
/usr/bin/python3 
Python 3.5.2 

Trace: 
/usr/lib/google-cloud-sdk/gcloud_main.py:130 
gcloud_cli.Execute() 
    [...] 
/usr/lib/google-cloud-sdk/calliope/backend.py:1630 
resources = command_instance.Run(args) 
surface/components/post_process.py:40 
table.Update(self.cli) 
/usr/lib/google-cloud-sdk/command_lib/static_completion/table.py:154 
table = CompletionTableGenerator(cli).Wa... 
/usr/lib/google-cloud-sdk/calliope/walker.py:98 
root.LoadAllSubElements(recursive=True) 
/usr/lib/google-cloud-sdk/calliope/backend.py:1490 
element.LoadAllSubElements(recursive=rec... 
/usr/lib/google-cloud-sdk/calliope/backend.py:1490 
element.LoadAllSubElements(recursive=rec... 
/usr/lib/google-cloud-sdk/calliope/backend.py:1488 
element = self.LoadSubElement(name) 
/usr/lib/google-cloud-sdk/calliope/backend.py:1528 
parent_group=self) 
/usr/lib/google-cloud-sdk/calliope/backend.py:1592 
self._GetModuleFromPath(module_dir, modu... 
/usr/lib/google-cloud-sdk/calliope/backend.py:1258 
name_to_give, os.path.join(module_dir, *... 
/usr/lib/google-cloud-sdk/core/util/pkg_resources.py:108 
module = imp.load_module(name_to_give, f... 
surface/dns/record_sets/import.py:19 
from googlecloudsdk.api_lib.dns import i... 
/usr/lib/google-cloud-sdk/api_lib/dns/import_util.py:162 
rdatatype.CAA: _CAATranslation, 
CommandLoadFailure: Problem loading gcloud.dns.record-sets.import: 'module' object has no attribute 'CAA'. 
[output truncated] 

# sudo gcloud --version 
Google Cloud SDK 131.0.0 
alpha 2016.10.17 
beta 2016.10.17 
bq 2.0.24 
bq-nix 2.0.24 
core 2016.10.17 
core-nix 2016.10.17 
gcloud 
gsutil 4.21 
gsutil-nix 4.21 

ответ

4

я столкнулся с той же проблемой на экземпляре Google Compute Engine под управлением Ubuntu 16.04, и я был в состоянии решить ее с помощью следующих команд:

sudo apt-get remove google-cloud-sdk 
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" 
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list 
sudo rm /etc/apt/sources.list.d/partner.list 
sudo apt-get install google-cloud-sdk 
+0

Да , Я попытался удалить и повторно добавить репо таким образом, но это не помогло. Только попытку для нескольких обновлений, пока он, наконец, не работал. Команда Google была отзывчива в билете, но так и не смогла объяснить, почему их SW пытался запустить код Python 3 в интерпретаторе Python 2.7. В конце концов, это просто работало без объяснения причин. Надеюсь, это не повторится. – Matthew

+1

Вам нужно жизненно важное значение ' curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -; sudo apt-get update ' перед тем, как попробовать' sudo apt-get instal ....' –

+0

@Matthew Как вы разрешили эту ошибку, Becuase такая же ошибка происходит со мной –

0

Все, что я сделал, это применить флаг autoremove, и он был переустановлен самостоятельно. На мой маленький экземпляр потребовалось навсегда, но он, наконец, работал.

apt-get autoremove 

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

Edit:

Так как мой экземпляр Google был самым маленьким можно, не хватает памяти для выполнения этой задачи. Как только я остановил веб-сервер и все задачи PM2, он, наконец, закончил без ошибок.

6

Прямой причиной может быть нехватка памяти. Попробуйте добавить swap перед обновлением.

sudo dd if=/dev/zero of=/var/swap bs=2048 count=524288 
sudo chmod 600 /var/swap 
sudo mkswap /var/swap 
sudo swapon /var/swap 
sudo apt upgrade 
+0

Я не добавлял swap или что-то еще, явно или неявно в последующих обновлениях в google-cloud-sdk, но в итоге обновление заставило его снова начать работать. – Matthew

+1

@Matthew Я знал это. Мой ответ для тех, у кого такая же проблема, и все еще страдает. – Jia

+0

Я делаю вещи на примере GCE Micro; мне никогда не приходило в голову, что до сих пор это может быть недостаточно. Это все решило. \ o/ – wTyeRogers

0

Проблема загрузки gcloud.dns.record-sets.import: 'module' object has no attribute 'CAA'.

Причина: установлен

Старые Python пакеты.

Я полагаю, что это старый dnspython

Если вы используете пип:

pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U 

Все пакеты ПУМ будут обновлены

Если вы используете easy_install вам нужно проверить вручную