Newer version of cmake available in CentOS 7 than in CentOS 8? - cmake

I have CentOS 7 and CentOS 8 installed on 2 VMs. Both have epel enabled.
CentOS 7:
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
$ yum repolist
...
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10070
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13445
extras/7/x86_64 CentOS-7 - Extras 413
updates/7/x86_64 CentOS-7 - Updates 1127
repolist: 25055
CentOS 8:
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
$ yum repolist
repo id repo name
AppStream CentOS-8 - AppStream
BaseOS CentOS-8 - Base
PowerTools CentOS-8 - PowerTools
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS-8 - Extras
On CentOS 7, cmake3 is available from the epel repo, and provides cmake version 3.17.
$ yum provides cmake3
...
cmake3-3.17.3-3.el7.x86_64 : Cross-platform make system
Repo : epel
On CentOS 8, cmake3 is available from the AppStream repo, and provides cmake version 3.11.
$ yum provides cmake3
...
cmake-3.11.4-7.el8.x86_64 : Cross-platform make system
Repo : #System
Matched from:
Provide : cmake3 = 3.11.4-7.el8
I tried to disable all repos except for epel, but it's still coming back with the one from AppStream (which seems counter intuitive to me - surely it should come back with nothing if I've disabled all the other repos?)
$ yum --disablerepo=* --enablerepo=epel info cmake
Last metadata expiration check: 0:21:06 ago on Fri 11 Sep 2020 09:44:08 AM UTC.
Installed Packages
Name : cmake
Version : 3.11.4
Release : 7.el8
Architecture : x86_64
Size : 24 M
Source : cmake-3.11.4-7.el8.src.rpm
Repository : #System
From repo : AppStream
Summary : Cross-platform make system
URL : http://www.cmake.org
License : BSD and MIT and zlib
Description : CMake is used to control the software compilation process using simple
: platform and compiler independent configuration files. CMake generates
: native makefiles and workspaces that can be used in the compiler
: environment of your choice. CMake is quite sophisticated: it is possible
: to support complex environments requiring system configuration, preprocessor
: generation, code generation, and template instantiation.
I searched on pkgs.org, and it certainly does seem that cmake-3.11 is the latest version available to CentOS 8.
Apart from building from source, is there any other way to obtain a newer version of cmake on CentOD 8?

The cmake: 3.11.4 version will still be listed when you run yum info because it is already installed, so disabling the AppStream repo won't affect what is shown. If you only want to show available packages (based on your enabled yum repos), you can run this instead:
yum --disablerepo=* --enablerepo=epel info cmake --available
If you want to install the latest version of CMake (or some other version), you can always download the binary distribution from the CMake download page.
Once downloaded, you can extract the package to somewhere you have access to on your machine, e.g.:
mkdir ~/cmake
tar xvzf ~/Downloads/cmake-3.18.2-Linux-x86_64.tar.gz -C ~/cmake
Finally, make sure you add the extracted bin directory to your PATH environment variable so you can run the cmake executable from the command line.

Related

Unable to build WebRTC code on RHEL 7.4 because of `GLIBC_2.18' not found error

I am trying to build the WebRTC code on RHEL 7.4 server as per the instructions mentioned on below link:
https://webrtc.github.io/webrtc-org/native-code/development/
But observing the below error.
$ gn gen out/Debug
../src/buildtools/linux64/gn: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ../src/buildtools/linux64/gn)
Looks '/src/buildtools/linux64/gn' is expecting the `GLIBC_2.18' version , but RHEL 7/CentOS 7 can support till glibc 2.17.
I do not want to upgrade to RHEL 8/CentOS 8 version as of now.
I tried to build gn source code on RHEL 7, but getting different errors.
What is the solution to this problem ?
CentOS 7 : Build example, gn .
clang++ must support C++17 to build gn:
# yum install centos-release-scl-rh centos-release-scl
# yum install llvm-toolset-7
git clone https://gn.googlesource.com/gn
cd gn
python build/gen.py
scl enable llvm-toolset-7 bash
ninja -C out
... to get the executable out/gn

How to install xclip on Centos 8?

