Для обновления самого SDK Google Cloud и / или для установки / обновления компонентов SDK требуются разрешения на запись в каталог установки, поэтому эти операции необходимо выполнять с тем же идентификатором пользователя, что и первоначальная установка SDK (необязательно root / sudo).
Обновления, выполняемые с помощью команд gcloud component
, имеют только вышеуказанное требование.Кроме того, для обновлений с использованием диспетчера пакетов вашей системы требуется sudo, поскольку только суперпользователь может вносить изменения в систему с помощью диспетчера пакетов.
Ваш SDK был установлен с разрешениями sudo (sudo apt-get update && sudo apt-get install google-cloud-sdk
в указанном вами рецепте), поэтомутакже использовать sudo при установке / обновлении компонентов SDK.
У вас есть 2 варианта:
установить пакет google-cloud-sdk-app-engine-python
.ИМХО, это имеет больше шансов на успех, особенно если в SDK были какие-то специфичные для Ubuntu настройки.Он также сохраняет вашу установку пакета Ubuntu "в здравом уме", в том смысле, что информация, предоставляемая менеджером пакетов, будет соответствовать тому, что фактически установлено в SDK.Однако есть и недостаток: вы будете полагаться на обновления пакета ubuntu, чтобы стать доступными для обновления вашего SDK и / или его компонентов, что может быть неудобным, если вам нужны такие обновления быстро.
вы можете выполнить установку / обновление компонентов SDK с помощью команд gcloud
.Но это было бы совершенно неизвестно для управления пакетами Ubuntu.И вы можете столкнуться с проблемами, если есть специфичные для Ubuntu настройки, поскольку они не будут известны самому SDK.
Существует 3-й вариант, возможно,немного более утомительно, что я и выбрал (я использую opensuse).Вы можете скачать и установить стандартную linux-версию SDK, которая является автономной в том смысле, что она не имеет отношения к менеджеру пакетов (поэтому вам фактически не нужен sudo, SDK можно установить как обычный пользователь).Вы можете найти различные версии SDK здесь (обычные tar.gz
архивы).
Я предпочитаю этот третий подход, потому что установка содержится в каталоге, поэтому я могу установить несколько версий SDK одновременно и легко переключаться между ними, просто манипулируя символическими ссылками.В этом случае установка / обновление компонентов будет применяться к любой «текущей» установке SDK.Мне даже удавалось поддерживать работоспособность установок при полной переустановке ОС (SDK были в отдельном разделе, нежели ОС).