Python 3.9 и pip -3.9 во FreeBSD 12.2

openpgp.orgимеет возможностьhttps. Просто импортировал несколько ключей по их отпечаткам пальцев. Путь предсказуем, вам просто нужно заменить ${KEY_FINGERPRINT}отпечатком ключа, который вы хотите импортировать. Который конечно уже должен быть загружен наhttps://keys.openpgp.org:

curl --sSL https://keys.openpgp.org/vks/v1/by-fingerprint/${KEY_FINGERPRINT} | \
  gpg --import

Сервер ключей Ubuntu также имеет HTTP (S )API, с помощью которого можно получать ключи в формате ASCII:

curl -sSL https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x${KEY_FINGERPRINT} | \
  gpg --import

Обратите внимание на канал | gpg --import, который используется для импорта данных ключа в связку ключей GnuPG.

Автоматизация импорта ключей GPG/PGP через HTTPS:

Поскольку путь https://keys.openpgp.orgпредсказуем и зависит только от отпечатков ключей, хранящихся на сервере, мы можем автоматизировать импорт списка ключей, идентифицированных по их отпечаткам. Ниже проверено и известно, что оно работает правильно

Чтобы адаптировать сценарий для собственного использования, просто замените мои (3 )образца отпечатков ключей на отпечатки ключей, которые вы хотите импортировать, и, конечно же, установите переменную PATHSCRIPTSна желаемый путь:

#!/bin/bash

PATHSCRIPTS='/home/pi'

# Create text file using a Here-Doc containing Key Fingerprints of keys to import into keyring:

cat <<EOF> $PATHSCRIPTS/Key-fingerprints-list.txt
AEB042FFD73BAA7545EDA021343A2DF613C5E7F8
7AFAF20259E69236E43EEF521F45D0F6E89F27A6
704FCD2556C40AF8F2FBD8E2E5A1DE67F98FA66F
EOF

# Read the text file we created into an array
readarray arrayKeyFingerprints < $PATHSCRIPTS/Key-fingerprints-list.txt

# Loop through the array adding each key in turn by its fingerprint from keys.openpgp.org:
for i in ${arrayKeyFingerprints[@]}; do
    curl https://keys.openpgp.org/vks/v1/by-fingerprint/$i | gpg --import
done

Результаты приведенного выше скрипта -, который был сохранен как test.shи запущен на Raspberry Pi -, показаны ниже:

pi@pi4-ap1:~ $./test.sh 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100  3212  100  3212    0     0   7629      0 --:--:-- --:--:-- --:--:--  7629
gpg: /home/pi/.gnupg/trustdb.gpg: trustdb created
gpg: key 343A2DF613C5E7F8: public key "Terrence Houlahan (I'm the former NYPD cop living in the UK.  This is my only *personal* key.  Trust no others.) <terrence@houlahan.co.uk>" imported
gpg: Total number processed: 1
gpg:               imported: 1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100  3220  100  3220    0     0  18720      0 --:--:-- --:--:-- --:--:-- 18612
gpg: key 1F45D0F6E89F27A6: public key "Terrence Houlahan (Terrence Houlahan Linux & Network Engineer) <houlahan@F1Linux.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100  3252  100  3252    0     0  19473      0 --:--:-- --:--:-- --:--:-- 19473
gpg: key E5A1DE67F98FA66F: public key "Terrence Houlahan (Open-IPcamera Project Developer Key Terrence Houlahan) <terrence.houlahan@open-ipcamera.net>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Делаем список ключей и там наши (3 )импортированные ключи:

pi@pi4-ap1:~ $ gpg --list-keys
/home/pi/.gnupg/pubring.kbx
---------------------------
pub   rsa4096 2011-03-13 [SC]
  AEB042FFD73BAA7545EDA021343A2DF613C5E7F8
uid           [ unknown] Terrence Houlahan (I'm the former NYPD cop living in the UK.  This is my only *personal* key.  Trust no others.) <terrence@houlahan.co.uk>
sub   rsa4096 2011-03-13 [E]

pub   rsa4096 2019-02-06 [SC] [expires: 2029-01-31]
  7AFAF20259E69236E43EEF521F45D0F6E89F27A6
uid           [ unknown] Terrence Houlahan (Terrence Houlahan Linux & Network Engineer) <houlahan@F1Linux.com>
sub   rsa4096 2019-02-06 [E] [expires: 2029-01-31]

pub   rsa4096 2019-02-06 [SC] [expires: ????-??-??]
  704FCD2556C40AF8F2FBD8E2E5A1DE67F98FA66F
uid           [ unknown] Terrence Houlahan (Open-IPcamera Project Developer Key Terrence Houlahan) <terrence.houlahan@open-ipcamera.net>
sub   rsa4096 2019-02-06 [E] [expires: ????-??-??]
2
02.03.2021, 04:28
2 ответа

Набор двоичных пакетов, распространяемых проектом FreeBSD, который можно установить с помощью pkg (8 ), включает пакеты Python только для одной версии Python (, то есть Python 3.7 в момент, как вы можете видеть в файле Mk/bsd.default -version.mk в дереве портов FreeBSD). Вот почему вы видите только версию pip Python 3.7, доступную в репозитории пакетов (, то естьpy37-pip).

Пользователи, желающие использовать другую версию Python для своих пакетов FreeBSD, могут собирать пакеты из исходного кода. Версию Python по умолчанию можно установить в make.conf (5)следующим образом:

DEFAULT_VERSIONS=python=3.9 python3=3.9

Если вы решите пойти по этому пути, я рекомендую использовать poudriere для настройки собственного репозитория пакетов. Это официальный инструмент FreeBSD для сборки пакетов. Кроме того, стоит отметить, что сборка из исходного кода обычно хорошо поддерживается во FreeBSD.

Если добавление poudriere в вашу инфраструктуру обходится слишком дорого, я бы просто создал виртуальную среду для Python, а затем установил там нужную версию pip.

Я не советую запускать pip install --upgrade pipот имени пользователя root, так как это загрязнит вашу систему. Причина в том, что вы собираетесь обновить pip, который вы установили с помощью pkg, с помощью pip. Это может привести к неожиданным несоответствиям в вашей системе.

3
18.03.2021, 22:27

Сразу пришло в голову, что я бы предложил установить pip 3.7, а затем использовать его для обновления через

pip install --upgrade pip

Это выглядит так же, как Как мне обновить сам pip из моего виртуального окружения? на StackOverflow.

0
18.03.2021, 22:27

Теги

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