Monday, June 29, 2020

Adding PostgreSQL on Oracle SQL Developer

  1. Download the JDBC driver from  https://jdbc.postgresql.org/download.html#current.
  2. Wget https://jdbc.postgresql.org/download/postgresql-42.2.14.jar
  3. Copy the jar file into C:\Program Files\sqldeveloper\jdbc\lib 
  4. Launch Oracle SQL Developer
  5. Click Tools -> Preferences > Database > Third Party JDBC Driver > "Add Entry..." >  Go to "C:\Program Files\sqldeveloper\jdbc\lib" and select "postgresql-42.2.14.jar " > OK.
  6. That's it.

“Be Still and Know That I am God” Psalms 46:10

“Be Still and Know That I am God” - What is the Meaning of Psalms 46:10?

“Be still and know that I am God”, the first half of Psalms 46:10, is a popular verse used to encourage believers to be still and silent before the Lord. While this interpretation promotes a healthy rest in the presence of the Lord, it should further be understood as a command to wake up, stop striving, and acknowledge God for who He is, allowing Him to do what only He can do. 

The Context of Psalms 46: Be Still and Know

Psalms 46 opens with instructions for how this Psalm (or song) was to be performed in worship. We see before the Psalm begins that it is written to the “sons of Korah”. As Charles Spurgeon writes in his Treasury of David, “trifles may be left to commoner songsters, but the most skillful musician in Israel must be charged with the due performance of this song, with the most harmonious voices and choicest music.” Therefore, these instructions suggest that this particular Psalm carried enormous meaning and held a place of extreme significance in the time it was written in that should only be performed by chosen musicians and skilled singers.
Psalms 46 then continues in the third person as the songwriter describes attributes of the Lord. It’s apparent from the language described in the early verses of Psalms 46 that the writer is probably living through a time of war, conflict, or at the very least, personal strife. It is also possible that Israel itself was facing war or international conflict when this was written and that the songwriter wrote to encourage the children of Israel to stand in the strength of the Lord.
Knowing this provides incredible insight into the interpretation of Psalms 46:10. In every situation described in this chapter, the writer emphasizes that the Lord is a “refuge and strength” and their “stronghold”. More importantly, “The Lord of hosts is with us”. This is actually repeated twice in this Bible chapter.
The entirety of Psalms 46 is written in third person to remind the reader (or listener) that God is their strength and at work in the midst of their struggle. When we reach verse 10, however, something happens. The point of view shifts from third person to second person. Instead of writing about the Lord, here the Lord Himself addresses the reader/listener directly.
“Be still and know that I am God; I will be exalted among the nations, I will be exalted in the earth” (Psalms 46:10).
Like all great poetry, when form or pattern is broken, it forces the reader to pay attention. Something important is about to be communicated. The change in point of view cues us to pay attention.

"Be Still and Know That I am God" - Bible Reading


Who Is God Telling To Be Still?

There are several interpretations and theories regarding the subject of God’s address in Psalms 46:10. Both are meaningful, and it is quite possible that God addresses both subjects.
One interpretation suggests that God is directly speaking to Israel’s enemies. It’s important to note that this is unlikely since the rest of the Psalm is focused on encouraging and strengthening the children of Israel. To shift into the second person is one thing, but to conclude that God is shift to an entirely different audience for only verse might be a bit of a stretch. An indirect audience? Absolutely. But the Psalms are primarily written for the people of God, and this seems to be the case here as well.
If we accept, however, that the Lord does address Israel’s enemies, He would essentially be telling them to “cease striving”, or in this case, “stop fighting” His chosen people. In communicating to Israel’s enemies, He would be also making His presence known across the earth as true to prophesy, one day, every tongue will confess that He is Lord (Romans 14:11).
Another way to read this verse would be to stop fighting and see that I have chosen Israel as my people. I will stand by them and defend them against all enemies, including you. So back off! I am the Lord. I am powerful. I am in charge. And I will be exalted.
The second interpretation, which is probably more accurate, sees God address the children of Israel, His chosen people, directly.

The Meaning of Psalms 46:10

As God addresses Israel, He is not just telling them to “be still” or “rest”. If this is written during a time of war, which it most likely is, God is commanding them to “stop fighting” and open their eyes to who He is. In some translations, it is phrased “cease striving.”
It’s easy to be fearful when things aren’t going well or when we are faced with challenges and conflict in our life. In the midst of their struggle, however, God tells His people to wake up and recognize who’s on their side.
In that light, the tone of this verse can be read: stop striving, stop fighting, and stop trying to do things on your own. Stop stressing about the battle ahead and trust me. Wake up! I am the Lord. I am your refuge and your strength. You have nothing to fear or worry about when I am with you. I will fight your battles and deal with your enemies. So get out of my way. Step back, open your eyes, and acknowledge who I am and what I can do. Let me be God. Don’t try and do my job for me. Be patient, be still, and let me go to work.
This verse would have been an encouragement to the children of Israel in a time of war and can be just as comforting to believers today in their struggle and strife.
“Be still and know that I am God; I will be exalted among the nations, I will be exalted in the earth.”
In the midst of conflict and life turmoil, sometimes we just need to open our eyes, step back, stop what we’re doing, and acknowledge who God is and what He can do. Doing so provides comfort in the chaos and peace in the midst of struggle.

Joel Ryan is an LA-based children’s and young adult author who teaches writing and communications at Life Pacific University. As a former youth pastor, he has a heart for children and young adults and is passionate about engaging youth through writing and storytelling. His blog, Perspectives Off the Page, discusses the creative and spiritual life through story and art.

Friday, June 19, 2020

How to add the GIMP Heal plug-in

1. Download the third-party plug-in.
1
2
malex@WINDOWS-1J3BS7A MINGW64 ~
$ wget http://download1370.mediafire.com/sepzvyho6ueg/gwc928wmwti30g3/resynth_win_32_64.zip
2. Unzip 3. Copy these files into C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
06/19/2020  10:11 AM             6,595 plugin-heal-selection.py
06/19/2020  10:11 AM             3,153 plugin-heal-transparency.py
06/19/2020  10:11 AM            17,194 plugin-map-style.py
06/19/2020  10:11 AM             7,684 plugin-render-texture.py
06/19/2020  10:11 AM             3,303 plugin-resynth-enlarge.py
06/19/2020  10:11 AM             3,609 plugin-resynth-fill-pattern.py
06/19/2020  10:11 AM             3,262 plugin-resynth-sharpen.py
06/19/2020  10:11 AM             6,011 plugin-uncrop.py
06/19/2020  10:11 AM            49,664 resynthesizer-gui.exe
06/19/2020  10:11 AM            54,784 resynthesizer.exe
4. Reload GIMP by closing and reopening again.
5. Use this youtube video for the tutorial https://www.youtube.com/watch?v=AfM9uMIkZoU https://cdn.pixabay.com/photo/2017/08/23/11/30/background-2672565_960_720.jpg

Tuesday, June 16, 2020

How to apply syntax highlighter to code snippets

Go to http://hilite.me/ or https://tohtml.com/ or https://techbrij.com/code-syntax-highlighting-for-a-free-hosted-blogger-blog and cut and paste your code.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
public class JavaExample {
    public static void main(String[] args) {
     //Here number is the base and p is the exponent
        int number = 2, p = 5;
        long result = 1;
        
        //Copying the exponent value to the loop counter
        int i = p;
        for (;i != 0; --i)
        {
            result *= number;
        }
        
        //Displaying the output
        System.out.println(number+"^"+p+" = "+result);
    }
}

Installation of PostgreSQL on Fedora

Installation of PostgreSQL on Fedora

1. Pre-installation commands

1
2
3
[root@localhost malex]# sudo dnf install -y vi
[root@localhost malex]# sudo dnf update -y
[root@localhost malex]# sudo reboot


2. Install the reporpms for PostgreSQL

[root@localhost malex]# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/F-28-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Last metadata expiration check: 0:05:26 ago on Thu 13 Jun 2019 12:05:07 AM EDT.
pgdg-fedora-repo-latest.noarch.rpm               11 kB/s | 9.6 kB     00:00
Dependencies resolved.
================================================================================
 Package                 Arch          Version        Repository           Size
================================================================================
Installing:
 pgdg-fedora-repo        noarch        42.0-4         @commandline        9.6 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 9.6 k
Installed size: 9.1 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : pgdg-fedora-repo-42.0-4.noarch                         1/1
  Verifying        : pgdg-fedora-repo-42.0-4.noarch                         1/1

Installed:
  pgdg-fedora-repo.noarch 42.0-4

Complete!

3. Install PostgreSQL client and server

[root@localhost malex]# sudo dnf install postgresql11-server postgresql11
PostgreSQL 11 28 - x86_64                        48 kB/s | 233 kB     00:04
PostgreSQL 10 28 - x86_64                        71 kB/s | 283 kB     00:03
PostgreSQL 9.6 28 - x86_64                       12 kB/s | 276 kB     00:22
PostgreSQL 9.5 28 - x86_64                      102 kB/s | 268 kB     00:02
PostgreSQL 9.4 28 - x86_64                       47 kB/s | 220 kB     00:04
Last metadata expiration check: 0:00:00 ago on Thu 13 Jun 2019 12:13:49 AM EDT.
Dependencies resolved.
================================================================================
 Package                   Arch         Version              Repository    Size
================================================================================
Installing:
 postgresql11-server       x86_64       11.2-2PGDG.f28       pgdg11       4.9 M
Installing dependencies:
 postgresql11              x86_64       11.2-2PGDG.f28       pgdg11       1.7 M
 postgresql11-libs         x86_64       11.2-2PGDG.f28       pgdg11       378 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 6.9 M
Installed size: 29 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): postgresql11-libs-11.2-2PGDG.f28.x86_64.  13 kB/s | 378 kB     00:27
(2/3): postgresql11-11.2-2PGDG.f28.x86_64.rpm    34 kB/s | 1.7 MB     00:50
(3/3): postgresql11-server-11.2-2PGDG.f28.x86_6  77 kB/s | 4.9 MB     01:05
--------------------------------------------------------------------------------
Total                                           109 kB/s | 6.9 MB     01:05
warning: /var/cache/dnf/pgdg11-e93d07c77da33496/packages/postgresql11-server-11.2-2PGDG.f28.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Importing GPG key 0x442DF0F8:
 Userid     : "PostgreSQL RPM Building Project <pgsqlrpms-hackers@pgfoundry.org>"
 Fingerprint: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : postgresql11-libs-11.2-2PGDG.f28.x86_64                1/3
  Running scriptlet: postgresql11-libs-11.2-2PGDG.f28.x86_64                1/3
  Installing       : postgresql11-11.2-2PGDG.f28.x86_64                     2/3
  Running scriptlet: postgresql11-11.2-2PGDG.f28.x86_64                     2/3
  Running scriptlet: postgresql11-server-11.2-2PGDG.f28.x86_64              3/3
  Installing       : postgresql11-server-11.2-2PGDG.f28.x86_64              3/3
  Running scriptlet: postgresql11-server-11.2-2PGDG.f28.x86_64              3/3
  Verifying        : postgresql11-server-11.2-2PGDG.f28.x86_64              1/3
  Verifying        : postgresql11-11.2-2PGDG.f28.x86_64                     2/3
  Verifying        : postgresql11-libs-11.2-2PGDG.f28.x86_64                3/3

Installed:
  postgresql11-server.x86_64 11.2-2PGDG.f28  postgresql11.x86_64 11.2-2PGDG.f28
  postgresql11-libs.x86_64 11.2-2PGDG.f28

Complete!
[root@localhost malex]#


4. Verify that PostgreSQL has been installed

[root@localhost malex]# rpm -qi postgresql11-server
Name        : postgresql11-server
Version     : 11.2
Release     : 2PGDG.f28
Architecture: x86_64
Install Date: Thu 13 Jun 2019 12:15:46 AM EDT
Group       : Applications/Databases
Size        : 19893074
License     : PostgreSQL
Signature   : DSA/SHA1, Sat 23 Feb 2019 07:44:19 PM EST, Key ID 1f16d2e1442df0f8
Source RPM  : postgresql11-11.2-2PGDG.f28.src.rpm
Build Date  : Sat 23 Feb 2019 07:43:49 PM EST
Build Host  : koji-fedora28-x86-64-pgbuild
Relocations : (not relocatable)
Vendor      : PostgreSQL Global Development Group
URL         : https://www.postgresql.org/
Summary     : The programs needed to create and run a PostgreSQL server
Description :
PostgreSQL is an advanced Object-Relational database management system (DBMS).
The postgresql11-server package contains the programs needed to create
and run a PostgreSQL server, which will in turn allow you to create
and maintain PostgreSQL databases.

5. Initialize PostgreSQL database

[root@localhost malex]# sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK

6. Start and enable the PostgreSQL service

[root@localhost malex]# sudo systemctl start postgresql-11
[root@localhost malex]# sudo systemctl enable postgresql-11
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-11.service → /usr/lib/systemd/system/postgresql-11.service.

7. Verify that the PostgreSQL service is running

[root@localhost malex]# sudo systemctl status postgresql-11
● postgresql-11.service - PostgreSQL 11 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vend>
   Active: active (running) since Thu 2019-06-13 00:19:50 EDT; 23s ago
     Docs: https://www.postgresql.org/docs/11/static/
 Main PID: 1911 (postmaster)
    Tasks: 8 (limit: 4915)
   Memory: 17.4M
   CGroup: /system.slice/postgresql-11.service
           ├─1911 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
           ├─1912 postgres: logger
           ├─1914 postgres: checkpointer
           ├─1915 postgres: background writer
           ├─1916 postgres: walwriter
           ├─1917 postgres: autovacuum launcher
           ├─1918 postgres: stats collector
           └─1919 postgres: logical replication launcher

Jun 13 00:19:50 localhost.localdomain systemd[1]: Starting PostgreSQL 11 databa>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.491>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.491>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.532>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.548>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.577>
Jun 13 00:19:50 localhost.localdomain postmaster[1911]: 2019-06-13 00:19:50.577>
Jun 13 00:19:50 localhost.localdomain systemd[1]: Started PostgreSQL 11 databas>

8. Configure the firewall setting

[root@localhost malex]# sudo firewall-cmd --add-service=postgresql --permanent
success
[root@localhost malex]# sudo firewall-cmd --reload
success

9. Connect to the PostgreSQL database using the postgres account on psql

[malex@thermalite ~]$ sudo su - postgres

postgres@thermalite$ psql
psql (11.2)
Type "help" for help.

postgres=#

10. Locate the configuration files

postgres=# show hba_file ;
              hba_file
------------------------------------
 /var/lib/pgsql/11/data/pg_hba.conf
(1 row)

postgres=# show ident_file ;
              ident_file
--------------------------------------
 /var/lib/pgsql/11/data/pg_ident.conf
(1 row)

postgres=# show config_file ;
              config_file
----------------------------------------
 /var/lib/pgsql/11/data/postgresql.conf
(1 row)

postgres=#

postgres=#\q

postgres@thermalite$ exit

11. Update PostgreSQL configuration files

[malex@thermalite ~]$ sudo su - 
[root@localhost malex]#

11.1. Update /var/lib/pgsql/11/data/postgresql.conf
[root@localhost malex]# vi /var/lib/pgsql/11/data/postgresql.conf

Update the following:
=====================
1. Change 'localhost' to '*'
#listen_addresses = 'localhost'         # what IP address(es) to listen on (old setting);
listen_addresses = '*' # what IP address(es) to listen on (new setting);

2. Uncomment the port 
#port = 5432                             # (change requires restart)
port = 5432                             # (change requires restart)

11.2. Update /var/lib/pgsql/11/data/pg_hba.conf
[root@localhost malex]#  vi /var/lib/pgsql/11/data/pg_hba.conf

Update the following:
=====================

1. Change 'peer' to 'trust'
# "local" is for Unix domain socket connections only
#local   all             all                                     peer
local   all             all                                     trust

2. Change 'peer' to 'trust'
# IPv4 local connections:
#host    all             all             127.0.0.1/32            ident
host    all             all             127.0.0.1/32            trust

# IPv6 local connections:
host    all             all             ::1/128                 ident

# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

3. Add this lines
# Accept from anywhere
host all all 0.0.0.0/0 md5
host all all ::/0 md5

# Accept from trusted subnet
host all all 192.168.18.0/24 md5

