cant find libl on centos 9 - /usr/bin/ld: cannot find -ll - c

Brand new install of centos 9. (mostly minimal)
I did a find and there is no libl.so on my machine.
sudo yum install bison
Last metadata expiration check: 1:52:29 ago on Wed 23 Feb 2022 01:25:31 PM EST.
Package bison-3.7.4-5.el9.x86_64 is already installed.
sudo yum install flex
Last metadata expiration check: 1:52:25 ago on Wed 23 Feb 2022 01:25:31 PM EST.
Package flex-2.6.4-9.el9.x86_64 is already installed.
sudo yum install flex-devel
Last metadata expiration check: 1:52:35 ago on Wed 23 Feb 2022 01:25:31 PM EST.
No match for argument: flex-devel
I tried installing sudo yum groupinstall 'Development Tools'
nothing works, any ideas?

The static libraries (libfl.a and libl.a), which is what were provided before in the package flex-devel, have been moved to the package libfl-static. I don't know if RedHat ever provided shared objects; there's a note in the libfl-static ChangeLog that seems to be saying that there is a new package called libfl2 with shared objects, but I don't see it in the package repo. Anyway, static libraries should be fine. There's hardly anything there.
If you're using libl, that means that:
you aren't using %option noyywrap, which will remove the call to yywrap (and if you're using the version of yywrap in libl, then you don't need it to call the function, since that version unconditionally returns 1), and/or
you haven't provided your own main function.
I strongly recommend including the following options in all flex files, unless you have a clear need for the suppressed features:
%option noinput nounput noyywrap nodefault
The main function in libl is also trivial. It can be replaced with:
int main(void) {
while (yylex() != 0) { }
return 0;
}

As you pointed out in the question - flex-devel is not found.
It's in the PowerTools repo.
The 'official' way to enable the repo is to use the yum config-manager command line:
yum config-manager --set-enabled powertools
This may give an error about being missing the config-manager command:
No such command: config-manager
If this happens, then you can install the dnf-plugins-core package:
yum install -y dnf-plugins-core
and then enable the powertools repo, and then you should be able to yum install flex-devel, which provides:
$ rpmquery --list flex-devel
/usr/lib64/libfl.a
/usr/lib64/libfl_pic.a
/usr/lib64/libl.a
/usr/share/doc/flex
/usr/share/licenses/flex-devel
/usr/share/licenses/flex-devel/COPYING

Related

Undefined subroutine &main::open_quote called at /usr/local/bin/autom4te line 262

