IPython (& ipdb) issue with python 2.7

If you ever wanted to use ipdb (from IPython) debugger when using Python 2.7, you might have faced an issue like this:

$ sudo pip install ipython
Downloading/unpacking ipython
  Downloading ipython-6.0.0.tar.gz (5.1MB): 5.1MB downloaded
  Running setup.py (path:/tmp/pip_build_root/ipython/setup.py) egg_info for package ipython
    
    IPython 6.0+ does not support Python 2.6, 2.7, 3.0, 3.1, or 3.2.
    When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
    Beginning with IPython 6.0, Python 3.3 and above is required.
...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/ipython

So you gotta go ahead and install IPython==5.0, because it’s the last LTS version. Do:

#pip install IPython==5.0

And then you should get:

ImportError: No module named packaging.version

Hm, that was not expected. Installing setuptools or packaging did not work for me at this moment. To get away with this error I had to install pip3 and then upgrade pip:

  251  sudo apt-get install python3-pip
  252  sudo pip3 install --upgrade pip
  253  sudo pip install ipython==5.0
  254  sudo pip install ipdb

After that, both IPython and ipdb installed with no issues or errors and life was happy again.

ALTERNATIVE SOLUTION:

If the above still does not fix the issue, or if pip and ipython are bound to python 3, you can try this, according described in the packaging.python.org website:

  1. Download get-pip.py
  2. Run python get-pip.py. [2] This will install or upgrade pip. Additionally, it will install setuptools and wheel if they’re not installed already.

Let me know if that worked for you too.

Good Luck!

How to enable git-completion on PS1 variable

A nicer bash prompt I use includes a git completion script that indicates the branch of a repository I may be into. Like this:

git_completion

Green indicates “master” is clean and no modified files are present. Red indicates there is something new in that branch.

In order to configure that, I had to include some instructions on my .bashrc file. It looks like this:

# git completion
source /usr/share/git-core/contrib/completion/git-prompt.sh

(…)

PS1=’\[\e[01;30m\]\t`if [ $? = 0 ]; then echo “\[\e[32m\] ✔ “; else echo “\[\e[31m\] ✘ “; fi`\[\e[00;40;37m\]\u\[\e[01;37m\]:`[[ $(git status 2> /dev/null | head -n2 | tail -n1) != “# Changes to be committed:” ]] && echo “\[\e[31m\]” || echo “\[\e[33m\]”“[[ $(git status 2> /dev/null | tail -n1) != “nothing to commit, working directory clean” ]] || echo “\[\e[32m\]”`$(__git_ps1 “(%s)\[\e[00m\0]”)\[\e[01;34m\]\w\[\e[00m\]\$ ‘

Now, sometimes (in a new environment mostly), we may configure the .bashrc just the way we want it and then:

git_2

Boom! You see a big "__git_ps1: command not found"  message.

That is because you don’t have the git-prompt.sh file you included in the directory loaded at the top of you .bashrc file (the /usr/share/git-core/contrib/completion/git-prompt.sh)

So in order to get rid of that, we need to include it. The file is available in contrib/completion/git-prompt.bash from the git repository git://git.kernel.org/pub/scm/git/git.git

So after you clone it, you should simply copy the missing files to your system file system. In my case, I preferred to copy the whole “completion” dir to my file systems, as I did not have it. So:

$ sudo cp -r completion/ /usr/share/git-core/contrib/

Now I have my git-completion.bash file in the correct place. Let’s see if that worked when running a new bash session:

git_3

Great! Worked like a charm.

Let me know if you have a different solution for it or if this did not solve your problem.

Thanks for reading.

Cheers!

Technically Speaking was used as a reference for this post.

Create a new user on your system

This is a quick checklist on how to create a user from the command line:
1. useradd -m your_username (add a user called your_username with a home directory)
2. passwd your_username (set a password for your_username)
3. usermod -aG wheel your_username  (to include the user in the sudoers list)
4. su - your_username (to change to the your_username account)
NOTE: sudo usermod -a -G sudo username (to include user ‘username’ in the sudo group)

Installing clang on RHEL/CentOS and Ubuntu

For RHEL and CentOS:

1) Install EPEL repository (read here on how to install it)

2) Install clang package:
$ sudo yum install clang

For Ubuntu 16.04:

1) Install clang packages:
$ sudo apt-get install clang libclang-dev

2) Create a symlink to libclang:
$ cd /usr/lib/-linux-gnu
$ sudo ln -s libclang-.so libclang.so

Example:
$ cd /usr/lib/powerpc64le-linux-gnu
$ sudo ln -s libclang-3.8.so libclang.so

[iprconfig 8/8] Verifying what is the RAID for your label

To display the name of your disk providing the label you used when you created the RAID, issue:

[root@jupiter1-lp1 ~]# iprconfig -c query-array-label foobar
/dev/sdb

Continue reading “[iprconfig 8/8] Verifying what is the RAID for your label”