I recently started using Centos 8 on my Workstation and there is no xsel or xclip
Is there something wrong or is it on purpose, that xclip is not available?
Here is the output of dnf repolist, maybe I'm missing some must-have repo?
repo id repo name status
AppStream CentOS-8 - AppStream 5.089
Atom Atom Editor 142
BaseOS CentOS-8 - Base 2.843
amdgpu-pro-local AMD amdgpu Pro local repository 70
docker-ce-stable Docker CE Stable - x86_64 57
*epel Extra Packages for Enterprise Linux 8 - x86_64 3.643
extras CentOS-8 - Extras 3
virtualbox Oracle Linux / RHEL / CentOS-8 / x86_64 - VirtualBox 4
You can compile from yourself:
# Obtain the sourcecode
git clone https://github.com/astrand/xclip.git
./bootstrap
./configure
make
make install
Verify that is installed:
man xclip
First Enable EPEL (Extra Packages for Enterprise Linux) repo on CentOS 8 to install extra packages such xclip.
Step 1: Install epel repo
# yum install epel-release.noarch
or
# dnf install epel-release
Step 2: Install xclip from the EPEL repo
# dnf install xclip
Last metadata expiration check: 0:06:09 ago on Mon 07 Feb 2022 10:39:39 AM IST.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Installing:
xclip x86_64 0.13-8.el8 epel 35 k
Transaction Summary
=============================================================================================================================================================
Install 1 Package
In Centos 8 while running pyperclip.copy("Hello"), I found centos 8 don't have xclip and so the package gives me error.
I have search all packages but repository of Centos8 don't have any similar packages.
I resolve this in following steps.
Install libXmu and X11 development library
sudo yum install libXmu-devel libX11-devel
Obtain the sourcecode
git clone https://github.com/astrand/xclip.git
./bootstrap
./configure
make
sudo make install
Then test install
man xclip
Now I can use pyperclip in python to use clipboard.

yum remove cmake failed

