Results 1 to 9 of 9

Thread: When installing a Test, its package dependencies fail to install

  1. #1
    Join Date
    Nov 2009
    Posts
    15

    Default When installing a Test, its package dependencies fail to install

    I'll use AIO-Stress as a Test that suffers from this issue. There are a few other Tests that have the same issue of dependencies not being installed, resulting in Test installation failure.

    The command "phoronix-test-suite install aio-stress" is used to attempt installation of the AIO-Stress Test. However, the AIO-Stress test depends on the package libaio-dev, but it fails installation as reported as follows ...

    install-ubuntu-packages.sh: 20: aptitude -y install libaio-dev: not found

    It appears that "install-ubuntu-packages.sh" is missing. The full output of "phoronix-test-suite install aio-stress" with most compiler errors replaced by "..." (due to the 10KB posting limit) is appended below.

    Any help diagnosing this issue or resolving would be very much appreciated.

    Ken

    ----------

    # phoronix-test-suite install aio-stress

    Warning: file_get_contents(http://www.phoronix-test-suite.com/g....0&os=ubuntu): failed to open stream: HTTP request failed! in /usr/share/phoronix-test-suite/pts-core/library/pts-functions_basic.php on line 91

    Warning: file_get_contents(http://www.phoronix-test-suite.com/PTS): failed to open stream: HTTP request failed! in /usr/share/phoronix-test-suite/pts-core/library/pts-functions_basic.php on line 91

    Network Communication Is Disabled.


    Checking For Needed External Dependencies.

    The following dependencies will be installed:
    - libaio-dev

    This process may take several minutes.
    install-ubuntu-packages.sh: 20: aptitude -y install libaio-dev: not found

    ====================================
    Installing Test: aio-stress
    Estimated Install Size: 0.5 MB
    ====================================

    aio-stress.c:58:20: error: libaio.h: No such file or directory
    aio-stress.c:192: error: field ‘iocb’ has incomplete type
    aio-stress.c:215: error: expected specifier-qualifier-list before ‘io_context_t’
    aio-stress.c: In function ‘print_latency’:
    aio-stress.c:437: error: ‘struct thread_info’ has no member named ‘io_submit_latency’

    ...

    aio-stress.c: In function ‘main’:
    aio-stress.c:1482: error: ‘struct thread_info’ has no member named ‘active_opers’
    aio-stress.c:1483: error: ‘struct thread_info’ has no member named ‘num_files’
    aio-stress.c:1492: error: ‘struct thread_info’ has no member named ‘num_files’

    The aio-stress installer exited with a non-zero exit status. Installation failed.
    #

  2. #2

    Default

    Hi,

    Do you have aptitude installed? The install-ubuntu-packages.sh is there and that's what's producing the dependency error above. However, I do a majority of my testing on Ubuntu and usually end up running through install and external dependency commands at least a few times per day, but have never encountered the issue you seem to experience.

  3. #3
    Join Date
    Nov 2009
    Posts
    15

    Default

    Quote Originally Posted by Michael View Post
    Do you have aptitude installed? The install-ubuntu-packages.sh is there and that's what's producing the dependency error above. However, I do a majority of my testing on Ubuntu and usually end up running through install and external dependency commands at least a few times per day, but have never encountered the issue you seem to experience.
    Yes, I have aptitude installed. It's easier to use than apt-get/apt-cache.

    I'm running Ubuntu 9.10 RC and have not upgraded to the official release yet. I'm concerned that upgrading may affect some test results.

    Ken

  4. #4

    Default

    Are you running PTS as a user or under root/sudo?

    Anyways, all that install-ubuntu-packages.sh is doing would be calling:

    gksudo aptitude -y install libaio-dev

    Can you try running that manually and report what happens?

  5. #5
    Join Date
    Dec 2007
    Location
    Merida
    Posts
    1,114

    Default

    I'm running into a similar here. Kubuntu Karmic 64bit PTS 2.2, some tests fail to install because PTS does not install needed dependencies (gtkperf and qgears2 for example). If I install the dependencies on my own test installation works fine though. Oddly enough, this problem does not occur with my laptop running Ubuntu 32bit.
    Last edited by Melcar; 12-10-2009 at 10:04 PM.

  6. #6
    Join Date
    Nov 2009
    Posts
    15

    Default

    Quote Originally Posted by Michael View Post
    Are you running PTS as a user or under root/sudo?
    Several weeks ago, I tried running PTS 2.2.0 beta as a normal user, but had some issues that apparently prevented installation of tests, so I tried via "sudo -s" shells and that worked better but still required work-arounds.

    This "sudo" shell is either a "console" shell or one started from within a Gnome (Login) Session started via Applications -> Accessories -> Terminal menu item.

    Quote Originally Posted by Michael View Post
    Anyways, all that install-ubuntu-packages.sh is doing would be calling:

    gksudo aptitude -y install libaio-dev

    Can you try running that manually and report what happens?
    On a system with an active Gnome Session, 'gksudo aptitude -y install libaio-dev' responds with a error saying '-y' is not a valid gksudo option. So, you probably meant to suggest that I try:

    gksudo "aptitude -y install libaio-dev"

    When the aptitude command is contained within double quotes, the installation of libaio-dev works as expected.

    However, on a system with Gnome installed but without an active Gnome Session both of the following fail with the same error:

    gksudo aptitude -y install libaio-dev

    gksudo "aptitude -y install libaio-dev"

    The reported error is:

    Gtk-WARNING **: cannot open display:

    Additional info:

    Some of my systems had PTS 2.2.0b1 installed from a tarball. All systems now have PTS 2.2.0 installed from the Phoronix Ubuntu repositories. A check of one system shows PTS 2.2.0b1 installed in a user account and PTS 2.2.0 installed in the normal system location of /usr/share.

    Ken

  7. #7

    Default

    Here is the exact script that's used for Ubuntu external dependencies:

    Code:
    #!/bin/sh
    if [ `whoami` != "root" ]; then
        if [ -x /usr/bin/gksudo ] && [ ! -z "$DISPLAY" ]; then
            ROOT="/usr/bin/gksudo"
        elif [ -x /usr/bin/kdesu ] && [ ! -z "$DISPLAY" ]; then
            ROOT="/usr/bin/kdesu"
        elif [ -x /usr/bin/sudo ]; then
            ROOT="/usr/bin/sudo"
        fi
    else
        ROOT=""
    fi
    
    if [ -x /usr/bin/aptitude ]; then
        # aptitude is nice since it doesn't fail if a non-existant package is hit
        # See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503215
        $ROOT "aptitude -y install $*"
    else
        $ROOT "apt-get -y --ignore-missing install $*"
    fi
    It covers not using gksudo when the DISPLAY is not set (as no X Server is likely running) and the apt commands are in quotes. Found in pts/distro-scripts/install-ubuntu-packages.sh on all releases prior to 2.4 or with 2.4+ is to be found in pts-core/static/distro-scripts/install-ubuntu-packages.sh.

  8. #8
    Join Date
    Nov 2009
    Posts
    15

    Default

    Quote Originally Posted by Michael View Post
    Here is the exact script that's used for Ubuntu external dependencies:

    Code:
    #!/bin/sh
    if [ `whoami` != "root" ]; then
        if [ -x /usr/bin/gksudo ] && [ ! -z "$DISPLAY" ]; then
            ROOT="/usr/bin/gksudo"
        elif [ -x /usr/bin/kdesu ] && [ ! -z "$DISPLAY" ]; then
            ROOT="/usr/bin/kdesu"
        elif [ -x /usr/bin/sudo ]; then
            ROOT="/usr/bin/sudo"
        fi
    else
        ROOT=""
    fi
    
    if [ -x /usr/bin/aptitude ]; then
        # aptitude is nice since it doesn't fail if a non-existant package is hit
        # See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503215
        $ROOT "aptitude -y install $*"
    else
        $ROOT "apt-get -y --ignore-missing install $*"
    fi
    It covers not using gksudo when the DISPLAY is not set (as no X Server is likely running) and the apt commands are in quotes. Found in pts/distro-scripts/install-ubuntu-packages.sh on all releases prior to 2.4 or with 2.4+ is to be found in pts-core/static/distro-scripts/install-ubuntu-packages.sh.
    Unfortunately, this script will not install packages when whoami == root. In this case the variable ROOT is set to the empty string and /bin/sh (by default a symbolic link to /bin/dash on Ubuntu 9.10) tries to interpret "aptitude -y install $*" -> "aptitude -y install libaio-dev" as a command with no options or arguments. This is clearly not what was intended. If the double quotes are removed, the command will work as expected.

    I suggest that the line

    ROOT=""

    be replaced by

    ROOT="su -c"

    Since, /bin/su is in the required package login, it should be safe to assume su exists and it is safe to run, since we know whoami == root. Of course it is redundant to invoke "su -c" when the shell already has root access, but other fixes would probably require additional if-then-else-fi logic.

    I have verified that this proposed fix works (on the one system I tried).

    Ken
    Last edited by fuchsk; 12-14-2009 at 06:46 PM. Reason: Carification only: empty value -> empty string; no options -> no options or arguments.

  9. #9

    Default

    Ah, thanks, I will add the su -c line.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •