make: *** [install] Error 1 - linux

I have a problem with installing old software developed in 1995 for Linux.
My operating system is Cent Os. and I got some errors as below when I tried to follow the program instruction. I still do not know what the problems are....
sometimes the clock skew error messages show up but frequently it does not come up.
Waiting for expert's help
igrf]$ make
make: Warning: File igrf' has modification time 98 s in the future
make:igrf' is up to date.
make: warning: Clock skew detected. Your build may be incomplete.
igrf]$ make install
make: Warning: File igrf' has modification time 94 s in the future
install -c /home/hj/master/mag/bin -m 755 ./igrf
install: omitting directory/home/hj/master/mag/bin'
make: * [install] Error 1
Thanks!!

I installed the old version of libpcap-1.0.0 on Ubuntu 18.04 from the source, but this was not successful, as it does not fit my version of Ubuntu and gives a make error: *** [install] Error 1.
Instead this tar.gz archive i used the usual command in the terminal:
sudo apt install libpcap-dev # the problem is solved
It is possible that there is incompatibility of archives to new versions of Ubuntu.
It is also possible to find missing dependencies, check this:
IMPORTANT: There is enough information about this error; please do not post anything unless there is a specific review!
make install --touch
What can i do to help find dependencies. All of these workarounds are specific to one configuration or another. Therefore, it makes sense to track other issues as a separate bug instead of continuing to use one bug report for each issue. To make sure we focus on bugs that affect testers, Q_A_ asks reporters to feel free to post fixes and commits. The answer was very focused on the lack of specific dependencies. It will automatically collect and attach updated debug information to your report. Please add them for the feisty to help muffle the compilation issue. Maybe even backport fixes for the dapper and edgy ones?
Initially when compiling mongoose i used the helper:
make --touch
и был вывод:
touch vc98
touch vc2017
touch mingw
touch mingw++
touch linux
touch fuzzer
touch fuzz
Then i installed the missing dependencies:
sudo apt install fuzz libfuzzer-10-dev ocaml-mingw-w64-x86-64 vc-dev
...and still not all, then i had to use install (using reportdependencies the current behavior is unexpected and unsatisfactory):
I have output for mongoose:
touch linux-libs
touch install
Reportdependencies doesn't handle this very well.
In this case, linux-libs (install is omitted) points to some missing libraries. And this:
sudo apt install liblinux-pid-perl

I had an equivalent problem in the past. It is tied to the timestamps of (some) files. You should try to use the command "touch" on the concerned files. This will update the time stamps of those files.
I hope this will make the trick.

Related

Oneapi fatal error: compare: No such file or directory after system restart

I have a project been working on for my research for over a year, Oneapi have been integrated for way longer than 6months, everything working and all. Yesterday I updated some test code, and ran the tests, nothing out of normal. Today I restarted my machine (Ubuntu 20.04.2 LTS, 64bits) for updates, and now when I try to compile the project it gives:
In file included from /opt/intel/oneapi/tbb/2021.2.0/env/../include/oneapi/tbb/enumerable_thread_specific.h:26,
from /opt/intel/oneapi/tbb/2021.2.0/env/../include/oneapi/tbb/combinable.h:22,
from /opt/intel/oneapi/tbb/2021.2.0/env/../include/oneapi/tbb.h:35,
from ...file name omitted for privacy...
/opt/intel/oneapi/tbb/2021.2.0/env/../include/oneapi/tbb/concurrent_vector.h:33:10: fatal error: compare: No such file or directory
33 | #include <compare>
| ^~~~~~~~~
compilation terminated.
This only happened after system restart (possibly broke some links?) and only happens in files that require concurrent_vector.h
Ideally I'd prefer a fix that won't require reinstall of oneapi, apt-get update followed by apt-get upgrade didn't fix it, neither did restarting the system again.
Just ran into the same thing. It looks as if TBB automatically includes <compare> if you are compiling with -std=c++20:
https://github.com/oneapi-src/oneTBB/blob/9e15720bc7744f85dff611d34d65e9099e077da4/include/oneapi/tbb/detail/_config.h#L253
#define __TBB_CPP20_COMPARISONS_PRESENT __TBB_CPP20_PRESENT
GCC only added the compare header in libstdc++-10.
To me, this looks like a bug in TBB. I opened an issue here.
As a hotfix, I was able to downgrade my project to C++17. If that is not an option, you could consider copying detail/_config.h, defining __TBB_CPP20_COMPARISONS_PRESENT 0 in your copy and including it before you include any TBB header. The include guards should make sure that your version supersedes the broken TBB version.