Hi I try to install xdebug via pecl on macox (Big Sur 11.5.2)
But I get error message
xdebug volodymyr$ pecl install xdebug
downloading xdebug-3.0.4.tgz ...
Starting to download xdebug-3.0.4.tgz (215,870 bytes)
.............................................done: 215,870 bytes
87 source files, building
running: phpize
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902
Undefined subroutine &main::open_quote called at /usr/local/bin/autom4te line 262.
ERROR: `phpize' failed
I update perl but it did help me (I can't catch if the open_quote is a part of perl)
Also I didn't find any information in the internet that is related with open_quote function issue
I tried to install xdebug from source and get the same bug on the ./phpize step
Resolve:
Just reinstall autoconf automake libtool
I run
brew reinstall autoconf automake libtool
After that I run brew link --force autoconf and it resolved the trouble
The error here comes from autom4te, not pecl or ./phpize. You need to update automake and autoconf, and/or related packages.

PHPUnit gives No Code Coverage Driver Is Available

I have a laravel project and I tried to run phpunit to give me a coverage report. I ran the command vendor/bin/phpunit --coverage-html storage/test-output-data/coverage-html and it gave the output:
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
Error: No code coverage driver is available
I tried to resolve this situation by doing a sudo pecl install pcov, but running the phpunit still gave the same error above.
I noticed that I have the file /usr/lib/php/20170718/pcov.so. So I added the line extension=/usr/lib/php/20170718/pcov.so to my /etc/php/7.4/cli/php.ini file. But when I type php -v, I get this error:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20170718/pcov.so' (tried: /usr/lib/php/20170718/pcov.so (/usr/lib/php/20170718/pcov.so: undefined symbol: _zval_ptr_dtor), /usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so (/usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.11 (cli) (built: Oct 10 2020 19:44:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies
I also have a folder called /usr/lib/php/20190902 but it does not have a pcov.so file.
I also tried doing a sudo pecl install xdebug, but I run into similar errors as above where phpunit says there's no driver and typing php -v says some global variable is missing similar to the pcov issue.
What am I doing wrong?
I noticed that I have the file /usr/lib/php/20170718/pcov.so. So I added the line extension=/usr/lib/php/20170718/pcov.so to my /etc/php/7.4/cli/php.ini file.
This file is for PHP 7.2 (based on 20170718 part) while you are trying to use it in PHP 7.4.
You need to get the right version of Xdebug (or PCOV) for your PHP 7.4. (NOTE: for PHP 7.4 the API version (and the right folder in the path) will be 20190902.)
Try this solution from the following answer to switch / install extensions via PECL for specific PHP version (7.4 instead of your current 7.2): https://stackoverflow.com/a/54594604/783119
sudo pecl -d php_suffix=7.4 install <package-name>
This has nothing to do with PHPUnit. You have a problem with your PHP environment: "PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20170718/pcov.so' (tried: /usr/lib/php/20170718/pcov.so (/usr/lib/php/20170718/pcov.so: undefined symbol: _zval_ptr_dtor), /usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so (/usr/lib/php/20190902//usr/lib/php/20170718/pcov.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0"
You just need to install xdebug, so the coverage knows how to run.
For example, for PHP 7.1, it's this package:
sudo apt install php7.1-xdebug
Just fixed it today for my scenario. In your case, just change the PHP version to:
sudo apt install php7.4-xdebug

How can I install a development package (rawhide) on Fedora 23

I am trying to install the lattest armadillo version. From the package list I can see rawhide 7.100.3-2.fc25.
I run Fedora 23 and cannot manage to install this package directly.
So following this postI did
dnf install fedora-repos-rawhide
dnf install --enablerepo rawhide armadillo
I get:
Last metadata expiration check: 1:16:40 ago on Tue May 31 18:20:30 2016.
Package armadillo-6.700.6-1.fc23.x86_64 is already installed, skipping.
How can I install using dnf the proper package ?
You need to use update, since your package is already installed:
dnf update --enablerepo rawhide armadillo

Update to last version after already installed old

I'm using fastcgi and my PHP version is 5.3.3 instead of 5.5 so my question is how can I update to latest PHP version? I'm using CentOS, I tried yum update, but no update appeared for this.
Normally you need to uninstall the 5.3 branch and install 5.5 from scratch because it is not an update but a new version.
Beware that in 5.5 quite some functions are deprecated that were still available in 5.3!
http://blog.ahughes.org/?p=717
Uses the remi repository.
From the blog:
By running the following commands:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
you solve all dependency issues with epel and remi on CentOS 6.
Then, by running the following command, you install PHP 5.5.
yum --enablerepo=remi,remi-test install httpd php php-common
For extra goodies, you can run the following command:
yum --enablerepo=remi,remi-test install php-pecl-apc php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Now, restart your httpd service and set it to boot automatically:
service httpd restart
chkconfig --levels 235 httpd on
Now run:
php --version
to see whether the correct version of PHP was installed.

Help installing static binary for wkhtmltopdf

I am trying to use the static binary of wkhtmltopdf on Ubuntu server 10.0.4. The reason for is that it apparently has a built in modified QT that will allow me to run wkhtmltopdf without an X Server.
Result:
Once installed (see steps below), when I execute wkhtmltopdf in the terminal, it does not fire up... just returns me to the prompt - like it ran and did something, no error but no output:
:/usr/bin$ wkhtmltopdf
:/usr/bin$
Same behavior if I put args:
:/usr/bin$ wkhtmltopdf http://www.google.com test.pdf
:/usr/bin$
Am I doing something wrong --- my understanding that the static binary should just fire up. Perhaps missing some dependency? Is there a way to get some verbose output?
These are the steps I have followed:
In /usr/bin:
1) Confirmed that the existing (non-static) wkhtmltopdf resides there and that it executes. When I execute it with no args I get the help/about output from the app.
2) Moved the existing wkhtmltopdf out of the directory (renamed it)
3) Get the static binary: sudo curl -C - -O http:
//wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
4) Untar: tar xvjf wkhtmltopdf-0.9.9-static-i386.tar.bz2
5) Rename: mv wkhtmltopdf-i386 wkthtmltopdf
6) Get (apparently) necessary packages: sudo apt-get install openssl build-essential xorg libssl-dev
I was having the same problem. I removed the existing wkhtmltopdf and followed the steps below and the installation worked.
First, installing dependencies
sudo aptitude install openssl build-essential xorg libssl-dev
for 64-bit OS
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.2-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.2-static-amd64.tar.bz2
chown root:root wkhtmltopdf-amd64
mv wkhtmltopdf-amd64 /usr/bin/wkhtmltopdf
The only difference is that I put it in /usr/local/bin/wkhtmltopdf.
I hope this helps!
Following deb's answer got it working for me on Ubuntu 10.04 64bit - thanks!
Although rather than downloading 0.9.2 as per deb's instructions, I would suggest people download the latest version by:
Go to http://code.google.com/p/wkhtmltopdf/downloads/list
Download the latest version of wkhtmltopdf-[version number]-static-amd64.tar.bz2
At this time, the latest 64bit is http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2.
In my debian server trying to run wkhtmltopdf-i386 lead to same blank prompt.
Non-static (with non-patched QT) version of wkhtmltopdf installed with "aptitude install wkhtmltopdf" is worked.
Problem solved by switching to wkhtmltopdf-amd64, server was a 64 bit and i missed it.
After that, wkhtmltopdf-amd64 says 'libxrender shared library not found', this problem was solved by "aptitude install xorg"
0.11.0_rc1 seems to be buggy.
It keeps throwing the error "Cannot create a QPixmap when no GUI is being used".
Reverting to 0.9.9 worked for me.

Resources