Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Force ncurses update while installing htop? #1

Closed
keuv-grvl opened this issue Sep 21, 2016 · 4 comments
Closed

Force ncurses update while installing htop? #1

keuv-grvl opened this issue Sep 21, 2016 · 4 comments

Comments

@keuv-grvl
Copy link
Contributor

keuv-grvl commented Sep 21, 2016

I already had this bug while developing the recipe (conda-forge/staged-recipes#1598) bug could not reproduce it formally until now.

Briefly, htop can not run without ncurses from conda-forge channel.
Installing htop (through conda-forge channel) do not update ncurses but is seems necessary.


Here is how I reproduced the bug.

Be sure there is no parasitic channels

conda config --remove-key channels
conda config --get channels # nothing as expected

Install ncurses from channel defaults

conda install ncurses # successfully install ncurses-5.9-8

Add conda-forge channel

conda config --add channels conda-forge
conda config --get channels # conda-forge and defaults, as expected

Install htop (and check ncurses version)

conda search ncurses # defaults/ncurses-5.9-8 installed, but conda-forge/ncurses-5.9-9 available
conda install htop # OK
htop --version # error: htop: error while loading shared libraries: libtinfow.so.5: cannot open shared object file: No such file or directory

Update  ncurses to solve the problem

conda update ncurses # OK, ncurses-5.9-9 now installed
htop --version # OK

Tested on

  • CentOS release 6.8 (Final) (conda 4.1.11)
  • Ubuntu 15.10 (conda 4.1.11)
  • Ubuntu 16.04.1 LTS (conda 4.1.11)
@keuv-grvl
Copy link
Contributor Author

A quick fix could be updating ncurses while installing htop.
A better one could be making htop able to use ncurses-5.9-8 from defaults.

Your thoughts @jakirkham ?

@jakirkham
Copy link
Member

Yes, ncurses from defaults is not the same as from conda-forge. Everything at conda-forge is compatible with our ncurses, but not defaults copy of ncurses. Similar issues may arise with python, ipython, erlang, or any other ncurses using programs. This is what we were discussing in PR ( conda-forge/ncurses-feedstock#23 ).

Basically we decided from the outset that we would break out libtinfo from ncurses to match the trend with ncurses generally and follow Linux distros. We discussed briefly combining them in PR ( conda-forge/ncurses-feedstock#10 ), which would have done exactly that. After some discussion, we decided that we were happy with how things were. At the time, IIRC ncurses was not really used in defaults (certainly not for python at least). Things have since changed, which gives us this surprise.

My thoughts on this are similar to my thoughts on issue ( conda-forge/conda-forge.github.io#232 ) and PR ( conda-forge/conda-forge.github.io#230 ). Basically anything other than having conda-forge as a higher priority channel than defaults is going to result in undefined behavior. This is one such case, but others include issues with things like Qt or various image libraries. The goal is to make conda-forge a totally independent distribution from defaults. As far as htop is concerned, we have met this goal.

This all being said, if you wish to use this htop recipe with defaults, it should be a simple matter of building it using the defaults copy of ncurses.

@jakirkham
Copy link
Member

TL;DR Run conda config --add channels conda-forge. Ensure that your .condarc looks like something like this and things should be fine.

channels:
  ...
  - conda-forge
  ...
  - defaults

@keuv-grvl
Copy link
Contributor Author

The goal is to make conda-forge a totally independent distribution from defaults

I missed this information. I was wondering if we had to make htop compatible with ncurses from defaults. So, OK, users must use conda-forge or defaults, but should avoid to mix them.

It works as expected if I only use conda-forge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants