Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 93829 - emerge backtrace when installing app-shells/gentoo-bashcomp-20050516
Summary: emerge backtrace when installing app-shells/gentoo-bashcomp-20050516
Status: RESOLVED CANTFIX
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-24 10:20 UTC by Sascha Wintz
Modified: 2005-06-06 06:57 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sascha Wintz 2005-05-24 10:20:37 UTC
Hello,

I have the same problem on my x86 laptop and my x86_64 workstation

Calculating world dependencies ...done!
>>> emerge (1 of 1) app-shells/gentoo-bashcomp-20050516 to /
>>> md5 files   ;-) gentoo-bashcomp-20050516.ebuild
>>> md5 files   ;-) gentoo-bashcomp-20050506.ebuild
>>> md5 files   ;-) files/digest-gentoo-bashcomp-20050506
>>> md5 files   ;-) files/digest-gentoo-bashcomp-20050516
>>> md5 src_uri ;-) gentoo-bashcomp-20050516.tar.bz2
>>> Unpacking source...
>>> Unpacking gentoo-bashcomp-20050516.tar.bz2 to
/var/tmp/portage/gentoo-bashcomp-20050516/work
>>> Source unpacked.
Nothing to compile.
>>> Test phase [not enabled]: app-shells/gentoo-bashcomp-20050516

>>> Install gentoo-bashcomp-20050516 into
/var/tmp/portage/gentoo-bashcomp-20050516/image/ category app-shells
install -d
"/var/tmp/portage/gentoo-bashcomp-20050516/image//usr/share/bash-completion"
install -m0644 gentoo
"/var/tmp/portage/gentoo-bashcomp-20050516/image//usr/share/bash-completion"
install -d "/var/tmp/portage/gentoo-bashcomp-20050516/image//etc/bash_completion.d"
ln -snf "../../usr/share/bash-completion/gentoo" \
       
"/var/tmp/portage/gentoo-bashcomp-20050516/image//etc/bash_completion.d/gentoo"
dodoc: NEWS does not exist
man:
prepallstrip:
strip: i686-pc-linux-gnu-strip --strip-unneeded
>>> Completed installing gentoo-bashcomp-20050516 into
/var/tmp/portage/gentoo-bashcomp-20050516/image/

>>> Merging app-shells/gentoo-bashcomp-20050516 to /
--- /etc/
--- /etc/bash_completion.d/
Traceback (most recent call last):
  File "/usr/bin/emerge", line 3200, in ?
    mydepgraph.merge(mydepgraph.altlist())
  File "/usr/bin/emerge", line 1912, in merge
    retval=portage.doebuild(y,"merge",myroot,self.pkgsettings,edebug)
  File "/usr/lib/portage/pym/portage.py", line 2724, in doebuild
    return
merge(mysettings["CATEGORY"],mysettings["PF"],mysettings["D"],mysettings["BUILDDIR"]+"/build-info",myroot,mysettings,myebuild=mysettings["EBUILD"])
  File "/usr/lib/portage/pym/portage.py", line 2896, in merge
    return mylink.merge(pkgloc,infloc,myroot,myebuild)
  File "/usr/lib/portage/pym/portage.py", line 6893, in merge
    return self.treewalk(mergeroot,myroot,inforoot,myebuild,cleanup=cleanup)
  File "/usr/lib/portage/pym/portage.py", line 6502, in treewalk
    if self.mergeme(srcroot,destroot,outfile,secondhand,"",cfgfiledict,mymtime):
  File "/usr/lib/portage/pym/portage.py", line 6758, in mergeme
    if
self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6758, in mergeme
    if
self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6683, in mergeme
    mydest = new_protect_filename(myrealdest,
newmd5=portage_checksum.perform_md5(srcroot+myabsto))
  File "/usr/lib/portage/pym/portage.py", line 707, in new_protect_filename
    if portage_checksum.perform_md5(real_dirname+"/"+last_pfile) == newmd5:
  File "/usr/lib/portage/pym/portage_checksum.py", line 25, in perform_md5
    return perform_checksum(x, md5hash, calc_prelink)[0]
  File "/usr/lib/portage/pym/portage_checksum.py", line 128, in perform_checksum
    myhash, mysize = hash_function(myfilename)
  File "/usr/lib/portage/pym/portage_checksum.py", line 75, in md5hash
    return fchksum.fmd5t(filename)
