I would like to run Memgraph on Amazon Linux. How can I install it? Are there prebuild packages specific for Amazon Linux?
For Amazon Linux you would probably need a working build for Fedora. Currently, Memgraph did not release a build for Fedora, but plans to do so soon. If possible, try installing Memgraph with Docker on Amazon Linux.
You can download the Memgraph package for Linux on the Memgraph download page. At the moment Memgraph offers installation packets for the following Linux distributions:
CentOS 7
CentOS 9
Debian 10
Debian 11
Debian 11 (ARM64/AArch64)
Ubuntu 18.04
Ubuntu 20.04
Ubuntu 22.04
On top of that, you can install Memgraph as Docker on Linux.
Also, if you want, you can deploy Memgraph using Docker or Kubernetes.
Amazon Linux is not listed and supported at the moment. Since it supports RPM packages, packages for CentOS could work but I didn't test it.
I am trying to run Oracle db in docker on M1 Mac. I have tried images from both store/oracle/database-enterprise:12.2.0.1-slim and container-registry.oracle.com/database/enterprise:12.2.0.1-slim but getting the same error.
docker run -d -it --name oracle -v $(pwd)/db/oradata:/ORCL store/oracle/database-enterprise:12.2.0.1-slim
I also tried non-slim version and by providing the --platform linux/amd64 to the docker command. Result is same.
Here's the result of docker logs -f oracle
Setup Oracle Database
Oracle Database 12.2.0.1 Setup
Sat Jul 31 18:44:14 UTC 2021
Check parameters ......
log file is : /home/oracle/setup/log/paramChk.log
paramChk.sh is done at 1 sec
untar DB bits ......
log file is : /home/oracle/setup/log/untarDB.log
untarDB.sh is done at 29 sec
config DB ......
log file is : /home/oracle/setup/log/configDB.log
Sat Jul 31 18:44:42 UTC 2021
Start Docker DB configuration
Call configDBora.sh to configure database
Sat Jul 31 18:44:42 UTC 2021
Configure DB as oracle user
Setup Database directories ...
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 31 18:44:43 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][#<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][#<connect_identifier>]
Enter user-name: Enter password:
ERROR:
ORA-12547: TNS:lost contact
SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
update password
Enter password for SYS:
create pdb : ORCLPDB1
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 31 18:44:43 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][#<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][#<connect_identifier>]
Enter user-name: SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][#<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][#<connect_identifier>]
SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
Reset Database parameters
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 31 18:44:43 2021
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12547: TNS:lost contact
Enter user-name: SP2-0306: Invalid option.
Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM|SYSBACKUP|SYSDG|SYSKM|SYSRAC}] [edition=value]]
where <logon> ::= <username>[/<password>][#<connect_identifier>]
<proxy> ::= <proxyuser>[<username>][/<password>][#<connect_identifier>]
Enter user-name: Enter password:
ERROR:
ORA-12547: TNS:lost contact
SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 31-JUL-2021 18:44:44
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Starting /u01/app/oracle/product/12.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORCLCDB/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/989db909d8df/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 31-JUL-2021 18:44:44
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORCLCDB/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/989db909d8df/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
DONE!
Remove password info
Docker DB configuration is complete !
ERROR : config DB failed, please check log /home/oracle/setup/log/configDB.log for details!
OS process OFSD (ospid 188) idle for 30 seconds, exiting
2017-08-09T10:36:20.752530+00:00
ARCH: Archival disabled due to shutdown: 1090
Shutting down archive processes
Archiving is disabled
JIT: pid 563 requesting stop
2017-08-09T10:36:20.815635+00:00
Stopping background process VKTM
2017-08-09T10:36:26.581058+00:00
Instance shutdown complete (OS id: 563)
/usr/bin/tail: inotify cannot be used, reverting to polling: Function not implemented
Is it the issue with M1 or I my configuration
Oracle Database on M1 Mac
This is a doozy.. Oracle Database isn't supported on MacOS, however, with Docker virtualizing linux, it can be. Unfortunately, even though Docker supports M1 Mac ARM virtualization, Oracle Database relies heavily on some low level kernel calls that Docker and Rosetta 2 can't handle. This leads us to the only possible solution to run locally: Using full emulation (a virtual machine).
Install Lima with HomeBrew. Lima is a sort of unofficial "macOS subsystem for Linux" with support for running VMs with different architecture (like running an x86 OS on top of ARM MacOS):
brew install lima
Create a new Impish Ubuntu (default) Virtual Machine:
limactl start
Select Open an editor to override the configuration.
Using the default editor (vi) modify the arch field to the following (i to enter insert mode, make the change, ESC to enter command mode, :wq to exit and save).
arch: "x86_64"
Run the newly created default Lima VM, and change directories to the new VM's home directory. (All commands past this should be run in the newly started shell unless specified otherwise).
lima
cd ~
Install Docker for Ubuntu in the Lima VM.
Add your user to the docker group, and activate the changes to be able to run docker commands without root access:
sudo usermod -aG docker $USER
newgrp docker
Run Image from docker hub
docker login
docker run -d -p 1521:1521 --name oracle store/oracle/database-enterprise:12.2.0.1
Connect with default values
username/password#SID: sys/Oradoc_db1#ORCLCDB
If someone is still struggling with this one, I found a better and straight forward solution:
Install homebrew
https://brew.sh/
Install Colima
brew install colima
Install docker
brew install docker
Start Colima by setting up x86_64 architecture
colima start --memory 8 --arch x86_64
Test docker
docker run hello-world
Note: You should clean everything related to docker from your system along with docker desktop, with this you do not need docker desktop
After investing some time on it, here is what I tested and worked and didn't work for me.
Lima - For me it didn't work.
From what I got, Lima is a qemu wrapper. So in theory it should work, but I had same problems as the ones described on this open issue:
https://github.com/lima-vm/lima/issues/713#issuecomment-1064151675
Multipass - Didn't work.
Multipass is an Ubuntu's vm. The problem is that it does not support cross architecture for now. You will only be able to create vms for the same architecture (aarch64) and oracle won't run on it.
Qemu directly.
This is the only option that worked for me, if you are interested on the steps here it is:
brew install qemu utm
obs.: utm is a graphical tool to run qemu without having to know its complicated commands.
Download an amd64 linux iso of your preference.
In my case it was an ubuntu server (just make sure it is for amd64)
On utm create a new emulator and select the image you downloaded
I've selected for the machine architecture the first one available (label with 2009), there is one tagged with a (default) but it is too slow - avoid this one.
2 cores for cpu, 4G mem was enough for me.
For the shared folder, it is not a very straight forward the way to access it, so in the end scp was enough for file transfer between host/guest machines.
Once you have passed the installation process and have logged in, install docker:
https://docs.docker.com/engine/install/ubuntu/
extra: sudo apt-get install docker-compose
Load your oracle docker image and run it.
If you have any volume configured you need to remember to give access permission to it (chmod)
Enjoy :)
I used Colima on my m2 Macbook air and it works perfectly
brew install colima
brew install docker
colima start --memory 4 --arch x86_64
docker run -e ORACLE_PASSWORD=pass -p 1521:1521 -d gvenzl/oracle-xe
There are two issues here:
Oracle Database is not supported on ARM processors, only Intel. See here: https://github.com/oracle/docker-images/issues/1814
Oracle Database Docker images are only supported with Oracle Linux 7 or Red Hat Enterprise Linux 7 as the host OS. See here: https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance
Oracle Database ... is supported for Oracle Linux 7 and Red Hat Enterprise Linux (RHEL) 7. For more details please see My Oracle Support note: Oracle Support for Database Running on Docker (Doc ID 2216342.1)
The referenced My Oracle Support Doc ID goes on to say that the database binaries in their Docker image are built specifically for Oracle Linux hosts, and will also work on Red Hat. That's it.
Because Docker provides process level virtualization it still pulls kernel and other OS libraries from the underlying host OS. A Docker image built for Oracle Linux needs an Oracle Linux host; it doesn't bring the Oracle Linux OS with it. Only Oracle Linux or Red Hat Linux are supported for any Oracle database Linux installation, with or without Docker. Ubuntu, Mac OS, Debian, or any other *NIX flavor will not provide predictable reliable results, even if it is hacked into working or the processes appear to work normally.
Here is worked for me:
You cannot change the CDB name
It is hardwired to use a domain name
The password must mixed-case 8 characters or more with a special character
docker run -d --name 12c \
--privileged \
--memory=4096M \
-p 1512:1521/tcp -p 5512:5500/tcp \
-e DB_SID=ORCLCDB \
-e DB_PDB=ORCLPDB \
-e DB_DOMAIN=localdomain \
-e DB_PASSWD=Password#2 \
-v ${HOME}/containers/storage/oracle/EE12201/u02/app/oracle:/ORCL/u02/app/oracle \
-v ${HOME}/containers/storage/oracle/EE12201/u03/app/oracle:/ORCL/u03/app/oracle \
-v ${HOME}/containers/storage/oracle/EE12201/u04/app/oracle:/ORCL/u04/app/oracle \
container-registry.oracle.com/database/enterprise:12.2.0.1
How to upgrade OpenSSH from 6.6.1p1 to version 7.2p2 on Amazon Linux?
The upgrade is required to fix "OpenSSH Xauth Command Injection" vulnerability.
Pasting from Scan results from https://pci.qualys.com:
Result: SSH-2.0-OpenSSH_6.6.1 detected on port 22 over TCP.
Proposed Solution: "Users are advised to upgrade to the latest version of the software available. Refer to OpenSSH 7.2p2 Release Notes for further information."
1)Linux version
ec2-user#demotair.arabidopsis.org$ uname -a
Linux ip-172-31-24-127 4.9.38-16.33.amzn1.x86_64 #1 SMP Thu Jul 20 01:31:29 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2) Current ssh version on it:
ec2-user#demotair.arabidopsis.org$ ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1k-fips 8 Jan 2015
ec2-user#demotair.arabidopsis.org$ yum list | grep openssh
openssh.x86_64 6.6.1p1-33.66.amzn1 #amzn-updates
openssh-clients.x86_64 6.6.1p1-33.66.amzn1 #amzn-updates
openssh-server.x86_64 6.6.1p1-33.66.amzn1 #amzn-updates
openssh-keycat.x86_64 6.6.1p1-33.66.amzn1 amzn-main
openssh-ldap.x86_64 6.6.1p1-33.66.amzn1 amzn-main
3) Attempt to update results in "No packages marked for update"
ec2-user#demotair.arabidopsis.org$ sudo yum update openssh
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00:00
amzn-updates | 2.3 kB 00:00:00
No packages marked for update
PS Below links did not help me to upgrade:
https://forums.aws.amazon.com/thread.jspa?messageID=679779#679779 "OpenSSH 7 is not available via yum update"
https://serverfault.com/questions/749199/updating-openssh-on-amazon-linux-amazon-repository-out-of-date
quote: "Until Amazon updates its package, you can stop the bug from affecting you by adding the line UseRoaming no to /etc/ssh/ssh_config on any machine from which you will be using the ssh client."
There's no need. As was stated in the question to which you have linked, Amazon backports security fixes, and your scanner is giving a false positive by testing for the version number rather than actually testing for the presence of the vulnerability. CVE-2016-3115 was fixed in Amazon openssh version 6.6.1p1-23.60 on 16 March 2016.
Why $(uname -a) returns the same Linux kernel than the host machine inside a docker container?
uname -a
#=> Linux leo 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
docker run -ti --rm ubuntu:vivid-20150611 uname -a
#=> Linux 147c3aff216b 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Even though my host machine is Ubuntu 14.04 (trusty) while the container is Ubuntu 15.04 (vivid) and should have kernel 3.19
Docker uses the host operating system kernel, there is no custom or additional kernel inside the container. All containers running on the machine are sharing this "host" kernel.
See for more information this question on SuperUser.
cat /etc/os-release, or
cat /etc/issue for CentOS
See https://serverfault.com/a/805390/161568.
Basically any changes I make while SSHed into the VM are lost at restart of the VM. I am assuming the problem is associated with the error when I stop the VM.
C:\Users\Tom>boot2docker stop
error in run: Failed to stop machine "boot2docker-vm": exit status 1
But, I may just be doing something dumb.
The sequence I followed is below (docker logo elided), you can see it losing the sample directory across the restart.
C:\Users\Tom>boot2docker up
Waiting for VM and Docker daemon to start.......................ooo
Started.
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\ca.pem
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\cert.pem
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\key.pem
Docker client does not run on Windows for now. Please use
"boot2docker" ssh
to SSH into the VM instead.
C:\Users\Tom>boot2docker ssh
Boot2Docker version 1.5.0, build master : a66bce5 - Tue Feb 10 23:31:27 UTC 2015
Docker version 1.5.0, build a8a31ef
docker#boot2docker:~$ ls
boot2docker, please format-me
docker#boot2docker:~$ mkdir testdir
docker#boot2docker:~$ ls
boot2docker, please format-me testdir/
docker#boot2docker:~$ exit
C:\Users\Tom>boot2docker stop
error in run: Failed to stop machine "boot2docker-vm": exit status 1
C:\Users\Tom>boot2docker status
poweroff
C:\Users\Tom>boot2docker start
Waiting for VM and Docker daemon to start...
....................ooo
Started.
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\ca.pem
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\cert.pem
Writing C:\Users\Tom\.boot2docker\certs\boot2docker-vm\key.pem
Docker client does not run on Windows for now. Please use
"boot2docker" ssh
to SSH into the VM instead.
C:\Users\Tom>boot2docker ssh
Boot2Docker version 1.5.0, build master : a66bce5 - Tue Feb 10 23:31:27 UTC 2015
Docker version 1.5.0, build a8a31ef
docker#boot2docker:~$ ls
boot2docker, please format-me
docker#boot2docker:~$
Running
Windows: 8.1
VirtualBox: 4.3.12 r93733
Boot2Docker version 1.5.0, build master : a66bce5 - Tue Feb 10 23:31:27 UTC 2015
Docker version 1.5.0, build a8a31ef
That is what I explained in "Windows Boot2Docker behind corporate proxy": there is no persistence in the Tiny Core used by boot2docker as a Linux VM.
You need to make sure the VirtualBox has the Oracle_VM_VirtualBox_Extension_Pack downloaded and added in the Virtual Box / File / Settings / Extension / add the Oracle_VM_VirtualBox_Extension_Pack-4.x.yy-zzzzz.vbox-extpack file).
As documented in boot2docker, you will have access (from your Tiny Core ssh session) to /c/Users/<yourLogin> (ie the %USERPROFILE% is shared by Virtual Box)
What I do in my b2d.bat start script is copy the files I want to be restored (mainly docker profile or .ashrc, for http_proxy settings and favorite aliases), and keep all my other modifications in /c/Users/<yourLogin>.