Cannot install Rails 6 due to annobin - ruby-on-rails

I wrote my first major rails app in 2008 and have been using it since. Over the years I've installed it at least 10 times. Now I cannot install Rails 6. The installation fails at nokogiri with the following error in /usr/local/lib64/gems/ruby/nokogiri-1.10.9/mkmf.log:
cc1: fatal error: inaccessible plugin file /usr/local/gcc8/lib/gcc/x86_64-pc-linux-gnu/8.3.0/plugin/annobin.so expanded from short plugin name annobin: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return 0;
6: }
/* end */
I've tried to learn what annobin is with no luck. I've attempted to install annobin from github, but that does not provide the functionality rails is looking for. Of course, this little program compiles and runs just fine. So I have no idea why rails now requires annobin to install. In this context I'm not even sure what a plugin is.
Many thanks for any help.

Related

Installing opencv + fatal error: 'opencv2/core.hpp' file not found

I have installed open cv using the official installation process given at:
https://docs.opencv.org/4.5.2/d0/db2/tutorial_macos_install.html
I am doing this on mac and it took ~3 hours for this process. After installation, the installed directory looks like this:
apple#Apples-MacBook-Air.local:~/Learning/openCV/cpp$ pwd
/Users/apple/Learning/openCV/cpp
apple#Apples-MacBook-Air.local:~/Learning/openCV/cpp$ ls
3rdparty CTestTestfile.cmake bin data
opencv_data_config.hpp setup_vars.sh
CMakeCache.txt Makefile cmake_install.cmake doc
opencv_lapack.h test-reports
CMakeDownloadLog.txt OpenCVConfig-version.cmake cmake_uninstall.cmake
include opencv_python_config.cmake tmp
CMakeFiles OpenCVConfig.cmake configured lib
opencv_python_tests.cfg unix-install
CMakeVars.txt OpenCVModules.cmake custom_hal.hpp modules
opencv_tests_config.hpp version_string.tmp
CPackConfig.cmake apps cv_cpu_config.h opencv
python_loader
CPackSourceConfig.cmake basicOp.cpp cvconfig.h opencv2
samples
Now, I am writing a very simple program to test the installation and it looks like that I need to do more things than what I have done so far.
My simple program:
#include<iostream>
#include<opencv2/core.hpp>
int main() {
std::string imagePath = samples.findFile("starry_night.jpg");
cv::Mat imageMatrix = cv::imread(imagePath);
if(imageMatrix.empty()) {
std::cout << "Matrix is empty" << std::endl;
}
}
Compiling this gives error as:
apple#Apples-MacBook-Air.local:~/Learning/openCV/programs$ g++ imageRead.cpp
imageRead.cpp:2:9: fatal error: 'opencv2/core.hpp' file not found
#include<opencv2/core.hpp>
No problem, I can probably understand that due to non-linkage of the open cv libraries.
So, I compiled with:
apple#Apples-MacBook-Air.local:~/Learning/openCV/programs$ g++ imageRead.cpp -I/Users/apple/Learning/openCV/cpp/include -L/Users/apple/Learning/openCV/cpp/lib/
imageRead.cpp:2:9: fatal error: 'opencv2/core.hpp' file not found
#include<opencv2/core.hpp>
And it still give me the same error. Basically, I passed the paths for gcc to consider for linking.
Any suggestions? I can help providing more details on it, if needed.
Did you try #include<opencv2/opencv.hpp> instead of #include<opencv2/core.hpp>?

opencv 4 on Ubuntu 18.04 with cuda 9.2

I have compiled opencv 4 and Cuda 9.2 on Ubuntu 18.04 machine. I tried to test a sample code with a OpenCV header file that I frequently use in my application . I am getting the following while compiling with nvcc:
/usr/local/cuda/bin/nvcc -o saxpy saxpy.cu --std=c++11 -I /opt/sensen/include/ `pkg-config opencv --cflags --libs`
/opt/sensen/include/opencv2/core/types_c.h(1359): error: no suitable constructor exists to convert from "int" to "CvSlice"
/opt/sensen/include/opencv2/core/types_c.h(1359): error: expected a ")"
2 errors detected in the compilation of "/tmp/tmpxft_00004bc8_00000000-8_saxpy.cpp1.ii".
Has anyone else faced this issue? Any suggestions are appreciated.
I had the same problem as #mandar-sovani.
I am using Ubuntu 14.04 and OpenCV 3.4.3. My solution to this problem: check in your cuda code (.cu files) which #include preprocessor directive is adding an OpenCV header. Then somehow modify your code to avoid that the said header is included into in your cuda code (.cu files).
Note: thanks #talonmies for the insight into the solution.
Yo holmes, try replacing that weird block of code with this:
CV_INLINE CvSlice cvSlice( int start, int end )
{
CvSlice slice = { start, end };
return slice;
}
worked for me! (On Visual studio 2017)

Dart libsass compiles correctly but will not run

I've follow the instructions for dart libsass at:
https://github.com/oddrationale/dart_libsass
The compile step completes correctly. However - when i try and execute sassd.dart i get the following:
dart bin/sassd.dart ~/projects/web_apps_dart/lib/client/components/picker/picker.scss ~/Desktop/test.css
Cannot find extension library'package:libsass/libsass.dart': error: line 10 pos 1: library handler failed
import 'dart-ext:libsass/src/sass_extension';
^
Cannot find initialization function in extension'package:libsass/libsass.dart': error: line 10 pos 1: library handler failed
import 'dart-ext:sass_extension';
^
sass_extension.cc exists at ~/lib/src/sass_extension.cc
Question: How do we correctly import the sass_extions.cc file in recent builds of Dart?
I'm the author/maintainer of dart_libsass.
I got your bug report on GitHub and resolved the issue there. The issue was with the build script not the sass_extension.cc file itself. If you have any other issues, let's continue the discussion on the GitHub issues page. Thanks!

ImageMagick No such file or directory

I am trying to get a screen shot using the following code;
#include <stdio.h>
#include </wand/MagickWand.h>
int main(int argc, char **argv)
{
MagickWandGenesis();
MagickWand *wand = NULL;
wand = NewMagickWand();
MagickReadImage(wand,"x:root"); // <-- Invoke ImportImageCommand
MagickWriteImage(wand,"screen_shot.png");
if(wand)wand = DestroyMagickWand(wand);
MagickWandTerminus();
return 0;
}
however I am getting the following error message, magick-config.h is in the specified folder 'magick/magick-config.h' , I do not understand what the problem is;
$ make screenshot
cc screenshot.c -o screenshot
In file included from /wand/MagickWand.h:29:0,
from screenshot.c:2:
/magick/magick-config.h:29:3: warning: #warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
/magick/magick-config.h:30:3: warning: #warning "this is an obsolete behavior please fix your makefile"
/magick/magick-config.h:52:3: warning: #warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
/magick/magick-config.h:53:3: warning: #warning "this is an obsolete behavior please fix yours makefile"
In file included from /wand/MagickWand.h:70:0,
from screenshot.c:2:
/magick/MagickCore.h:29:36: fatal error: magick/magick-config.h: No such file or directory
compilation terminated.
<builtin>: recipe for target `screenshot' failed
make: *** [screenshot] Error 1
Any help would be much appreciated.
Thanks
Yes, Actually I had a problem like that and it was fixed when I installed the package libmagickcore-dev with following command:
sudo apt-get install libmagickcore-dev
through the Ubuntu Repositories. :-)
Also If it did not work, you try installing the package called "graphicsmagick-libmagick-dev-compat".
AC;
You might have installed too much?
Try to remove Image-magick-"Perl Module"
The Perl Module.
And then again try the process to install ImageMagick with PECL or your other way.
Often this problem is occurring because of installation made with make install on a platform.
Remove all other installations and just do the installation from pure sources if you already started doing that.
.deb and .rpm packages might be installed in different ways than making from source.

How to write Hello World for OpenWRT and/or dd-wrt

I'm working on running a Hello World program on the Linksys WRT54G-V4 running either dd-wrt or OpenWRT.
Right now this router is running dd-wrt for reasons I'll explain below. I'd like to switch this router to OpenWRT, because I've not been able to build dd-wrt or its toolchain. I 'assume' that the OpenWRT toolchain should produce executable binaries that will run on dd-wrt also.
OpenWRT was pretty straightforward to build, since it has a nice menu driven make system. Using this handy tool I built a toolchain that will cross compile from my x86 Ubuntu box to a MIPS target.
Following the instructions I've been able to build OpenWRT and produce images for brcm47xx and brcm63xx.
For example, here is a successful compile of my little Hello World program:
jim#ubuntu:~/Desktop/tests$ cat helloC.c
#include <stdio.h>
int main (int argc, char **argv)
{
printf("Hello World\n");
return 0;
}
jim#ubuntu:~/Desktop/tests$
jim#ubuntu:~/Desktop/tests$ mipsel-openwrt-linux-gcc -o HelloWorld helloC.c
jim#ubuntu:~/Desktop/tests$
jim#ubuntu:~/Desktop/tests$ file HelloWorld
HelloWorld: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, not stripped
jim#ubuntu:~/Desktop/tests$
Sadly, when I try to run HelloWorld on my WRT54G-V4 running dd-wrt I get a seg fault.
Looking at Wikipedia, I see that this router uses the Broadcom BCM5352.
When I run make menuconfig in by OpenWRT/trunk directory I don't see an option for the BCM5352, which is why I'm reluctant to flash my router with one of the images I've created in the brcm47xx or brcm63xx directories. I don't want to guess wrong and brick the router.
Question 1 - Which Broadcom configuration should I select using make menuconfig to target my WRT54G-V4 with its BCM5352 chipset?
Question 2 - Should my 'HelloWorld' executable file I generated above run directly from the command line on the 54G, or must I make it a package per http://www.gargoyle-router.com/wiki/doku.php?id=openwrt_coding ?
TIA
You can follow the official howto (from: http://www.dd-wrt.com/forum/viewtopic.php?p=21499&sid=de90601a8d51747d1c8ccec29284127d)
1. The helloworld.c source
Code:
#include <stdio.h>
int main ( void ) {
printf( "Hello world!\n" );
}
2. Get and unpack the toolchain in your homedir
Code:
cd ~
wget ftp://ftp.dd-wrt.com/sourcecode/toolchains.x86.debian.sp1.tar.bz2
tar -jxf toolchains.x86.debian.sp1.tar.bz2
3. Add the path to your cross-compiler executable to your path environment variable and compile helloworld.c
Code:
PATH=~/toolchains/4.1.0-uclibc-0.9.28/bin:$PATH mipsel-linux-uclibc-gcc helloworld.c -o helloworld
4. Check if its correctly compiled with the cross-compiler
Code:
file helloworld
helloworld: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
5. Finally, transfer the helloworld binary file to your router, set the executable bit and run it.
Tested with Ubuntu 6.06.1 LTS.

Resources