IOError: [Errno 2] No such file or directory:
'/etc/bash_completion.d/._cfg0000_gentoo'


Reproducible: Always
Steps to Reproduce:
1. emerge =app-shells/gentoo-bashcomp-20050516
2.
3.




Portage 2.0.51.22-r1 (default-linux/x86/2005.0, gcc-3.4.3-20050110,
glibc-2.3.5-r0, 2.6.11-gentoo-r8 i686)
=================================================================
System uname: 2.6.11-gentoo-r8 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz
Gentoo Base System version 1.6.12
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.8
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.16
sys-devel/libtool:   1.5.18
virtual/os-headers:  2.6.11
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -ffast-math"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -ffast-math"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.server4you.net/ http://gentoo.oregonstate.edu/
http://www.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/misc /usr/local/portage/lila
/usr/local/portage/gnome-current /usr/local/portage/bmg-main"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X aalib acpi acpi4linux alsa anthy artworkextra avi bash-completion
berkdb bidi bitmap-fonts bonobo bootsplash canna cdparanoia cdr cjk composite
crypt cups curl dbus dga dhcp divx divx4linux dmx dri dvd dvdr dvdread eds
emboss encode esd evo evolution f77 faad fam fbcon ffmpeg flac foomaticdb
fortran freewnn gaim gdbm gif gimpprint glut gnome gnomedb gnutls gphoto2 gpm
gstreamer gtk2 gtkhtml hal howl imagemagick imlib inkjar insecure-drivers
iproute java joystick jpeg lcd libg++ libgda libwww live mad matroska mikmod mmx
mmx2 mng mono mozilla moznocompose moznoirc moznomail mozsvg mp3 mpeg nas
ncurses net network nls nntp no_wxgtk1 nomotif noplugin nptl nvidia objc
offensive ogg oggvorbis opengl pam pcmcia pdflib perl pic plugin png pnp python
qemu-fast quicktime readline real rtc samba sasl sdl silc skk slang softmmu
speex spell sqlite sse sse2 ssl tcpd tiff truetype truetype-fonts type1-fonts
unicode usb v4l v4l2 vcd vim-with-x vorbis win32codecs xine xinerama xml xml2
xprint xv xvid zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Comment 1 Brian Harring (RETIRED) gentoo-dev 2005-05-24 23:29:07 UTC
attach tar -jtf log of gentoo-bashcomp-20050516.tbz2  ; # please
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2005-05-25 07:44:41 UTC
This is very similar to bug #71787 but not exactly the same. What portage 
version are you using? (include `emerge info` where appropriate) 
Comment 3 Sascha Wintz 2005-05-25 10:17:05 UTC
# tar -jtf /usr/portage/distfiles/gentoo-bashcomp-20050516.tar.bz2
gentoo-bashcomp-20050516/
gentoo-bashcomp-20050516/TODO
gentoo-bashcomp-20050516/Makefile
gentoo-bashcomp-20050516/gentoo
gentoo-bashcomp-20050516/AUTHORS
gentoo-bashcomp-20050516/ChangeLog
gentoo-bashcomp-20050516/COPYING
Comment 4 Jason Stubbs (RETIRED) gentoo-dev 2005-05-27 08:53:03 UTC
Don't know how I missed the emerge info...   
   
Okay, the source is a symlink. The source is not a symlink to a directory.  
There is something at the destination. The destination is not a symlink. The  
destination is not a directory. What does that leave? The destination is a  
file. The source is a symlink to a file. 
 
I just emerge bash-completion and confirmed that /etc/bash_completion.d/gentoo 
is in fact a symlink. Can you confirm that it is a file on your machines? Can 
you reproduce this easily? 
Comment 5 Sascha Wintz 2005-05-27 10:32:25 UTC
yes those are indeed files on my machines

-rw-r--r--  1 root root 54982 May 15 12:56 /etc/bash_completion.d/gentoo


