Общее правило заключается в том, что 32-разрядная (ОС и приложение) будет работать на 64-разрядной, но 64-разрядная (ОС и приложение) не будет работать на 32-разрядной:
[d8 ] Для запуска 64-разрядной ОС вам потребуется поддержка от 64-битного процессора. Для запуска 64-битного приложения вам нужна поддержка как 64-разрядной ОС, так и 64-битного процессора. 32-разрядное приложение будет работать на 32-разрядной или 64-разрядной ОС без каких-либо проблем. Но 64-битное приложение будет работать только в 64-битной ОС, а 64-разрядная ОС будет работать только на 64-битном процессоре.
Для установки 64-разрядной ОС необходим 64-разрядный процессор. Обратитесь к производителю вашего компьютера, чтобы узнать, совместима ли ваша система с 64-разрядной версией.
32-разрядные системы имеют ограничение на оперативную память 4 ГБ, что означает, что они не могут адресовать более 4 ГБ ОЗУ, даже если в системе установлено больше (не все из них будут использоваться). Обходные пути доступны, но их трудно сделать для обычного пользователя.
Примечание: Ubuntu 12.10 и new будут автоматически поддерживать PAE. До 12.10 у вас есть возможность выбрать поддержку PAE в зависимости от вашего процессора. PAE расширяет максимальную ОЗУ на 32-битной до 64 ГБ, здесь можно найти больше информации.
64-разрядные версии имеют дополнительные преимущества, включая увеличенную пропускную способность, аппаратное обеспечение DEP (предотвращение выполнения данных) и лучшую защиту ядра .
Большинство 32-разрядных приложений будут продолжать работать в 64-битных системах, но некоторые приложения вообще не работают или будут работать медленнее.
Для получения дополнительной информации вы можете посмотреть здесь .
1Состав: Microsoft
Не забудьте установить DEBIAN_FRONTEND=noninteractive для этих надоедливых подсказок о том, какую версию поддерживать:
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
Если вы этого не сделаете, ваш скрипт будет висеть в исправлении. Поэтому, если вы собираетесь сделать это в скрипте, я бы сделал следующее:
#!/usr/bin/env bash
set -e
patching(){
# sudo specified because this was from my bootstrap script for an
# ec2 instance remove the sudos as previously stated if you are
# going to exec it from your current shell
sudo apt-get update -y;
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
};
patching;
Ранее указанные методы будут работать ... пока они этого не сделают.
I должен был вернуться к предыдущему сценарию, который я написал, чтобы найти эту переменную.
Надеюсь, это поможет кому-то еще с их скриптом patch / bootstrap.
Способ работы sudo заключается в том, что по умолчанию он дает вам 15 минут, прежде чем он снова попросит пароль. Поэтому да, используя две команды, будет работать отлично, и в зависимости от того, как долго apt-get update запускается, вам нужно будет вводить пароль один раз.
Однако это не лучшая практика. Вместо этого я бы предложил сделать весь ваш скрипт запущенным с помощью sudo вместо того, чтобы помещать его перед каждой командой в файле. Другими словами, скрипт должен быть:
#!/bin/bash
apt-get update
apt-get upgrade
И запустите его как
sudo ./my_script.sh
Обратите внимание, что здесь мы используем #!/bin/bash строку для использования оболочки bash как переводчик. Это сильно отличается от /bin/sh. Для того, что вы делаете, это не имеет значения, но если вам нужно знать, что они отличаются синтаксисом некоторых операторов.
Тем не менее, даже лучший подход заключался бы в том, чтобы полностью избавиться от скрипта и использовать функцию или псевдоним, который делает то, что вы хотите. Скрипты действительно предназначены для большого количества кода, который вы хотите использовать повторно. Для 2 - 3 строк будет функция или псевдоним в файле ~/.bashrc, который будет достаточным.
Лично я сделал бы что-то подобное в моем ~/.bashrc
alias agu="sudo bash -c 'apt-get update && apt-get upgrade'"
Не забудьте установить DEBIAN_FRONTEND=noninteractive для этих надоедливых подсказок о том, какую версию поддерживать:
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
Если вы этого не сделаете, ваш скрипт будет висеть в исправлении. Поэтому, если вы собираетесь сделать это в скрипте, я бы сделал следующее:
#!/usr/bin/env bash
set -e
patching(){
# sudo specified because this was from my bootstrap script for an
# ec2 instance remove the sudos as previously stated if you are
# going to exec it from your current shell
sudo apt-get update -y;
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
};
patching;
Ранее указанные методы будут работать ... пока они этого не сделают.
I должен был вернуться к предыдущему сценарию, который я написал, чтобы найти эту переменную.
Надеюсь, это поможет кому-то еще с их скриптом patch / bootstrap.
Способ работы sudo заключается в том, что по умолчанию он дает вам 15 минут, прежде чем он снова попросит пароль. Поэтому да, используя две команды, будет работать отлично, и в зависимости от того, как долго apt-get update запускается, вам нужно будет вводить пароль один раз.
Однако это не лучшая практика. Вместо этого я бы предложил сделать весь ваш скрипт запущенным с помощью sudo вместо того, чтобы помещать его перед каждой командой в файле. Другими словами, скрипт должен быть:
#!/bin/bash
apt-get update
apt-get upgrade
И запустите его как
sudo ./my_script.sh
Обратите внимание, что здесь мы используем #!/bin/bash строку для использования оболочки bash как переводчик. Это сильно отличается от /bin/sh. Для того, что вы делаете, это не имеет значения, но если вам нужно знать, что они отличаются синтаксисом некоторых операторов.
Тем не менее, даже лучший подход заключался бы в том, чтобы полностью избавиться от скрипта и использовать функцию или псевдоним, который делает то, что вы хотите. Скрипты действительно предназначены для большого количества кода, который вы хотите использовать повторно. Для 2 - 3 строк будет функция или псевдоним в файле ~/.bashrc, который будет достаточным.
Лично я сделал бы что-то подобное в моем ~/.bashrc
alias agu="sudo bash -c 'apt-get update && apt-get upgrade'"