Building own package for conda gcc and binutils issue

This post summarize my painful but finally successful (just by chance) way to build own conda package for the
netgen meshing tool with Python interface. I found the recipe for the netgen build due to tpaviot.
After cloning the repository into 'netgen-conda' folder I ran:
conda build netgen-conda/netgen-6.2-dev
Which reports "Unsatisfiable dependencies": 'oce', 'gcc-5', 'binutils'.
So I tried to install these packages myself. Unfortunately the documentation do not emphasize the important fact that 'conda build' use its own temporary environment so it doesn't matter what you have installed (see). Nevertheless even installing 'gcc-5' together with 'binutils' manually turns out to be nearly impossible.
Hint for other newbies: Lot of my problems disappear after I learned details about channels.
First try was installing 'gcc-5' with 'binutils' from the 'salford_systems' channel suggested by anaconda:
conda install -c salford_systems binutils gcc-5
But it results in:
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package 'salford_systems::gcc-5-5.3.0-0'.
LinkError: post-link script failed for package salford_systems::gcc-5-5.3.0-0
running your command again with-vwill provide additional information
location of failed script: /home/jb/miniconda3/envs/test/bin/.gcc-5-post-link.sh
Using verbose output ('-v') provides no more info. I was also confused by the fact that the script does not exist on the given path (probably automatically deleted).
With current experience I admit that the reason of problem can be dug out from the '-vv' output (reported issue). After some trying I found that only way to
install both is to first install 'gcc-5' into a clean environment and then install 'binutils'. Since 'conda build' installs everything
from scratch and there is no way to specify order of installed packages I was stuck.
Another issue that puzzled me is the 'conda build' long prefix hack. For unknown reason they use extremely long prefix for an auxiliary folder
which result in various kind of issues. I have faced to three such problems:
As is usual today, I have encrypted HOME causing a known issue.
Using a workaround '--croot /tmp' prevents creating the hard links from '/tmp' into 'HOME/miniconda3' since they are on different filesystems.
There is a fallback to use the copy. I even thought that the fallback doesn't work for a while, but it worked, just making the build running longer.
Trying to install 'gcc' (4.x) from 'default' channel complained about too short prefix. So ultimate workaroud was to set the length of the prefix manually
'--prefix-length 70'.
Finally, I found that the dependency on 'binutils' is not necessary and successfully build the package with:
conda build --prefix-length 70 -c salford_systems -c conda-forge -c dlr-sc netgen-conda/netgen-6.2-dev
Summary (of open questions):
Conda channels introduce a new kind of dependency hell already forgotten when using 'apt-get'. Is there a way to figure out what is a canonical channel for a package.
Does anyone succeed to build with combination 'gcc-5' and 'binutils'?
There is still lack of documentation about internal conda mechanisms and error messages do not provide clue to the problem.
Conda-build use a problematic prefix hack and lack ability to control order of installed packages. Does anybody know the reason for this hack?

How can I install siege using cgywin?

I am studying nodejs and mysql connection and I got an error in runnning the make command.
Here's my reference for my tutorial:
https://www.codementor.io/nodejs/tutorial/node-js-mysql
I already installed cgywin and here's what i did
I go to the extracted latest siege file
I run this command ./configure
Then make
But when I try to run the make I got this error:
JLC-Mark#JLC-Mark-PC /cygdrive/c/wamp/www/siege-3.1.2
$ make
make: *** No targets specified and no makefile found. Stop.
What can I do with this error?
Thats all I hope you can help me.
And one more thing can you suggest a good reference for real time updates using node and mysql?
You have to install the actual siege utility, which is a C program that is not on npm. Depending on your platform, the program may already be available via your package manager.

How to compile GTK2 source code?