Comment 6 Jason Stubbs (RETIRED) gentoo-dev 2005-05-28 00:39:52 UTC
Does /etc/bash_completion.d/._cfg0000_gentoo exist? I'm still unable to 
reproduce this bug. 
Comment 7 Sam Kyritsoglou 2005-05-28 10:23:36 UTC
I've got the same bugs

lrwxrwxrwx  1 root root 26 avr  2 23:12 /etc/bash_completion.d ->
/usr/share/bash-completion/

l /etc/bash_completion.d/
total 200K
drwxr-xr-x    2 root root 4,0K mai 28 19:15 ./
drwxr-xr-x  162 root root 4,0K mai 28 08:14 ../
-rw-r--r--    1 root root 3,2K mai 16 08:48 bash-completion-config
-rw-r--r--    1 root root 1,3K mai  5 12:22 bins
-rw-r--r--    1 root root  388 mai 28 19:14 bitkeeper
-rw-r--r--    1 root root 1,1K mai 28 19:14 bittorrent
lrwxrwxrwx    1 root root   38 avr  7 15:58 ._cfg0000_gentoo ->
../../usr/share/bash-completion/gentoo
-rw-r--r--    1 root root  442 mai 28 19:14 cksfv
-rw-r--r--    1 root root  669 mai 28 19:14 clisp
-rw-r--r--    1 root root 3,6K mai 28 19:14 dsniff
-rw-r--r--    1 root root 1,3K mai 28 19:14 freeciv
-rw-r--r--    1 root root  603 mai 28 19:14 gcl
-rw-r--r--    1 root root 2,3K avr  9 18:48 genlop
-rw-r--r--    1 root root  55K mai 28 19:15 gentoo
-rw-r--r--    1 root root  668 mai 28 19:14 gkrellm
-rw-r--r--    1 root root 1,3K mai 28 19:14 gnatmake
-rw-r--r--    1 root root  258 mai 28 19:14 harbour
-rw-r--r--    1 root root  261 mai 28 19:14 isql
-rw-r--r--    1 root root 1,8K mai 28 19:14 larch
-rw-r--r--    1 root root  163 mai 28 19:14 lilypond
-rw-r--r--    1 root root  644 mai 28 19:14 lisp
-rw-r--r--    1 root root 8,5K mai 28 19:14 mailman
-rw-r--r--    1 root root 1,9K mai 28 19:14 mcrypt
-rw-r--r--    1 root root 1,0K mai 28 19:14 mtx
-rw-r--r--    1 root root 1,2K mai 28 19:14 p4
-rw-r--r--    1 root root 1,7K mai 28 19:14 povray
-rw-r--r--    1 root root 2,5K mai 28 19:14 ri
-rw-r--r--    1 root root  664 mai 28 19:14 sbcl
-rw-r--r--    1 root root  748 mai 28 19:14 sitecopy
-rw-r--r--    1 root root  406 mai 28 19:14 snownews
-rw-r--r--    1 root root 8,1K mar 27 14:40 subversion
-rw-r--r--    1 root root  491 mai 28 19:14 unace
-rw-r--r--    1 root root  608 mai 28 19:14 unrar

I've ._cfg0000_gentoo who is a symlink to gentoo but it's a "red line"

Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.4.3, glibc-2.3.4.20041102-r1,
2.6.11-gentoo-r9 i686)
=================================================================
System uname: 2.6.11-gentoo-r9 i686 AMD Athlon(tm) XP 2100+
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.5 [2.3.5 (#1, Apr 29 2005, 17:40:03)]
distcc 2.16 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    [Not Present]
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.5, 1.7.9-r1, 1.4_p6, 1.6.3, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r7
sys-devel/libtool:   1.5.16
virtual/os-headers:  2.6.8.1-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -pipe -O3 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env
/usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -pipe -O3 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks fixpackages sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/
http://ftp.gentoo.skynet.be/pub/gentoo/"
LANG="fr_BE@euro"
LDFLAGS="-Wl,-O1"
LINGUAS="fr en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/debara/tmp/"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://193.190.198.20/gentoo-portage"
USE="x86 3dnow X aalib alsa apm arts avi bash-completion berkdb bitmap-fonts cdr
crypt cups curl dvd emboss encode esd exiscan-acl fam flac foomaticdb fortran gd
gdbm gif gimpprint gpm gstreamer gtk gtk2 hal imagemagick imap imlib ipv6 java
jpeg kde kdeenablefinal ldap libg++ libwww mad maildir mikmod mmx motif mp3 mpeg
ncurses network nfs nls nptl nvidia ogg oggvorbis opengl oss pam pdflib perl png
ppds python qt quicktime readline samba scanner sdl slang slp snmp speex spell
sse ssl svga tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts usb
vorbis xine xml xml2 xv zlib linguas_fr linguas_en userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CBUILD, CTARGET, LC_ALL
Comment 8 Jason Stubbs (RETIRED) gentoo-dev 2005-05-28 18:38:18 UTC
 (In reply to comment #7)  
> lrwxrwxrwx    1 root root   38 avr  7 15:58 ._cfg0000_gentoo ->  
> ../../usr/share/bash-completion/gentoo  
  
This would explain the IOError, but I am still unable to reproduce it. I have  
a file at /etc/bash_completion.d/gentoo and a broken symlink  
at /etc/bash_completion.d/._cfg0000_gentoo but I still don't get a traceback.  
Would you be able to upgrade to portage-2.0.51.22-r1 and see if you can  
reproduce it there, please? If you can, please post the traceback (unless it's 
identical to the original post). 
Comment 9 Sam Kyritsoglou 2005-05-29 01:35:04 UTC
I update portage to 2.0.51.22-r1 and install sandbox-1.2.8 (dependence).
The backtrace follow.

When I look in the tmp/portage directory, I've got lrwxrwxrwx  1 root root 38
mai 29 10:22
/debara/tmp/portage/gentoo-bashcomp-20050516/image/etc/bash_completion.d/gentoo
-> ../../usr/share/bash-completion/gentoo
but there is not ..../image/usr/share/bash-completion/gentoo
ls -alh
/debara/tmp/portage/gentoo-bashcomp-20050516/image/usr/share/bash-completion/
total 8,0K
drwxr-xr-x  2 root root 4,0K mai 29 10:23 .
drwxr-xr-x  4 root root 4,0K mai 29 10:22 ..

I don't know if is it utlil or not.

>>> emerge (1 of 4) app-shells/gentoo-bashcomp-20050516 to /
>>> md5 files   ;-) gentoo-bashcomp-20050516.ebuild
>>> md5 files   ;-) files/digest-gentoo-bashcomp-20050516
>>> md5 src_uri ;-) gentoo-bashcomp-20050516.tar.bz2
>>> Unpacking source...
>>> Unpacking gentoo-bashcomp-20050516.tar.bz2 to
/debara/tmp/portage/gentoo-bashcomp-20050516/work
>>> Source unpacked.
Nothing to compile.
>>> Test phase [not enabled]: app-shells/gentoo-bashcomp-20050516

>>> Install gentoo-bashcomp-20050516 into
/debara/tmp//portage/gentoo-bashcomp-20050516/image/ category app-shells
install -d
"/debara/tmp//portage/gentoo-bashcomp-20050516/image//usr/share/bash-completion"
install -m0644 gentoo
"/debara/tmp//portage/gentoo-bashcomp-20050516/image//usr/share/bash-completion"
install -d
"/debara/tmp//portage/gentoo-bashcomp-20050516/image//etc/bash_completion.d"
ln -snf "../../usr/share/bash-completion/gentoo" \
       
"/debara/tmp//portage/gentoo-bashcomp-20050516/image//etc/bash_completion.d/gentoo"
dodoc: NEWS does not exist
man:
prepallstrip:
strip: i686-pc-linux-gnu-strip --strip-unneeded
>>> Completed installing gentoo-bashcomp-20050516 into
/debara/tmp//portage/gentoo-bashcomp-20050516/image/

