В чем разница между «apt-get install / testing» и «apt-get install -t test »

Следует использовать лучшее значение для pi и разрешить масштабирование, как определено по умолчанию в bc (20 цифр):

$ echo "r=3; pi=4*a(1); (4/3)*pi*(r^3)" | bc -l
113.09733552923255658339

Это лучший способ выполнения вычисления. Масштаб — это параметр для определения точности, используемой в вычислении, а не параметр для форматирования числовых выходных данных результата.

Для форматирования числа можно использовать printf:

$ result="$(echo "r=3; pi=4*a(1); (4/3)*pi*(r^3)" | bc -l)"
$ printf '%.2f' "$result"
113.10

Если у вас возникли проблемы с числовым десятичным символом (, или . ), вы можете использовать эту версию:

$ LC_NUMERIC=C printf '%.2f' "$result"
113.10

printf округляет число после реализации IEEE 754

Конечно, вы можете заставить bc вырезать десятичные дроби с окончательным изменением масштаба:

$ echo "r=3; pi=4*a(1); res=(4/3)*pi*(r^3); scale=2; res/1" | bc -l
113.09

Но это плохая идея в целом.

3
07.12.2016, 01:16
2 ответа
apt-get install <package_name>/testing
apt-get install -t test <package_name>

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

Второй метод попытается установить/обновить все зависимости. Конечно, учитывая приведенный выше пример, 'apt-get' спросит вас, прежде чем продолжить.

Ответ от Debian wiki :AptPreferences

4
27.01.2020, 21:12

Что ж, этот вопрос меня щекочет со вчерашнего дня, когда я впервые прочитал ваш пост.

Как правило, эти две версии apt-get install совпадают, согласно справочным страницам apt-get.

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

Но если вы попытаетесь установить несколько пакетов с использованием подстановочных знаков, я смогу заметить некоторые различия.

Эта команда не работает:

apt-get install -s mate*/testing

Хотя эта команда работает нормально:

apt-get install -s -t testing mate*

Похоже, что mate * / testing выполняет поиск из всех пакетов, содержащих mate, и пытается установить все пакеты thos из тестового репозитория. Если некоторые пакеты недоступны в тестовом репозитории, вы получите сообщение об ошибке и apt-get завершится ошибкой.

С другой стороны, параметр -t test mate * выбирает пакеты mate *, доступные только в репозитории для тестирования. Он не пытается искать и устанавливать пакеты mate *, которые недоступны в тестовом репозитории, и поэтому не дает сбоев.

Вы можете попробовать, если хотите использовать вышеуказанные команды, используя опцию -s (simulate), которая позволяет вам видеть все сообщения apt-get в вашем терминале, как если бы они появлялись при реальной установке (но на самом деле ничего не установлены).

PS: Существует также очевидная и незначительная разница между двумя версиями: Работая с версией "/ release", вы можете комбинировать (если хотите) различные пакеты из разных / релизов, а с " -t release "версия, вы устанавливаете глобально выпуск, который будет применяться ко всем пакетам, которые будут следовать за apt-get install.

3
27.01.2020, 21:12

Теги

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