Invested some free time in finding out if Kimchi is running on CentOS 8.
So we also have a problem on CentOS 8. Certain Python 3 packages are not available (not in the CentOS or Epel repos). See my findings in the above quote.
OS —> Centos 8 minimal server install
Install WOK (framework for Kimchi)
sudo dnf install -y python3-pip
- DEVELOPMENT DEPENDENCIES
sudo dnf install -y gcc make autoconf automake git python3-pip python3-requests python3-mock gettext-devel rpm-build libxslt gcc-c++ python3-devel python3-pep8 python3-pyflakes rpmlint python3-pyyaml
Not in CentOS 8 repo:
Python3-mock ———————-??????
Python3-pep8 ————————??????
Python3-pyflakes —> epel
- RUNTIME DEPENDENCIES
sudo dnf install -y systemd logrotate python3-psutil python3-ldap python3-lxml python3-websockify python3-jsonschema openssl nginx python3-cherrypy python3-cheetah python3-pam python3-m2crypto gettext-devel
Not in CentOS 8 repo:
Python3-psutil —> epel
Python3-Websockify —————————???????
Python3-cherrypy —————————— ???????
Python3-cheetah —> epel
Python3-pam — epel
Python3-m2crypto —> epel
- BUILD AND INSTALL
./autogen.sh —system
make
make install ???
- First start WOK:
Errors when trying to start WOK (missing Python3-cherrypy).
- Installed Epel repo on CentOS 8 to find missing dependencies. Not succeeded… (see above).
- INSTALL KIMCHI
- Not tried to build and install Kimchi because of the WOK build issues.
So we also have a problem on CentOS 8. Certain Python 3 packages are not available (not in the CentOS or Epel repos). See my findings in the above quote.
In Water Cooler
Share this post:
Responses (11)
-
Accepted Answer
Okay, so I got Wok and Kimchi installed. Now all I need to do is run it, right?
$ cd /tmp/wok-3.0.0
$ sudo python3 src/wokd
Wrong!
rc: 3 error: Redirecting to /bin/systemctl status nginx.service
returned from cmd: service nginx status
Redirecting to /bin/systemctl start nginx.service
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
Okay...
$ sudo systemctl status nginx.service
[blah blah blah]
nginx: [emerg] open() "/etc/nginx/conf.d/wok.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:36
nginx.conf line 36 is just "include /etc/nginx/conf.d/*.conf;". So it's like it can't find wok.conf. But it's there!
$ ls -l /etc/nginx/conf.d/wok.conf
lrwxrwxrwx. 1 root root 33 Apr 19 15:57 /etc/nginx/conf.d/wok.conf -> /tmp/wok-3.0.0/src/nginx/wok.conf
No, really; it's there!
$ ls -l /tmp/wok-3.0.0/src/nginx/wok.conf
-rw-rw-r--. 1 gomez gomez 3177 Jan 6 13:30 /tmp/wok-3.0.0/src/nginx/wok.conf
Maybe it's a permissions thing?
$ chmod 777 /tmp/wok-3.0.0/src/nginx/wok.conf
$ sudo python3 src/wokd
rc: 3 error: Redirecting to /bin/systemctl status nginx.service
returned from cmd: service nginx status
Redirecting to /bin/systemctl start nginx.service
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
$ sudo systemctl status nginx.service
[blah blah blah]
nginx: [emerg] open() "/etc/nginx/conf.d/wok.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:36
Nope. I don't know what's wrong. That's as far as I could get with Wok.
So let's change gears and take a look at Kimchi. They suggest using "make check-local" and "sudo make check" to test the installation:
$ cd /tmp/kimchi-3.0.0
$ make check-local
PYTHONPATH=. contrib/check_i18n.py ./i18n.py
Checking for invalid i18n string...
Checking for invalid i18n string successfully
/usr/bin/pep8 --version
make: /usr/bin/pep8: Command not found
make: *** [Makefile:1072: check-local] Error 127
Huh.
$ ls -l /usr/bin/pep8
ls: cannot access '/usr/bin/pep8': No such file or directory
$ ls /usr/bin | grep '^pe'
peekfd
perl
perl5.26.3
perldoc
Well, it's installed...
$ sudo -H pip3 install pep8
Requirement already satisfied: pep8 in /usr/local/lib/python3.6/site-packages
It's just not in the /usr/bin. That's where I left it with Kimchi.
Note: While I am not a stranger to Linux, this is by far my most advanced undertaking to date. If I gave the impression I knew what I was doing, don't be fooled; it was nothing more than competent Google-fu (though I use duckduckgo) and good ol' fasioned RTFM. -
Accepted Answer
I spent some time with this over the weekend. Here are all of the development and runtime dependencies for Wok and Kimchi, as listed by the developers:
DNF:
autoconf automake gcc gcc-c++ gettext-devel git iscsi-initiator-utils libguestfs-tools libvirt libvirt-daemon-config-network libxslt make nfs-utils nginx novnc qemu-kvm rpm-build rpmlint sos spice-html5 python3-cheetah python3-cherrypy python3-configobj python3-devel python3-ethtool python3-jsonschema python3-ldap python3-libguestfs python3-libvirt python3-lxml python3-m2crypto python3-magic python3-mock python3-pam python3-paramiko python3-pep8 python3-pillow python3-pip python3-psutil python3-pyflakes python3-pyparted python3-pyyaml python3-requests python3-websockify
PIP3:
cython libsass pre-commit
These dependencies are included in the base OS:
logrotate openssl systemd
Starting from a base CentOS 8 minimal server install, here are the dependencies I could install natively:
sudo dnf install -y autoconf automake gcc gcc-c++ gettext-devel git iscsi-initiator-utils libguestfs-tools libvirt libvirt-daemon-config-network libxslt make nfs-utils nginx qemu-kvm rpm-build rpmlint sos python3-devel python3-ethtool python3-jsonschema python3-ldap python3-libguestfs python3-libvirt python3-lxml python3-magic python3-pillow python3-pip python3-pyparted python3-requests
Here are the dependencies I could install from EPEL:
sudo dnf install -y epel-release
sudo dnf install -y python3-cheetah python3-configobj python3-m2crypto python3-pam python3-paramiko python3-psutil python3-pyflakes python3-pyyaml
And here are the dependencies I could install with PIP:
sudo -H pip3 install cherrypy cython libsass mock pep8 pre-commit websockify
There are still two more dependencies. I was able to install them using the SPRMs. (Thanks Jakuje! https://unix.stackexchange.com/questions/361148/how-to-add-fedora-repo-to-a-centos-7-installation)
First I installed wget:
sudo dnf install -y wget
Then I moved to the tmp directory:
cd /tmp
And downloaded and built the packages.
wget https://kojipkgs.fedoraproject.org//packages/spice-html5/0.1.7/7.fc31/src/spice-html5-0.1.7-7.fc31.src.rpm
rpmbuild --rebuild spice-html5-0.1.7-7.fc31.src.rpm
sudo dnf install -y ~/rpmbuild/RPMS/noarch/spice-html5-0.1.7-7.el8.noarch.rpm
wget https://kojipkgs.fedoraproject.org//packages/novnc/1.1.0/6.fc31/src/novnc-1.1.0-6.fc31.src.rpm
rpmbuild --rebuild novnc-1.1.0-6.fc31.src.rpm
I tried to install novnc with the RPM:
sudo dnf install -y ~/rpmbuild/RPMS/noarch/novnc-1.1.0-6.el8.noarch.rpm
But got the error:
Error:
Problem: conflicting requests
- nothing provides python3-websockify needed by novnc-1.1.0-6.el8.noarch
No worries. Since websockify was installed with PIP, I ignored the dependency. (Thanks Onnonymous! https://serverfault.com/questions/381018/tell-yum-to-ignore-a-single-dependency)
sudo rpm -i --nodeps ~/rpmbuild/RPMS/noarch/novnc-1.1.0-6.el8.noarch.rpm
That's all the dependencies. Now the fun part!
I got the source code:
wget https://github.com/kimchi-project/wok/archive/3.0.0.tar.gz -O wok-3.0.0.tar.gz
tar xzf wok-3.0.0.tar.gz
wget https://github.com/kimchi-project/kimchi/archive/3.0.0.tar.gz -O kimchi-3.0.0.tar.gz
tar xzf kimchi-3.0.0.tar.gz
and built it:
cd wok-3.0.0
sudo ./autogen.sh --system
make
cd ../kimchi-3.0.0
sudo ./autogen.sh --system
make
That's as far as I was able to get. I'll go through what happens when I run it in another post. For now, though, here are all the commands I used to get it installed:
cd /tmp
sudo dnf install -y autoconf automake gcc gcc-c++ gettext-devel git iscsi-initiator-utils libguestfs-tools libvirt libvirt-daemon-config-network libxslt make nfs-utils nginx qemu-kvm rpm-build rpmlint sos python3-devel python3-ethtool python3-jsonschema python3-ldap python3-libguestfs python3-libvirt python3-lxml python3-magic python3-pillow python3-pip python3-pyparted python3-requests
sudo dnf install -y epel-release
sudo dnf install -y python3-cheetah python3-configobj python3-m2crypto python3-pam python3-paramiko python3-psutil python3-pyflakes python3-pyyaml
sudo -H pip3 install cherrypy cython libsass mock pep8 pre-commit websockify
sudo dnf install -y wget
wget https://kojipkgs.fedoraproject.org//packages/spice-html5/0.1.7/7.fc31/src/spice-html5-0.1.7-7.fc31.src.rpm
rpmbuild --rebuild spice-html5-0.1.7-7.fc31.src.rpm
sudo dnf install -y ~/rpmbuild/RPMS/noarch/spice-html5-0.1.7-7.el8.noarch.rpm
wget https://kojipkgs.fedoraproject.org//packages/novnc/1.1.0/6.fc31/src/novnc-1.1.0-6.fc31.src.rpm
rpmbuild --rebuild novnc-1.1.0-6.fc31.src.rpm
sudo rpm -i --nodeps ~/rpmbuild/RPMS/noarch/novnc-1.1.0-6.el8.noarch.rpm
wget https://github.com/kimchi-project/wok/archive/3.0.0.tar.gz -O wok-3.0.0.tar.gz
tar xzf wok-3.0.0.tar.gz
wget https://github.com/kimchi-project/kimchi/archive/3.0.0.tar.gz -O kimchi-3.0.0.tar.gz
tar xzf kimchi-3.0.0.tar.gz
cd wok-3.0.0
sudo ./autogen.sh --system
make
cd ../kimchi-3.0.0
sudo ./autogen.sh --system
make -
Accepted Answer
-
Accepted Answer
-
Accepted Answer
-
Accepted Answer
-
Accepted Answer
Nick Howitt wrote:
Marcel van van Leeuwen wrote:
Suggesting that we use Fedora as base distro for ClearOS? Personally I think a good idea.
Not stable enough and updating too often, or, at least, it may be stable but the constant requirement to upgrade would be an issue. They do provide upgrade tools but there would have to be constant re-testing of compatibility with ClearOS.
I agree on CentOS is great server distro. Mainly because of its stability and long life cycle. On the other hand a quick release cycle has also benefits. You always have a newer packages but yes this can cost you your stability. I'm not sure how big the stability problem is. Also from what I've heard Fedora has a very active but small community. They fix things fast. If you look to Ubuntu it has LTS versions and I experience these version as very stable. It's a pity Fedora hasn't such version. The great thing of Ubuntu is their large community and lot of drivers. -
Accepted Answer
Marcel van van Leeuwen wrote:
Suggesting that we use Fedora as base distro for ClearOS? Personally I think a good idea.
Not stable enough and updating too often, or, at least, it may be stable but the constant requirement to upgrade would be an issue. They do provide upgrade tools but there would have to be constant re-testing of compatibility with ClearOS. -
Accepted Answer
Nick Howitt wrote:
See my summary of progress with Kimchi/Wok 3.0 on ClearOS7 here. Cherrypi and websockify are available from pip:
The command in Centos could be pip rather than pip3. Personally I don't like mixing package managers. Also you may have to change the build sources to not require python3-cherrypi or python3-websockify if you have installed them with pip.pip3 install websockify cherrypi
Yes, I agree. It is pip3 in CentOS 8. I think pip is for old Python versions.
I don't know dnf but I would search for packages with yum tryng to list packages with "yum list python*-cherrypi --enablerepo=*". In ClearOS7 some of the packages are python36 rather than python3.
I already tried but good point.
Ultimately Fedora may be the way to go rather than Centos8.
Suggesting that we use Fedora as base distro for ClearOS? Personally I think a good idea. -
Accepted Answer
See my summary of progress with Kimchi/Wok 3.0 on ClearOS7 here. Cherrypi and websockify are available from pip:
The command in Centos could be pip rather than pip3. Personally I don't like mixing package managers. Also you may have to change the build sources to not require python3-cherrypi or python3-websockify if you have installed them with pip.pip3 install websockify cherrypi
I don't know dnf but I would search for packages with yum tryng to list packages with "yum list python*-cherrypi --enablerepo=*". In ClearOS7 some of the packages are python36 rather than python3.
Ultimately Fedora may be the way to go rather than Centos8. -
Accepted Answer
during installation you install Python3-pip and I now realise pip is a package manager for Python. If I do "pip3 list cherrypy" (because Python3-cherrypy was missing during the WOK install) I'll get a list of the following py modules:
asn1crypto (0.24.0)
cffi (1.11.5)
chardet (3.0.4)
configobj (5.0.6)
cryptography (2.3)
dbus-python (1.2.4)
decorator (4.2.1)
gpg (1.10.0)
html5lib (0.999999999)
idna (2.5)
jsonschema (2.6.0)
lxml (4.2.3)
netifaces (0.10.6)
pciutils (2.3.6)
perf (0.1)
pip (9.0.3)
ply (3.9)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycparser (2.14)
pygobject (3.28.3)
pyOpenSSL (18.0.0)
PySocks (1.6.8)
python-dateutil (2.6.1)
python-dmidecode (3.12.2)
python-ldap (3.1.0)
python-linux-procfs (0.6)
pyudev (0.21.0)
PyYAML (3.12)
requests (2.20.0)
rhnlib (2.8.6)
rpm (4.14.2)
schedutils (0.6)
selinux (2.9)
setuptools (39.2.0)
six (1.11.0)
slip (0.6.4)
slip.dbus (0.6.4)
syspurpose (1.25.17)
urllib3 (1.24.2)
webencodings (0.5.1)
Contains Python3-cherrypy the modules above????
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here.
Register Here »