How do you install chrome on Amazon Linux 2? - linux

I've used the popular script by the Intoli folks to install and keep updated Chrome on my Amazon Linux 2 servers, for some 2 years now, and the latest update of Chrome (I think it was .100 or .101) is now saying "segmentation fault" when chrome attempts to run.
Intoli script: https://intoli.com/blog/installing-google-chrome-on-centos/
I contacted the Intoli folks but haven't heard back, weird that there isn't a nice way to update Chrome on AWS servers -- seems like this would be a thing.
Here is the script output:
Extracting pcre...
bash: line 68: 13676 Segmentation fault google-chrome-stable --version > /dev/null 2>&1
Loaded plugins: langpacks, priorities, remove-with-leaves, update-motd
210 packages excluded due to repository priority protections
Package gcc-7.3.1-14.amzn2.x86_64 already installed and latest version
Package gcc-c++-7.3.1-14.amzn2.x86_64 already installed and latest version
Package 1:make-3.82-24.amzn2.x86_64 already installed and latest version
Package autoconf-2.69-11.amzn2.noarch already installed and latest version
Package automake-1.13.4-3.1.amzn2.noarch already installed and latest version
Nothing to do
Linking issues were encountered, attempting to patch the executable.
--2022-05-01 09:37:54-- https://github.com/NixOS/patchelf/archive/0.9.tar.gz
Resolving github.com (github.com)... 140.82.113.3
Connecting to github.com (github.com)|140.82.113.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/NixOS/patchelf/tar.gz/refs/tags/0.9 [following]
--2022-05-01 09:37:54-- https://codeload.github.com/NixOS/patchelf/tar.gz/refs/tags/0.9
Resolving codeload.github.com (codeload.github.com)... 140.82.113.9
Connecting to codeload.github.com (codeload.github.com)|140.82.113.9|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘0.9.tar.gz’
[ <=> ] 96,859 --.-K/s in 0.008s
2022-05-01 09:37:55 (11.3 MB/s) - ‘0.9.tar.gz’ saved [96859]
/tmp/google-chrome-installation/patchelf-0.9 /tmp/google-chrome-installation /bin
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=all
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory build-aux
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force --warnings=all
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --force-missing --warnings=all
configure.ac:6: installing 'build-aux/compile'
configure.ac:4: installing 'build-aux/install-sh'
configure.ac:4: installing 'build-aux/missing'
src/Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
Setting page size to 4096
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating patchelf.spec
config.status: executing depfiles commands
Making all in src
make[1]: Entering directory `/tmp/google-chrome-installation/patchelf-0.9/src'
g++ -DPACKAGE_NAME=\"patchelf\" -DPACKAGE_TARNAME=\"patchelf\" -DPACKAGE_VERSION=\"0.9\" -DPACKAGE_STRING=\"patchelf\ 0.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"patchelf\" -DVERSION=\"0.9\" -DPAGESIZE=4096 -I. -Wall -g -O2 -MT patchelf.o -MD -MP -MF .deps/patchelf.Tpo -c -o patchelf.o patchelf.cc
mv -f .deps/patchelf.Tpo .deps/patchelf.Po
g++ -Wall -g -O2 -o patchelf patchelf.o
make[1]: Leaving directory `/tmp/google-chrome-installation/patchelf-0.9/src'
Making all in tests
make[1]: Entering directory `/tmp/google-chrome-installation/patchelf-0.9/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/google-chrome-installation/patchelf-0.9/tests'
make[1]: Entering directory `/tmp/google-chrome-installation/patchelf-0.9'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/tmp/google-chrome-installation/patchelf-0.9'
warning: working around a Linux kernel bug by creating a hole of 2404352 bytes in ‘/opt/google/chrome/chrome’
warning: working around a Linux kernel bug by creating a hole of 16384 bytes in ‘/opt/google/chrome/chrome-sandbox’
Attempted experimental patching of Chrome to use a relocated glibc version.
Successfully installed google-chrome-stable, Google Chrome 101.0.4951.41 .
You have mail in /var/spool/mail/root
[root#ip-172-30-0-243 bin]# chrome --version
Google Chrome 101.0.4951.41
[root#ip-172-30-0-243 bin]# chrome --help
Segmentation fault
Here is the output when I tried Dean's suggestion:
[root#ip-172-30-0-243 tmp]# yum install ./google-chrome-stable_current_x86_64.rpm
Loaded plugins: langpacks, priorities, remove-with-leaves, update-motd
Existing lock /var/run/yum.pid: another copy is running as pid 9183.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 320 M RSS (537 MB VSZ)
Started: Sun May 1 17:46:03 2022 - 00:08 ago
State : Running, pid: 9183
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 322 M RSS (540 MB VSZ)
Started: Sun May 1 17:46:03 2022 - 00:10 ago
State : Running, pid: 9183
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 322 M RSS (540 MB VSZ)
Started: Sun May 1 17:46:03 2022 - 00:12 ago
State : Running, pid: 9183
Examining ./google-chrome-stable_current_x86_64.rpm: google-chrome-stable-101.0.4951.41-1.x86_64
Marking ./google-chrome-stable_current_x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package google-chrome-stable.x86_64 0:101.0.4951.41-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================================================================
Installing:
google-chrome-stable x86_64 101.0.4951.41-1 /google-chrome-stable_current_x86_64 262 M
Transaction Summary
===============================================================================================================================================================================================================================
Install 1 Package
Total size: 262 M
Installed size: 262 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : google-chrome-stable-101.0.4951.41-1.x86_64 1/1
Verifying : google-chrome-stable-101.0.4951.41-1.x86_64 1/1
Installed:
google-chrome-stable.x86_64 0:101.0.4951.41-1
Complete!
You have mail in /var/spool/mail/root
[root#ip-172-30-0-243 tmp]# chrome --version
Segmentation fault

Run these commands and it should work
# Enable and install Extra Packages for Enterprise Linux by running the command
sudo amazon-linux-extras install epel -y
# Post installing all the extra packages successfully, Install chromimum as usual
sudo yum install -y chromium
or if that doesnt work then try these
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo yum install ./google-chrome-stable_current_x86_64.rpm
sudo ln -s /usr/bin/google-chrome-stable /usr/bin/chromium

Related

Can't install Node.JS on linux machine

I am struggling to install Node.JS on a linux machine.
When I run brew install node , I get this output
```[c_test#whatever-server ~]$ brew install node
==> Installing dependencies for curl: glibc, gcc, pkg-config and openssl#1.1
==> Installing curl dependency: glibc
==> Downloading https://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz
Updating Homebrew...
######################################################################## 100.0%
==> ../configure --disable-debug --disable-dependency-tracking --disable-silent-rules --prefix=/home/c_test/.linuxbrew/Cellar/glibc/2.23 --enable-obsolete-rpc --without-selinux --with-binutils=/home/c_
Last 15 lines from /home/c_test/.cache/Homebrew/Logs/glibc/01.configure:
checking version of gmake... 3.81, ok
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.17, ok
checking for makeinfo... no
checking for sed... sed
checking version of sed... 4.2.1, ok
checking for gawk... gawk
checking version of gawk... 3.1.7, ok
checking if gcc -B/home/c_test/.linuxbrew/opt/binutils/bin/ is sufficient to build libc... no
checking for nm... nm
configure: error:
*** These critical programs are missing or too old: compiler
*** Check the INSTALL file for required versions.
READ THIS: https://docs.brew.sh/Troubleshooting```
I guess the gcc version is the good one:
gcc (GCC) 8.4.0
Copyright (C) 2018 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.
I have a similar error when I try to build it from source:
./configure
WARNING: C++ compiler (CXX=g++, 4.4.7) too old, need g++ 6.3.0 or clang++ 8.0.0
ERROR: Did not find a new enough assembler, install one or build with
--openssl-no-asm.
Please refer to BUILDING.md
You are right, your compiler is out dated.
Nodesource has a pretty easy setup installer for node js based on your system and architecture which it checks automatically. Using apt/apt-get will usually also update the dependencies (eg gcc,g++):
See https://github.com/nodesource/distributions and for the latest
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_13.x | bash -
apt-get install -y nodejs

Installing g++ on windows subsystem for linux

A while back I activated Windows Subsystem for Linux on my machine but didn't use it much. Now I have an idea what I could use it for and that is why I'm trying to install gcc/++ 7 on my WSL and keep running into problems.
My idea was to download it and compile it by hand following this guide with:
../gcc/configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=${HOME}/software/gcc-7.3.0/installDir --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
This led to the following error:
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for x86_64-linux-gnu-gcc... no
checking for gcc... no
checking for x86_64-linux-gnu-cc... no
checking for cc... no
checking for x86_64-linux-gnu-cl.exe... no
checking for cl.exe... no
configure: error: in `$HOME/software/gcc-7.3.0/build':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Apparently, there was no(?) gcc installed at all. At least gcc and cc yielded "command not found". So my next step was installing gcc via:
sudo apt install gcc
This worked:
$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4
Copyright (C) 2013 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.
However when trying the configure command from above I got:
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for x86_64-linux-gnu-gcc... x86_64-linux-gnu-gcc
checking for C compiler default output file name...
configure: error: in `/home/seriously-ubuntu/software/gcc-7.3.0/build':
configure: error: C compiler cannot create executables
see `config.log' for more details.
So I tried to compile a simple c program by hand:
int main() {
return 42;
}
Which hints that something seems to be seriously broken
$ gcc foo.c
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
Any Ideas where I can even start to repair this? I wouldn't even mind reseting the whole WSL if this helps :/
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
UPDATE:
Before all of this I tried installing gcc7 / g++/ via apt without success:
$ sudo add-apt-repository ppa:jonathonf/gcc-7.1
$ sudo apt-get update
$ sudo apt-get install gcc-7 g++-7
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
g++-7 : Depends: libstdc++-7-dev (= 7.1.0-10ubuntu1~16.04.york0) but it is not going to be installed
Depends: libisl15 (>= 0.15) but it is not installable
gcc-7 : Depends: cpp-7 (= 7.1.0-10ubuntu1~16.04.york0) but it is not going to be installed
Depends: binutils (>= 2.26.1) but 2.24-5ubuntu14.2 is to be installed
Depends: libisl15 (>= 0.15) but it is not installable
Recommends: libc6-dev (>= 2.13-0ubuntu6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages
UPDATE 2
Sadly none of the suggested ways helped and I ended up nuking the WSL. Apparently, something more severe was broken.
Why compiling? You should be able to install the package:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-7 -y
Verify using:
gcc-7 --version
See How to install gcc-7 or clang 4.0?
run the following
sudo apt install aptitude
sudo aptitude install gcc-7 g++-7
or
sudo apt install aptitude && sudo aptitude install golang gcc-7 g++-7
crt1.o is generally provided as part of the libdevc dependency (or something similar). I would suggest running sudo apt search libc or some similar variant with lib6c, libdev, libc-dev etc. Installing those fixed a similar issue I had recently.
Failing that, run find / -iname ctri.o and add the folder it appears in to your PATH with export PATH="[folder]:$PATH", and see if that helps.
As you can see here, g++ is just a package in the default ubuntu package repository (for ubuntu 18.04, 20.04 and 22.04 and others).
So it's actually enough to just run this.
sudo apt update
sudo apt install g++
Afterwards you can check with:
g++ --version
which resulted in version 9.4.0 at the time of writing.
However, you can also pick a specific version (e.g. apt install g++-12). However then the binary will also have a specific name (e.g. g++-12) and you may need to add a symlink if you need it to be g++. (e.g. ln -s /usr/bin/g++-12 /usr/bin/g++).

Autoconf installed but doesn't work (ubuntu)

I'm trying to install GNU automake. When running ./configure I get the following error message in the terminal:
checking whether autoconf is installed... yes
checking whether autoconf works... no
configure: error: The installed version of autoconf does not work.
Please check config.log for error messages before this one
Looking at the config.log I can't figure out where the problem is. My guess it that it's with tex but I'm not sure what program that is even referring to. I installed TexStudio and that didn't resolve it.
The log file is pasted below:
configure:2784: checking for tex
configure:2814: result: no
configure:2822: --version </dev/null
./configure: line 2823: --version: command not found
configure:2825: $? = 127
configure:2843: checking for yacc
configure:2859: found /usr/local/bin/yacc
configure:2870: result: yacc
configure:2886: checking for lex
configure:2916: result: no
configure:2886: checking for flex
configure:2902: found /usr/local/bin/flex
configure:2913: result: flex
configure:2934: checking whether autoconf is installed
configure:2939: autoconf --version
Autoconf version 2.10
configure:2942: $? = 0
configure:2950: result: yes
configure:2957: checking whether autoconf works
configure:2964: cd conftest && autoconf -o /dev/null conftest.ac
Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
[-l dir] [--localdir=dir] [--version] [template-file]
configure:2967: $? = 1
configure:2976: result: no
configure:2979: error: The installed version of autoconf does not work.
Please check config.log for error messages before this one.
As Diego said, if you install autoconf from the repositories it will install the version 2.68. For some reason, you might have the version 2.13 installed.
If it is the case remove the old version and install the default version:
sudo apt-get remove autoconf2.13 && sudo apt-get install autoconf
Autoconf 2.1 is very old and has significantly different semantics from the current version (2.69, called the "2.5 series".)
Ubuntu appears to have separate packages for autoconf 2.1 and 2.6x but I'm not sure how they select across the two.

How to install Petite Chez Scheme on Ubuntu?

How to install Petite Chez Scheme on Ubuntu?
I run Ubuntu 15.10 and try to install pcsv8.4-a6le.tar.gz (non-threaded, 64 bit) for Linux.
After having unpacked this tar in /usr/locale, I enter the commands
sudo ./configure
sudo make install
from within the custom directory.
However, instead of a clean install, I get the following errors (which I hope someone can help me out with):
nlykkei#nlykkei-Studio-XPS-1640:/usr/local/csv8.4/custom$ sudo make install
if [ yes = no ]; then if [ ! -f ./scheme ]; then /bin/rm -f ./scheme; ln -s ../bin/a6le/scheme ./scheme; fi; fi
if [ ! -f ./petite ]; then /bin/rm -f ./petite; ln -s ./scheme ./petite; fi
/bin/rm -f ./scheme
echo "const char *S_date_stamp = \"`date +%m%d%Y%H%M%S`\";" > datestamp.c
gcc -m64 -rdynamic -o ./scheme datestamp.c ../boot/a6le/kernel.o ../boot/a6le/custom.o -lm -ldl -lncurses -lrt
/usr/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status
Mf-a6le:22: recipe for target 'scheme' failed
make[2]: *** [scheme] Error 1
Makefile:47: recipe for target 'buildpetite' failed
make[1]: *** [buildpetite] Error 2
Mf-install:64: recipe for target 'install' failed
make: *** [install] Error 2
On recent versions of Ubuntu (and future versions of Debian e.g. "Buster", and other Debian based distros), you can install Chez Scheme directly from the repo(s) by:
sudo apt install chezscheme
Previously you had to install it by compiling from source. Chez Scheme has been open source, for a few years now, and can be compiled from source, if it is not directly installable from the distribution's repo(s). Just download the source code compile and install. This will install not just the "petite" runtime version but also the full compiler. You can compile and install the software with:
./configure
sudo make install
Full build and install instructions are available here.
Pre-requisites for building are:
GNU Make
GCC
Header files and libraries for ncurses
Header files and libraries for X windows
On Ubuntu, install the libncurses5-dev package to get libncurses.so. (You can discover this by visiting http://packages.debian.org/file:libncurses.so (sadly, this doesn't seem to work for http://packages.ubuntu.com/file:libncurses.so).)
You may find other linkage errors if Chez requires other libraries to have development packages installed too. Use the same technique as above.
Go directly building from their Github.
ChezScheme
And then just do
./configure
sudo make install
Prerequisites according to Building are:
GNU Make
gcc
Header files and libraries for ncurses
Header files and libraries for X windows
And yes in case On Ubuntu, install the libncurses5-dev as Chris stated. Did just that and have no errors shown in clean install.
Chez Scheme has been open sourced since this question was asked. Since Bionic (18.04LTS) the full chezscheme is available as a repository.
First do
sudo apt update
then install the package:
sudo apt install chezscheme
This provides both the petite interpreter and the full scheme compiler.
There is also a PPA for trusty and xenial here:
https://launchpad.net/~jonathonf/+archive/ubuntu/lisp?field.series_filter=
Download the RPM package instead and use alien from terminal to produce a deb file:
fakeroot alien PetiteChezScheme-8.4-1.x86_64.rpm
You may need to install fakeroot, alien for this to work:
apt-get install fakeroot alien
Then you'll have a deb file. If you are on a desktop you can just double click the file and it will open Software Center and you can click install and it will fix your dependency problems.

"configure: error: mcs Not found" during configure mono-addins on CentOS

I'm trying to install MonoDevelop 4 on CentOS 7 as described in this post: Install Mono and Monodevelop on CentOS 5.x/6.x, but when I'm trying to execute
./autogen.sh --prefix=/usr in mono-addins src directory, I get the error:
Running autoconf ...
Running ./configure --prefix=/usr ...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '0' is supported by ustar format... yes
checking whether GID '0' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.16... yes
checking for gmcs... no
configure: error: mcs Not found
mcs compiler was installed successfully, and if I execute
mcs --version
it returns
Mono C# compiler version 4.0.3.0
In other examples of autoconf output I see that checking for gmcs returns something like /usr/local/bin/gmcs or /usr/bin/gmcs, but on my system after compiling mono I don't have gmcs at all.
What is the difference between mcs and gmcs, and where can I find second?
mono-gmcs was an interim compiler before moving to mcs. I ran into this problem ("configure: error: No gmcs C# compiler found") while trying to install Bless (a mono/C# hex editor) on Centos 7. Not sure if this is the answer on other distros, but I added a symbolic link with ln -s mcs gmcs, so that the script that is looking for gmcs will find it, but it will redirect to mcs, the current mono C# compiler. Both should be in /usr/local. For Bless, there was also a dependency on "scrollkeeper", which I took care of with a yum install scrollkeeper.
I uses Ubuntu 20.04.3 LTS; and it also does not have mcs. I actaully needed it for bless. so I install mcs using
sudo apt install mono-mcs
so now
which mcs
now returns /usr/bin/mcs
For bless to work you also need to install cmake; using
sudo apt inztall cmake gtk-sharp2 nunit-console xsltproc
and follow the instruction in the readme file to install bless; i.e.
git clone https://github.com/afrantzis/bless
meson setup build
ninja -C build
sudo ninja -C build install

Resources