Previously on Ubuntu, we can do the following to get the boost_major_version:
echo "$boost_cv_lib_version" | sed 's/_//;s/_.*//'
For whatever reason, Ubuntu changes when upgrading from version 14.04 to 16.04 and now I have to do the following to find my Boost version:
dpkg -s libboost-dev | grep 'Version'
And the current version of boost installed using sudo apt install libboost-all-dev is:
Version: 1.58.0.1ubuntu1
Given this, I would require the major version, i.e. 158.
Other than manually looking at it knowing it's 158? I've tried some regexes but I couldn't get it correct to strip the string: Version: 1.58.0.1ubuntu1 to 158.
I've tried:
alvas@ubi:~/repp$ dpkg -s libboost-dev | grep 'Version'
Version: 1.58.0.1ubuntu1
alvas@ubi:~/repp$ dpkg -s libboost-dev | grep 'Version' | cut -d' ' -f2 | grep -oP '([0-9].*.[0-9].*).'
1.58.0.
But I also understand that the -P option might not be available on linux platforms.
I could do this by piping into Python to do the dirty string works but that's a little too much... I'm sure there's a better way:
alvas@ubi:~/repp$ dpkg -s libboost-dev | grep 'Version' | python -c "import re,sys; print re.findall(r'([0-9].*.[0-9].*).[0-9].*.', sys.stdin.readline())[0].replace('.', '')"
158
So the question is:
How do I get the
boost_major_versionon Ubuntu 16.04?If
dpkg -s libboost-dev | grep 'Version'is the only way to do it, how do I stripVersion: 1.58.0.1ubuntu1->158?
Aucun commentaire:
Enregistrer un commentaire