Index: build/install-build-deps.sh |
=================================================================== |
--- build/install-build-deps.sh (revision 22618) |
+++ build/install-build-deps.sh (working copy) |
@@ -168,15 +168,36 @@ |
# without accidentally promoting any packages from "auto" to "manual". |
# We then re-run "apt-get" with just the list of missing packages. |
echo "Finding missing packages..." |
-new_list="$(yes n | |
- LANG=C sudo apt-get install --reinstall \ |
- ${dev_list} ${lib_list} ${dbg_list} \ |
- $([ "$(uname -m)" = x86_64 ] && echo ${cmp_list}) \ |
- | |
- sed -e '1,/The following NEW packages will be installed:/d;s/^ //;t;d')" |
+packages="${dev_list} ${lib_list} ${dbg_list} |
+ $([ "$(uname -m)" = x86_64 ] && echo ${cmp_list})" |
+echo "Packages required: $packages" |
+new_list_cmd="sudo apt-get install --reinstall $(echo $packages)" |
+if new_list="$(yes n | LANG=C $new_list_cmd)" |
+then |
+ echo "No missing packages, and the packages are up-to-date." |
+elif [ $? -eq 1 ] |
+then |
+ # We expect apt-get to have exit status of 1. |
+ # This indicates that we canceled the install with "yes n|". |
+ new_list=$(echo $new_list | |
+ sed -e '1,/The following NEW packages will be installed:/d;s/^ //;t;d') |
+ echo "Installing missing packages: $new_list." |
+ sudo apt-get install ${new_list} |
+else |
+ # An apt-get exit status of 100 indicates that a real error has occurred. |
-echo "Installing missing packages..." |
-sudo apt-get install ${new_list} |
+ # I am intentionally leaving out the '"'s around new_list_cmd, |
+ # as this makes it easier to cut and paste the output |
+ echo |
+ echo "The following command failed: " ${new_list_cmd} |
+ echo |
+ echo "It produces the following output:" |
+ yes n | $new_list_cmd || true |
+ echo |
+ echo "You will have to install the above packages yourself." |
+ echo |
+ exit 100 |
+fi |
# Some operating systems already ship gold |
# (on Debian, you can probably do "apt-get install binutils-gold" to get it), |
@@ -222,12 +243,12 @@ |
[ -r /etc/apt/apt.conf ] && cp /etc/apt/apt.conf "${tmp}/apt/" |
cat >>"${tmp}/apt/apt.conf" <<-EOF |
- Apt::Architecture "i386"; |
- Dir::Cache "${tmp}/cache"; |
- Dir::Cache::Archives "${tmp}/"; |
- Dir::State::Lists "${tmp}/apt/lists/"; |
- Dir::State::status "${tmp}/status"; |
- EOF |
+ Apt::Architecture "i386"; |
+ Dir::Cache "${tmp}/cache"; |
+ Dir::Cache::Archives "${tmp}/"; |
+ Dir::State::Lists "${tmp}/apt/lists/"; |
+ Dir::State::status "${tmp}/status"; |
+ EOF |
Lei Zhang
2009/08/07 20:01:02
Actually that needed to be a tab. When it's 8 spac
|
# Download 32bit packages |
echo "Computing list of available 32bit packages..." |