I want to update cmake,the old version is 2.8.But when is uninstall the old version cmake it doesn't work.
[chaos#localhost ~]$ cmake --version
cmake version 2.8.10.2
[lichao#localhost ~]$ yum info cmake
Available Packages
Name : cmake
Arch : x86_64
Version : 2.8.12.2
Release : 2.el7
Size : 7.1 M
Repo : base
Summary : Cross-platform make system
URL : http://www.cmake.org
License : BSD and MIT and zlib
Description : CMake is used to control the software compilation process using simple
: platform and compiler independent configuration files. CMake generates
: native makefiles and workspaces that can be used in the compiler
: environment of your choice. CMake is quite sophisticated: it is possible
: to support complex environments requiring system configuration, preprocessor
: generation, code generation, and template instantiation.
[chaos#localhost ~]$ sudo yum remove cmake -y
[sudo] password for lichao:
No Match for argument: cmake
No Packages marked for removal
the cmake you use was installed manually, not using yum.
yum info shows you the information of the package that is available in your repositories (base), it is not installed, otherwise it would say
Repo : installed
so since cmake is not installed using yum, you cannot remove it using yum.
NOTE: you can also see that the version numbers differ...
If you want to update it's not required to remove the package before. You can directly execute update command:
yum update cmake

Cannot install Apache 2.4 from REMI repository

I am trying to install Apache 2.4 from the REMI repo but no matter what I try all I get is Apache 2.2
I have installed and enabled the EPEL and REMI repos:
# yum repolist enabled
repo id repo name status
base CentOS-6 - Base 6,696
epel Extra Packages for Enterprise Linux 6 - x86_64 12,358
extras CentOS-6 - Extras 64
remi Remi's RPM repository for Enterprise Linux 6 - x86_64 4,047
remi-php56 Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - x86_64 417
remi-safe Safe Remi's RPM repository for Enterprise Linux 6 - x86_64 1,768
updates CentOS-6 - Updates 974
I then use:
# yum install --enablerepo=remi httpd
Have also tried:
# yum install --enablerepo=remi-php56,remi,remi-safe,epel httpd
but in both cases I get offered only Apache 2.2:
Dependencies Resolved
===============================================================================================
Package Arch Version Repository Size
===============================================================================================
Installing:
httpd x86_64 2.2.15-56.el6.centos.3 updates 834 k
Installing for dependencies:
httpd-tools x86_64 2.2.15-56.el6.centos.3 updates 79 k
Transaction Summary
===============================================================================================
Install 2 Package(s)
Total download size: 913 k
Installed size: 3.1 M
Is this ok [y/N]:
Only the updates repo is getting used and not remi.
I have checked if apache is already installed:
# httpd -v
bash: httpd: command not found
# yum remove httpd*
Package(s) httpd* available, but not installed.
No Packages marked for removal
Is there something else I am missing? How do I get the REMI repo to be used? It is enabled but for some reason not active
remi repository is mostly dedicated to PHP, and doesn't provide Apache HTTP server, but use system version instead.
Mostly because default version in base repository is well maintained, secured, and enough in most case.
Notice that an httpd24 SCL (Software Collections) is available in centos-sclo repository which is a clone of RHSCL.

SShpass not allowed with Travis CI

Context
I have an application in which, I m using unit tests and I need to continuous deliver this. I chose to use github + travis + docker.
My Docker container is an Ubuntu 12.04 with openSSL that I cant connect from outside, and I dont have any problem with this
I need, when the travis build is okay, to connect my docker container via SSH and to run a script.
Problem
Actually, I m using :
But this doesn't work at all, because sshpass is not in the whitelist. It seems that I cant you before_install command, because I m on a container based infrastructure.
NB : The port is 22, I missed it during the picture taken.
Questions
How can I do to connect my ssh container from travis to deploy my app (only run a script that git clone / git pull if the directory exists)
Is this a good way to make it like this with travis, or does it exist something else ?
EDIT :
The travis new file :
And the log
Using worker: worker-linux-968a87ce-1.bb.travis-ci.org:travis-linux-14
system_info
Build system information
Build language: node_js
Build image provisioning date and time
Wed Feb 4 18:22:50 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
Linux Version
2.6.32-042stab090.5
Cookbooks Version
23bb455 https://github.com/travis-ci/travis-cookbooks/tree/23bb455
GCC version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
ruby-1.9.3-p551
Pre-installed Node.js versions
v0.10.36
Pre-installed Go versions
1.4.1
Redis version
redis-server 2.8.19
riak version
2.0.2
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
1.9.4
Cassandra version
2.0.9
RabbitMQ Version
3.4.3
ElasticSearch version
1.4.0
Installed Sphinx versions
2.0.10
2.1.9
2.2.6
Default Sphinx version
2.2.6
Installed Firefox version
firefox 31.0esr
PhantomJS version
1.9.8
ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/maven
Java version: 1.7.0_76, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-042stab090.5", arch: "amd64", family: "unix"
git.checkout
0.26s$ git clone --depth=50 --branch=master git://myPrivateRepo/Project
Cloning into 'user/Project'...
remote: Counting objects: 1363, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 1363 (delta 4), reused 0 (delta 0), pack-reused 1354
Receiving objects: 100% (1363/1363), 874.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (263/263), done.
Checking connectivity... done.
$ cd user/Project
$ git checkout -qf commitId
1.56s$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.38
$ node --version
v0.10.38
$ npm --version
1.4.28
$ nvm --version
0.23.3
before_install
6.72s$ sudo apt-get install sshpass
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libgeos-3.2.2
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
sshpass
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 10.5 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe sshpass amd64 1.05-1 [10.5 kB]
Fetched 10.5 kB in 0s (234 kB/s)
Selecting previously unselected package sshpass.
(Reading database ... 75363 files and directories currently installed.)
Unpacking sshpass (from .../sshpass_1.05-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up sshpass (1.05-1) ...
install
1.12s$ npm install
npm WARN package.json UnitTest#0.0.0 No description
npm WARN package.json UnitTest#0.0.0 No repository field.
npm WARN package.json UnitTest#0.0.0 No README data
0.95s$ npm test
> UnitTest#0.0.0 test /home/travis/build/user/project
> node test
First test should fail: 1) First test should fail
0 passing (8ms)
1 failing
1) First test should fail:
AssertionError: true == false
+ expected - actual
-true
+false
at Context.<anonymous> (test/first.js:8:16)
The command "npm test" exited with 0.
after_success
0.91s$ sudo sshpass -p password ssh root#ip -p 7000
Done. Your build exited with 0.
sshpass can be installed in a Travis CI container by adding:
addons:
apt:
packages:
- sshpass
I see two possible solutions to your problem:
Switch to the non-container based infrastructure of Travis-CI, by adding sudo: true in your .travis file, so you will be able to install the package you need.
Ask for the addition of sshpass in the package white list. Request can be done here: https://github.com/travis-ci/travis-ci/labels/apt-whitelist
Can you use an SSH key instead of sshpass? That way you can simply use the SSH key to connect to the Docker container instead of using a password.