KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums kdb+ q namespace clash with Amazon Q

  • rocuinneagain

    Member
    May 26, 2025 at 12:18 pm

    Here is an example where I have 2 executables

    <code data-highlighted="yes">$ which -a q
    /home/rocuinneagain/.local/bin/q
    /home/rocuinneagain/q/l64/q
    

    The order in which they are returned is controlled by $PATH

    <code data-highlighted="yes">$ echo $PATH
    /home/rocuinneagain/.local/bin:...:/home/rocuinneagain/q/l64
    

    You can start kdb+ q by using it’s full path:

    <code data-highlighted="yes">$ /home/rocuinneagain/q/l64/q
    KDB+ 4.1 2025.02.18 Copyright (C) 1993-2025 Kx Systems
    ...
    q)
    

    You could also make an alias:

    <code data-highlighted="yes">$ alias mykx='/home/rocuinneagain/q/l64/q'
    KDB+ 4.1 2025.02.18 Copyright (C) 1993-2025 Kx Systems
    ...
    q)
    

    Alias is popular to use so you can include rlwrap in the startup commend so you can use keyboard arrows etc.

    <code data-highlighted="yes">$ alias rlq='rlwrap /home/rocuinneagain/q/l64/q'
    KDB+ 4.1 2025.02.18 Copyright (C) 1993-2025 Kx Systems
    ...
    q)
    

    Or use a symlink:

    <code data-highlighted="yes">$ ln -s /home/rocuinneagain/q/l64/q /home/rocuinneagain/q/l64/kxq
    $ kxq
    KDB+ 4.1 2025.02.18 Copyright (C) 1993-2025 Kx Systems
    ...
    q)
    

    Or you could add the kdb q location to the start of PATH ahead of the conflicting package (then to call the other package you would need to use fullpath/alias/symlink as above)

    <code data-highlighted="yes">export PATH="/home/rocuinneagain/q/l64/:$PATH"
    $ q
    KDB+ 4.1 2025.02.18 Copyright (C) 1993-2025 Kx Systems
    ...
    q)
    • This reply was modified 4 days, 11 hours ago by  rocuinneagain.

Log in to reply.