# Allow users from 192.168.x.x hosts to connect to any database, if
# they pass the ident check.  If, for example, ident says the user is
# "malex" and he requests to connect as PostgreSQL user "dbuser", the
# connection is allowed if there is an entry in pg_ident.conf for map
# "thermalite" that says "malex" is allowed to connect as "dbuser".
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.0.0/16          ident map=thermalite

11.3. Update /var/lib/pgsql/11/data/pg_ident.conf
[root@localhost malex]#  vi /var/lib/pgsql/11/data/pg_ident.conf

# Put your actual configuration here
# ----------------------------------
# MAPNAME       SYSTEM-USERNAME         PG-USERNAME

thermalite         malex                  dbuser

12. Restart the PostgreSQL service

[root@localhost malex]# sudo systemctl restart postgresql-11

[root@localhost malex]# sudo systemctl status postgresql-11
● postgresql-11.service - PostgreSQL 11 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-08-03 12:42:04 EDT; 16s ago
     Docs: https://www.postgresql.org/docs/11/static/
  Process: 2417 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 2422 (postmaster)
    Tasks: 8 (limit: 4915)
   Memory: 17.6M
   CGroup: /system.slice/postgresql-11.service
           ├─2422 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
           ├─2423 postgres: logger
           ├─2425 postgres: checkpointer
           ├─2426 postgres: background writer
           ├─2427 postgres: walwriter
           ├─2428 postgres: autovacuum launcher
           ├─2429 postgres: stats collector
           └─2430 postgres: logical replication launcher

Aug 03 12:42:03 thermalite systemd[1]: Starting PostgreSQL 11 database server...
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.915 EDT [2422] LOG:  listening on IPv4 address "0.0.0.>
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.915 EDT [2422] LOG:  listening on IPv6 address "::", p>
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.931 EDT [2422] LOG:  listening on Unix socket "/var/ru>
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.947 EDT [2422] LOG:  listening on Unix socket "/tmp/.s>
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.974 EDT [2422] LOG:  redirecting log output to logging>
Aug 03 12:42:03 thermalite postmaster[2422]: 2019-08-03 12:42:03.974 EDT [2422] HINT:  Future log output will appear in>
Aug 03 12:42:04 thermalite systemd[1]: Started PostgreSQL 11 database server.

[malex@thermalite ~]$

[malex@thermalite ~]$ sudo -u postgres psql

psql (11.2)
Type "help" for help.

postgres=# 

postgres=# create database mydatabase;

postgres=# create user dbuser with encrypted password 'dbpassword';

postgres=# grant all privileges on database mydatabase to dbuser;
GRANT

postgres=# grant all privileges on database mydatabase to dbuser;
ALTER USER dbuser WITH PASSWORD 'dbpassword';

postgres@thermalite$ psql
psql (11.2)
Type "help" for help.

postgres=# quit

postgres@thermalite$ psql mydatabase dbuser;
psql (11.2)
Type "help" for help.

mydatabase=>

mydatabase=> \conninfo
You are connected to database "mydatabase" as user "dbuser" via socket in "/var/run/postgresql" at port "5432".
mydatabase=> \dt
             List of relations
 Schema |      Name      | Type  |  Owner
--------+----------------+-------+----------
 public | contact        | table | dbuser
 public | customer       | table | dbuser
 public | hc_device_user | table | dbuser
 public | quote          | table | dbuser
 public | stock          | table | dbuser
(5 rows)

mydatabase=> SELECT
mydatabase->    *
mydatabase-> FROM
mydatabase->    pg_catalog.pg_tables
mydatabase-> WHERE
mydatabase->    schemaname != 'pg_catalog'
mydatabase-> AND schemaname != 'information_schema';
 schemaname |   tablename    | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity
------------+----------------+------------+------------+------------+----------+-------------+-------------
 public     | hc_device_user | dbuser   |            | t          | f        | f           | f
 public     | quote          | dbuser   |            | t          | f        | f           | f
 public     | contact        | dbuser   |            | t          | f        | f           | f
 public     | stock          | dbuser   |            | t          | f        | f           | f
 public     | customer       | dbuser   |            | t          | f        | f           | f
(5 rows)

mydatabase=> \q


[root@thermalite ~]# psql -d mydatabase -U dbuser
psql (11.2)
Type "help" for help.

mydatabase=>
mydatabase=> \conninfo
You are connected to database "mydatabase" as user "dbuser" via socket in "/var/run/postgresql" at port "5432".
mydatabase=>

mydatabase=> \q
[root@thermalite ~]# psql -h 192.168.1.100 -d mydatabase -U dbuser
Password for user dbuser:
psql (11.2)
Type "help" for help.

mydatabase=>



Installing Maven

Installing Maven

[root@thermalite ~]# cd /opt

[root@thermalite opt]# wget http://apache.spinellicreations.com/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
--2020-05-27 15:54:30--  http://apache.spinellicreations.com/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Resolving apache.spinellicreations.com (apache.spinellicreations.com)... 98.118.131.16
Connecting to apache.spinellicreations.com (apache.spinellicreations.com)|98.118.131.16|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9506321 (9.1M) [application/x-gzip]
Saving to: ‘apache-maven-3.6.3-bin.tar.gz’

apache-maven-3.6.3-bin.tar 100%[========================================>]   9.07M  3.84MB/s    in 2.4s

2020-05-27 15:54:32 (3.84 MB/s) - ‘apache-maven-3.6.3-bin.tar.gz’ saved [9506321/9506321]

[root@thermalite opt]# tar xzvf apache-maven-3.6.3-bin.tar.gz
apache-maven-3.6.3/README.txt
apache-maven-3.6.3/LICENSE
apache-maven-3.6.3/NOTICE
apache-maven-3.6.3/lib/
apache-maven-3.6.3/lib/cdi-api.license
apache-maven-3.6.3/lib/commons-cli.license
apache-maven-3.6.3/lib/commons-io.license
apache-maven-3.6.3/lib/commons-lang3.license
apache-maven-3.6.3/lib/guava.license
apache-maven-3.6.3/lib/guice.license
apache-maven-3.6.3/lib/jansi.license
apache-maven-3.6.3/lib/javax.inject.license
apache-maven-3.6.3/lib/jcl-over-slf4j.license
apache-maven-3.6.3/lib/jsoup.license
apache-maven-3.6.3/lib/jsr250-api.license
apache-maven-3.6.3/lib/org.eclipse.sisu.inject.license
apache-maven-3.6.3/lib/org.eclipse.sisu.plexus.license
apache-maven-3.6.3/lib/plexus-cipher.license
apache-maven-3.6.3/lib/plexus-component-annotations.license
apache-maven-3.6.3/lib/plexus-interpolation.license
apache-maven-3.6.3/lib/plexus-sec-dispatcher.license
apache-maven-3.6.3/lib/plexus-utils.license
apache-maven-3.6.3/lib/slf4j-api.license
apache-maven-3.6.3/boot/
apache-maven-3.6.3/boot/plexus-classworlds.license
apache-maven-3.6.3/lib/jansi-native/
apache-maven-3.6.3/lib/jansi-native/freebsd32/
apache-maven-3.6.3/lib/jansi-native/freebsd64/
apache-maven-3.6.3/lib/jansi-native/linux32/
apache-maven-3.6.3/lib/jansi-native/linux64/
apache-maven-3.6.3/lib/jansi-native/osx/
apache-maven-3.6.3/lib/jansi-native/windows32/
apache-maven-3.6.3/lib/jansi-native/windows64/
apache-maven-3.6.3/lib/jansi-native/freebsd32/libjansi.so
apache-maven-3.6.3/lib/jansi-native/freebsd64/libjansi.so
apache-maven-3.6.3/lib/jansi-native/linux32/libjansi.so
apache-maven-3.6.3/lib/jansi-native/linux64/libjansi.so
apache-maven-3.6.3/lib/jansi-native/osx/libjansi.jnilib
apache-maven-3.6.3/lib/jansi-native/windows32/jansi.dll
apache-maven-3.6.3/lib/jansi-native/windows64/jansi.dll
apache-maven-3.6.3/bin/m2.conf
apache-maven-3.6.3/bin/mvn.cmd
apache-maven-3.6.3/bin/mvnDebug.cmd
apache-maven-3.6.3/bin/mvn
apache-maven-3.6.3/bin/mvnDebug
apache-maven-3.6.3/bin/mvnyjp
apache-maven-3.6.3/conf/
apache-maven-3.6.3/conf/logging/
apache-maven-3.6.3/conf/logging/simplelogger.properties
apache-maven-3.6.3/conf/settings.xml
apache-maven-3.6.3/conf/toolchains.xml
apache-maven-3.6.3/lib/ext/
apache-maven-3.6.3/lib/jansi-native/
apache-maven-3.6.3/lib/ext/README.txt
apache-maven-3.6.3/lib/jansi-native/README.txt
apache-maven-3.6.3/boot/plexus-classworlds-2.6.0.jar
apache-maven-3.6.3/lib/maven-embedder-3.6.3.jar
apache-maven-3.6.3/lib/maven-settings-3.6.3.jar
apache-maven-3.6.3/lib/maven-settings-builder-3.6.3.jar
apache-maven-3.6.3/lib/maven-plugin-api-3.6.3.jar
apache-maven-3.6.3/lib/maven-model-3.6.3.jar
apache-maven-3.6.3/lib/maven-model-builder-3.6.3.jar
apache-maven-3.6.3/lib/maven-builder-support-3.6.3.jar
apache-maven-3.6.3/lib/maven-resolver-api-1.4.1.jar
apache-maven-3.6.3/lib/maven-resolver-util-1.4.1.jar
apache-maven-3.6.3/lib/maven-shared-utils-3.2.1.jar
apache-maven-3.6.3/lib/commons-io-2.5.jar
apache-maven-3.6.3/lib/guice-4.2.1-no_aop.jar
apache-maven-3.6.3/lib/guava-25.1-android.jar
apache-maven-3.6.3/lib/javax.inject-1.jar
apache-maven-3.6.3/lib/jsr250-api-1.0.jar
apache-maven-3.6.3/lib/plexus-utils-3.2.1.jar
apache-maven-3.6.3/lib/plexus-sec-dispatcher-1.4.jar
apache-maven-3.6.3/lib/plexus-cipher-1.7.jar
apache-maven-3.6.3/lib/slf4j-api-1.7.29.jar
apache-maven-3.6.3/lib/commons-lang3-3.8.1.jar
apache-maven-3.6.3/lib/maven-core-3.6.3.jar
apache-maven-3.6.3/lib/maven-repository-metadata-3.6.3.jar
apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar
apache-maven-3.6.3/lib/maven-resolver-provider-3.6.3.jar
apache-maven-3.6.3/lib/maven-resolver-impl-1.4.1.jar
apache-maven-3.6.3/lib/maven-resolver-spi-1.4.1.jar
apache-maven-3.6.3/lib/org.eclipse.sisu.inject-0.3.4.jar
apache-maven-3.6.3/lib/plexus-component-annotations-2.1.0.jar
apache-maven-3.6.3/lib/maven-compat-3.6.3.jar
apache-maven-3.6.3/lib/plexus-interpolation-1.25.jar
apache-maven-3.6.3/lib/wagon-provider-api-3.3.4.jar
apache-maven-3.6.3/lib/org.eclipse.sisu.plexus-0.3.4.jar
apache-maven-3.6.3/lib/cdi-api-1.0.jar
apache-maven-3.6.3/lib/commons-cli-1.4.jar
apache-maven-3.6.3/lib/wagon-http-3.3.4-shaded.jar
apache-maven-3.6.3/lib/jsoup-1.12.1.jar
apache-maven-3.6.3/lib/jcl-over-slf4j-1.7.29.jar
apache-maven-3.6.3/lib/wagon-file-3.3.4.jar
apache-maven-3.6.3/lib/maven-resolver-connector-basic-1.4.1.jar
apache-maven-3.6.3/lib/maven-resolver-transport-wagon-1.4.1.jar
apache-maven-3.6.3/lib/maven-slf4j-provider-3.6.3.jar
apache-maven-3.6.3/lib/jansi-1.17.1.jar

[root@thermalite opt]# vi /etc/profile.d/maven.sh

[root@thermalite opt]# cat /etc/profile.d/maven.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

[root@thermalite opt]# source /etc/profile.d/maven.sh

[root@thermalite opt]# ln -s apache-maven-3.6.3 maven

[root@thermalite opt]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven
Java version: 1.8.0_252, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-147.8.1.el8_1.x86_64", arch: "amd64", family: "unix"
[root@thermalite opt]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[root@thermalite opt]#