I'm trying to modify GTK2 on Ubuntu Oneiric.
I download the source:
apt-get source libgtk2.0-0
cd gtk+2.0-2.24.6/
I try to compile and overwrite the current GTK2:
./configure --prefix=/usr
sudo make
Soemhow I get an error (I have all the necessary libraries and the build-essential package etc):
In file included from gtkquery.c:26:0:
gtkquery.h:31:2: error: #error "gtkfilechooserprivate.h is not supported API for general use"
By the way, I am able to modify and recompile GTK3 with no problems with the same steps.
If use debuild, I get thousands of
dpkg-source: error: cannot represent change to gtk+2.3.0-2.24.6/gtk+2.0-2.24.6/something: binary file contents changed
You won't get anything near the Ubuntu-provided build if you try building it by hand that way -- you'll miss all the ./configure options and other settings. (Look into debian/rules for the full details of what they're setting.)
Instead, try debian/rules build.
For reasons I haven't investigated yet (possibly including me not understanding how it should work), that didn't work on the first package I tried, but setting up pbuilder let me build the package I wanted.
It might feel like overkill to get a clean chroot as a build environment, but it is way too easy to build yourself problems that no one else in the world can replicate because you've got something funny on your local system.

Command 'make modules' doesn't build all modules

I'm running Fedora 14 64 bits.
I cloned the kernel source tree from git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
About a week ago I compiled and upgraded the kernel from 2.6.35 to 2.6.39, it went pretty smoothly, all I did was very straight-forward:
make menuconfig
make oldconfig
make -j8
make modules_install && install
Then I added a dummy system call (I was following this with the Linux Kernel Development book by Robert Love) and tried to compile again, it compiled the kernel fine, but when I issued:
[root#xps420 Kernel]# make modules
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
Building modules, stage 2.
MODPOST 4 modules
it only made 4 modules, previously there were over 2000 modules.
I thought it was my dummy system call that was causing the problem, I undid all the changes and tried again, with the same result.
Again, the steps I took were:
make menuconfig
make oldconfig
make -j8
make modules ----> suspicious
I'm not sure what is causing this.
EDIT:
A little more info, I run make clean before recompiling, but it still only made 4 modules.
At one point I did make modules_install, and checked /lib/modules/[ver], only those 4 modules were copied there. I should have stopped there but I went ahead and run make install anyway, it installed the kernel, but was unable to boot with it.
EDIT:
I just downloaded the stable release (2.6.39.1) from kernel.org, after going thru the steps above, the same thing happened. This is strange. Maybe something in my system is screwing this up :( Hopefully someone has run into this and shed some light.
Ok, after several cups of coffee and lots of googling, I don't know how this all works yet, but looks like when I first upgraded the kernel, the .config was based on the running kernel's config and it includes all the needed modules, therefore it ran fine? Then somehow on the subsequent compilations almost all of the modules were not configured in the .config (except the 4 mentioned above). Long story short, I used the old .config and ran menuconfig to make additional changes, it seems to solve my problem. Thanks!
If you don't do a "make clean", the previous compilation results are still there. Only modules affected by the code you changed will be rebuilt.
Perhaps only those four modules have a dependency on the files you touched. If you'd like to confirm this, do a make clean and then try building again, and see if you don't get all the modules compiling again. Of course, it'll take a lot longer!
Try make V=1 ... for verbose output.
Or even V=2.
I encountered the same problem, and solved it by following wliao's advice.
Problem description:
I upgraded kernel to 5.0.0 from 3.x.x(CentOS7 built-in) days ago;
Today, I am going to upgrade it to 5.3.0-rc6+;
Before upgrade, I did a full clean by make distclean;
After make, make modules_install and make install, I tried to reboot with new kernel;
But boot failed with: error: /vmlinuz-5.3.0-rc6+ has invalid signature.
After a long while googling, I came here, thank goodness!
Solving steps:
Copy the existing config file from /boot
cp -p /boot/config-3.10.0-957.27.2.el7.x86_64 .config
Config additional settings by menuconfig
make menuconfig
Build
make -j $(nproc)
sudo make modules_install
sudo make install
Show your new kernel version
sudo grep ^menuentry /boot/efi/EFI/centos/grub.cfg | cut -d "'" -f2
Set your default boot kernel
sudo grub2-set-default 'CentOS Linux (5.3.0-rc6+) 7 (Core)'
Boot successfully!

Resources