>>> Merging app-shells/gentoo-bashcomp-20050516 to /
--- /usr/
--- /usr/share/
--- /usr/share/bash-completion/
>>> /usr/share/bash-completion/gentoo
--- /usr/share/doc/
--- /usr/share/doc/gentoo-bashcomp-20050516/
>>> /usr/share/doc/gentoo-bashcomp-20050516/AUTHORS.gz
>>> /usr/share/doc/gentoo-bashcomp-20050516/TODO.gz
>>> /usr/share/doc/gentoo-bashcomp-20050516/ChangeLog.gz
--- /etc/
--- /etc/bash_completion.d/
Traceback (most recent call last):
  File "/usr/bin/emerge", line 3200, in ?
    mydepgraph.merge(mydepgraph.altlist())
  File "/usr/bin/emerge", line 1912, in merge
    retval=portage.doebuild(y,"merge",myroot,self.pkgsettings,edebug)
  File "/usr/lib/portage/pym/portage.py", line 2724, in doebuild
    return
merge(mysettings["CATEGORY"],mysettings["PF"],mysettings["D"],mysettings["BUILDDIR"]+"/build-info",myroot,mysettings,myebuild=mysettings["EBUILD"])
  File "/usr/lib/portage/pym/portage.py", line 2896, in merge
    return mylink.merge(pkgloc,infloc,myroot,myebuild)
  File "/usr/lib/portage/pym/portage.py", line 6893, in merge
    return self.treewalk(mergeroot,myroot,inforoot,myebuild,cleanup=cleanup)
  File "/usr/lib/portage/pym/portage.py", line 6502, in treewalk
    if self.mergeme(srcroot,destroot,outfile,secondhand,"",cfgfiledict,mymtime):
  File "/usr/lib/portage/pym/portage.py", line 6758, in mergeme
    if
self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6758, in mergeme
    if
self.mergeme(srcroot,destroot,outfile,secondhand,offset+x+"/",cfgfiledict,thismtime):
  File "/usr/lib/portage/pym/portage.py", line 6685, in mergeme
    mydest = new_protect_filename(myrealdest,
newmd5=portage_checksum.perform_md5(myabsto))
  File "/usr/lib/portage/pym/portage.py", line 707, in new_protect_filename
    if portage_checksum.perform_md5(real_dirname+"/"+last_pfile) == newmd5:
  File "/usr/lib/portage/pym/portage_checksum.py", line 25, in perform_md5
    return perform_checksum(x, md5hash, calc_prelink)[0]
  File "/usr/lib/portage/pym/portage_checksum.py", line 128, in perform_checksum
    myhash, mysize = hash_function(myfilename)
  File "/usr/lib/portage/pym/portage_checksum.py", line 75, in md5hash
    return fchksum.fmd5t(filename)
IOError: [Errno 2] No such file or directory:
'/etc/bash_completion.d/._cfg0000_gentoo'
Comment 10 Jason Stubbs (RETIRED) gentoo-dev 2005-06-01 07:01:52 UTC
Reproduced it. 
 
(In reply to comment #7) 
> lrwxrwxrwx  1 root root 26 avr  2 23:12 /etc/bash_completion.d -> 
> /usr/share/bash-completion/ 
 
^^^ I missed this bit. 
 
> lrwxrwxrwx    1 root root   38 avr  7 15:58 ._cfg0000_gentoo -> 
> ../../usr/share/bash-completion/gentoo 
 
Mixed with this means that there is a symlink which is pointing to itself. 
Comment 11 Jason Stubbs (RETIRED) gentoo-dev 2005-06-01 07:07:58 UTC
Did you link /etc/bash_completion.d to /usr/share/bash-completion yourself? 
Comment 12 Sam Kyritsoglou 2005-06-04 00:01:14 UTC
Yes I dit myself the symlink, as I read on the ebuild info
app-shells/bash-completion
        einfo "Additional complete functions can be enabled by symlinking them from"
        einfo "/usr/share/bash-completion to /etc/bash_completion.d"

OK It my fault : I miss understood the instruction.
I remove the symlink and app-shells/gentoo-bashcomp emerge fine.

Thanks for the time you take to me.
Comment 13 Jason Stubbs (RETIRED) gentoo-dev 2005-06-06 06:57:19 UTC
Closing this as CANTFIX because there is no proper solution with the way  
portage currently merges files. The only way this can really be solved is by  
looking at everything that needs to be installed and deciding how to (as well 
as whether it is possible to) install it before proceeding.