Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Saturday, September 15, 2018

Getting Started With RabbitMQ in 10 Minutes (On Ubuntu)

Getting Started With RabbitMQ in 10 Minutes



RabbitMQ is one of the most popular opensource message broker/Queuing engine available in the market.. It has been used as communication(Message Oriented) bridge in many software architectures.. Communication between Microservices is one of the obvious use case where we can use MQ to make things simple .. RabbitMQ makes communication between services easy with it's simple messaging system.. Rabbit MQ supports multiple protocols like AMQP

In one of our projects, We've used it to delegate the heavy processing things to worker process written in python form single threaded NodeJs process.. thus it makes easy to scale our services and opened the doors to polyglot architecture for our services... we enjoyed it a lot.. So I thought to write a simple article which will help people to get start with RabbitMQ in 10 minutes..

Installing RabbitMQ (In Ubuntu based systems)

First update source-list and add signing key

sudo apt update wget -O - 'https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc' | sudo apt-key add -

Now add repository to source list

echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -cs) main erlang" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list

Now update the source list and install the RabbitMQ ....

sudo apt update sudo apt install rabbitmq-server -y

The server is started as a daemon by default when the RabbitMQ is installed.

Verify the installation.. with the following command...

sudo systemctl status rabbitmq-server.service
shivaraj@shivaraj-Aspire-A315-21:~$ sudo systemctl status rabbitmq-server.service [sudo] password for shivaraj: ● rabbitmq-server.service - RabbitMQ broker Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-09-15 15:25:31 IST; 1h 29min ago Main PID: 1217 (beam.smp) Status: "Initialized" Tasks: 86 (limit: 4486) CGroup: /system.slice/rabbitmq-server.service ├─1217 /usr/lib/erlang/erts-9.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 1280000 -K true -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -p ├─1333 /usr/lib/erlang/erts-9.2/bin/epmd -daemon ├─1572 erl_child_setup 1024 ├─1624 inet_gethost 4 └─1625 inet_gethost 4 Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: ## ## Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: ## ## RabbitMQ 3.7.7. Copyright (C) 2007-2018 Pivotal Software, Inc. Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: ########## Licensed under the MPL. See http://www.rabbitmq.com/ Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: ###### ## Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: ########## Logs: /var/log/rabbitmq/rabbit@shivaraj-Aspire-A315-21.log Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: /var/log/rabbitmq/rabbit@shivaraj-Aspire-A315-21_upgrade.log Sep 15 15:25:26 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: Starting broker... Sep 15 15:25:31 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: systemd unit for activation check: "rabbitmq-server.service" Sep 15 15:25:31 shivaraj-Aspire-A315-21 systemd[1]: Started RabbitMQ broker. Sep 15 15:25:32 shivaraj-Aspire-A315-21 rabbitmq-server[1217]: completed with 3 plugins. shivaraj@shivaraj-Aspire-A315-21:~$

And also I'll show you small how to with NodeJS and RabbitMQ.. for this you need to have Node installed in your system.. If you haven't installed NodeJs you can check the instructions here..

First you need to install amqplib.. it's RabbitMQ client for NodeJs..

npm install amqplib

Then create two files named.. sender.js and receiver.js

Now you can run the receiver.js and and publisher.js and you can see the output like one shown below...

node sender.js
shivaraj@shivaraj-Aspire-A315-21:~/mqtest$ node sender.js Connected Published New Task Published New Task Published New Task
node receiver.js
shivaraj@shivaraj-Aspire-A315-21:~/mqtest$ node receiver.js Connected Do Something.... Do Something.... Do Something.... Do Something.... Do Something....

If you want to use it with other languages.. please check official guide.. https://www.rabbitmq.com/getstarted.html

That's it for now.. If you like.. don't forget to share it guys.. You can follow us on fb.com/opensourceinside and also subscribe our channel on Youtube..


Friday, August 31, 2018

How TO Install Docker On Ubuntu 18.04/16.04

How To Install Docker In Ubuntu Linux 14.04, 16.04 And 18.04



I'm going to show you how to install and run Docker in Ubuntu Linux

First update source-list

sudo apt update

Install required dependencies..

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Then.. Add docker's official GPG key with following command..

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

The above commands output will looks like..

shivaraj@shivaraj-Aspire-A315-21:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK shivaraj@shivaraj-Aspire-A315-21:~$

Now add Docker Community Edition's repository to list..

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
shivaraj@shivaraj-Aspire-A315-21:~$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease Hit:2 http://packages.microsoft.com/repos/vscode stable InRelease Ign:3 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 InRelease Get:4 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] Hit:5 http://dl.google.com/linux/chrome/deb stable Release Hit:6 http://in.archive.ubuntu.com/ubuntu bionic InRelease Hit:7 https://deb.opera.com/opera-stable stable InRelease Get:8 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB] Get:9 http://in.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] Hit:10 http://archive.canonical.com/ubuntu bionic InRelease Hit:11 http://linux.teamviewer.com/deb stable InRelease Hit:12 http://linux.teamviewer.com/deb preview InRelease Hit:13 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 Release Hit:15 https://repo.skype.com/deb stable InRelease Get:16 http://in.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] Get:17 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages [1,708 B] Hit:18 https://download.sublimetext.com apt/stable/ InRelease Fetched 313 kB in 2s (128 kB/s) Reading package lists... Done shivaraj@shivaraj-Aspire-A315-21:~$

Now update the package index once again..

sudo apt update

Now Install the docker..

sudo apt install docker-ce
shivaraj@shivaraj-Aspire-A315-21:~$ sudo apt install docker-ce Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: aufs-tools cgroupfs-mount pigz The following NEW packages will be installed: aufs-tools cgroupfs-mount docker-ce pigz 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 40.4 MB of archives. After this operation, 198 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 18.06.1~ce~3-0~ubuntu [40.2 MB] Get:2 http://in.archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] Get:3 http://in.archive.ubuntu.com/ubuntu bionic/universe amd64 aufs-tools amd64 1:4.9+20170918-1ubuntu1 [104 kB] Get:4 http://in.archive.ubuntu.com/ubuntu bionic/universe amd64 cgroupfs-mount all 1.4 [6,320 B] Fetched 40.4 MB in 12s (3,510 kB/s) Selecting previously unselected package pigz. (Reading database ... 273749 files and directories currently installed.) Preparing to unpack .../archives/pigz_2.4-1_amd64.deb ... Unpacking pigz (2.4-1) ... Selecting previously unselected package aufs-tools. Preparing to unpack .../aufs-tools_1%3a4.9+20170918-1ubuntu1_amd64.deb ... Unpacking aufs-tools (1:4.9+20170918-1ubuntu1) ... Selecting previously unselected package cgroupfs-mount. Preparing to unpack .../cgroupfs-mount_1.4_all.deb ... Unpacking cgroupfs-mount (1.4) ... Selecting previously unselected package docker-ce. Preparing to unpack .../docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb ... Unpacking docker-ce (18.06.1~ce~3-0~ubuntu) ... Setting up aufs-tools (1:4.9+20170918-1ubuntu1) ... Setting up docker-ce (18.06.1~ce~3-0~ubuntu) ... Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service. Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket. Processing triggers for ureadahead (0.100.0-20) ... ureadahead will be reprofiled on next reboot Setting up cgroupfs-mount (1.4) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for systemd (237-3ubuntu10.3) ... Processing triggers for man-db (2.8.3-2) ... Setting up pigz (2.4-1) ... Processing triggers for ureadahead (0.100.0-20) ... shivaraj@shivaraj-Aspire-A315-21:~$

The Docker daemon starts automatically.

Verify the installation.. with the following command...

sudo docker run hello-world
shivaraj@shivaraj-Aspire-A315-21:~$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9db2ca6ccae0: Pull complete Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/ shivaraj@shivaraj-Aspire-A315-21:~$

Here is the video version of above tutorial..

That's it for now.. If you like.. don't forget to share it guys.. You can follow us on fb.com/opensourceinside and also subscribe our channel on Youtube..


Saturday, June 30, 2018

Installing Multiple Versions Of NodeJs Versions On Your Linux System

Installing Multiple Versions Of NodeJs Versions On Your Linux System



Today, I'm going to show you how to install and manage multiple versions of NodeJs on your linux system.

We are going to use NVM to install and manage multiple versions of NodeJs on same system. So we need to install NVM first.. To install it just copy paste the below command.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

The above script will download and install NVM on your Linux box.. Now run the below command to activate it in current terminal session or just close and open your current terminal session.

source ~/.bashrc

Now just check the NVM installation with following command..

nvm --version

It should print version like one shown below..

shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm --version 0.33.8 shivaraj@shivaraj-A14RM0E:~/articles-now$

Installing NodeJs with NVM

Now we are going to see how to install the latest version of Nodejs using NVM..
Just Run the below command to install latest version of nodejs in your system

nvm install node

This will produce output like one shown below.. on successful installation..

shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm install node Downloading and installing node v10.5.0... Downloading https://nodejs.org/dist/v10.5.0/node-v10.5.0-linux-x64.tar.xz... ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v10.5.0 (npm v6.1.0)

You can check the version of node installed with node -v and npm with npm -v

shivaraj@shivaraj-A14RM0E:~/articles-now$ node -v v10.5.0 shivaraj@shivaraj-A14RM0E:~/articles-now$ npm -v 6.1.0 shivaraj@shivaraj-A14RM0E:~/articles-now$

You can install particular version of NodeJs with npm install version-number. For example to install NodeJs version 8 you can use nvm install 8

shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm install 8 Downloading and installing node v8.11.3... Downloading https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz... ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v8.11.3 (npm v5.6.0) shivaraj@shivaraj-A14RM0E:~/articles-now$

To check the different versions of NodeJs installed in your local system.. run the following command

nvm ls
shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm ls v8.9.4 -> v8.11.3 v9.4.0 v10.5.0 default -> 8 (-> v8.11.3) node -> stable (-> v10.5.0) (default) stable -> 10.5 (-> v10.5.0) (default) iojs -> N/A (default) lts/* -> lts/carbon (-> v8.11.3) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.14.3 (-> N/A) lts/carbon -> v8.11.3 shivaraj@shivaraj-A14RM0E:~/articles-now$

To switch from one version to other you can use following command.. nvm use version number. for example to use Node Version 10 you have to run nvm use 10

shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm use 10 Now using node v10.5.0 (npm v6.1.0) shivaraj@shivaraj-A14RM0E:~/articles-now$

If you want to set some node version as default version to use ... you can set it with following command.. nvm alias default node-version.. if you want to set the node version 8 as default one you can set it by running this command nvm alias default 8

shivaraj@shivaraj-A14RM0E:~/articles-now$ nvm alias default 8 default -> 8 (-> v8.11.3) shivaraj@shivaraj-A14RM0E:~/articles-now$

Here is the video for above tutorial...


That's it for now.. Thank You.. If you like don't forget to share it guys.. You can follow us on fb.com/opensourceinside and also subscribe our channel on Youtube..


Sunday, May 6, 2018

Finding Application / Process Running On Particular Port In Linux Systems

Finding Application / Process Running On Particular Port In Linux Systems



Today, I'm going to show you how to find application / process running on particular port in Linux Systems.

We can use lsof command to find the process running on particular port. The syntax of lsof command to find the application running on particular port looks like following..

lsof -i :port

Summary of above code...
lsof command is used to list open files.. and the argument -i is used to list files whose ip address / port matched to specified ip address / port.

Note: If you ignore ip address / port after -i then the above command will lists processes for all ip addresses...

For example to find the process / application listening on port 80, run the following code..

lsof -i :80

The output will looks like following..

shivaraj@shivaraj-A14RM0E:~$ lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME plugin_ho 3981 shivaraj 20u IPv4 420822 0t0 TCP 192.168.0.117:33104->45.55.41.223:http (CLOSE_WAIT) shivaraj@shivaraj-A14RM0E:~$

If you omit port value... lsof -i the output will looks like following one..

shivaraj@shivaraj-A14RM0E:~$ lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME plugin_ho 3981 shivaraj 20u IPv4 420822 0t0 TCP 192.168.0.117:33104->45.55.41.223:http (CLOSE_WAIT) node 4165 shivaraj 12u IPv4 509873 0t0 TCP *:http-alt (LISTEN) firefox 4178 shivaraj 114u IPv4 7216095 0t0 TCP 192.168.0.117:42436->server-54-230-190-100.maa3.r.cloudfront.net:https (ESTABLISHED) shivaraj@shivaraj-A14RM0E:~$

By specifying -t for lsof command we can get pid of process listening on particular port... Look at the below command signature..

lsof -t -i :port

If you want to find out pid of process listening on port 80, run the following code..

lsof -t -i :80

The above commands output will looks like..

shivaraj@shivaraj-A14RM0E:~$ lsof -t -i :80 3981 shivaraj@shivaraj-A14RM0E:~$
How to find and kill the process running on particular port..

That's it for now.. If you like don't forget to share it guys.. You can follow us on fb.com/opensourceinside and also subscribe our channel on Youtube..


Saturday, December 30, 2017

How To Solve Sublime Text Not Showing In Optional Application List Of Open With Menu On Right Click

How To Solve Sublime Text Not Showing In Optional Application List Of Open With Menu On Right Click

I just installed sublime text in my new Linux box.. And tried to open text file with it instead of default editor.. So I clicked on 'Open With' option in Right Click menu.... But I couldn't see sublime-text in application list shown on clicking 'Open With'...

So I just googled for solution... It's easy to fix... We just need to copy desktop entry to local list of desktop entries list...

Just Run The Following Lines.. To Make Things Work...

Step 1 :

Just Copy the contents of /usr/share/applications/sublime_text.desktop to ~/.local/share/applications/sublime_text.desktop

cp /usr/share/applications/sublime_text.desktop ~/.local/share/applications/sublime_text.desktop

Step 2 :

Now Just update the index of desktop entries... sudo update-desktop-database

sudo update-desktop-database

That's It Now It will appear at menu list of 'Open With'...

Just check the video... Friends... Don't Forget To Subscribe...


Wednesday, February 8, 2017

Disabling/Changing Drum Beat Sound On Ubuntu Startup

Disabling/Changing Drum Beat Sound On Ubuntu Startup


Ubuntu would always play, Drum Beat sound on Ubuntu system startup, But some people may find this is annoying and want to disable or want to change it with their own custom alert sound... Unfortunately, Ubuntu haven't provided a simpler GUI way to disable/customize the startup sound (so far I know..).

However, it's not that much hard to disable/change the startup sound. In this post I will show you how to change/disable startup sound in Ubuntu.

Mostly, All sounds which generally used by Ubuntu are .ogg format sound files and they are located in /usr/share/sounds/ubuntu/. We can disable or change the startup sounds just by renaming/replacing the corresponding sound file...

Disable Startup Sound :

To disable startup sound we just have to rename the file named system-ready.ogg which is located in /usr/share/sounds/ubuntu/stereo/. Just run the below command to disable the startup drum beat in your Ubuntu system..

sudo mv /usr/share/sounds/ubuntu/stereo/system-ready.ogg /usr/share/sounds/ubuntu/stereo/system-ready.ogg.old

Changing The Startup Sound With One You Like To Hear..

We can change/customize our startup sound just by replacing existing system-ready.ogg with our own sound file (should be in .ogg format) with existing name (system-ready.ogg)..

I have already mentioned that Ubuntu use .ogg file format for its alert sounds.. So your new sound file also should be in that format.. Don't worry, If you don't have your sound file in .ogg format.. You can just convert your sound file from current format to .ogg .. There are many tools available to do that for you.. Even you can convert it in online... media.io is one of such kind of web site where you can freely convert your sound file to .ogg format..

Now, if you have your new sound file with .ogg format in your hands.. Then... Just disable existing sound by running following commands..

sudo mv /usr/share/sounds/ubuntu/stereo/system-ready.ogg /usr/share/sounds/ubuntu/stereo/system-ready.ogg.old sudo cp /PATH_TO_YOUR_NEW_SOUND_FILE/ /usr/share/sounds/ubuntu/stereo/system-ready.ogg
Please, Don't forget to replace /PATH_TO_YOUR_NEW_SOUND_FILE/ with your files path..

For Example..

If you have your new file named beep.ogg in your Downloads directory.. Then you have to execute following command....

sudo cp ~/Downloads/beep.ogg /usr/share/sounds/ubuntu/stereo/system-ready.ogg
I have tested it in my Ubuntu Linux 16.04 LTS and Hope will work in other versions too...

That's it.. Now just restart your system and see the change... Follow us on facebook.


Friday, December 30, 2016

How To Get Rid Of "N: Ignoring file '20auto-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension" Warning Message In Ubuntu 16.04

How To Get Rid Of
"N: Ignoring file '20auto-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension"
Warning Message In Ubuntu 16.04

shivaraj@shivaraj-A14RM0E:~$ sudo apt upgrade [sudo] password for shivaraj: Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. N: Ignoring file '20auto-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension shivaraj@shivaraj-A14RM0E:~$

As usual, today morning, I ran sudo apt-get -y upgrade in my Ubuntu Linux box.. But at the end of the upgrade I got "N: Ignoring file '20auto-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension".... I googled about it to find the reason for this kind of nasty warnings...

Finally, found the reason and solution for this issue from Ask Ubuntu...

According to AskUbuntu, The reason for this warning message is, the update contains a new version of configuration file.. but if you choose system package manager to keep old one itself... then the new config file would just exists there, along with old configuration file...

So every time we use package manager, it is printing file with invalid extension warning message... However, it will not cause any issues.. We can just ignore it... But if you want to get rid of this warning message.. Just follow the bellow instructions...

We can get rid of this message by removing redundant new configuration file which came with updates..
Just execute bellow command to remove the new redundant configuration file.. So that we can get rid of warning message..

sudo rm -f /etc/apt/apt.conf.d/20auto-upgrades.ucf-dist

Now run sudo apt upgrade... This time you wouldn't get warning message..

shivaraj@shivaraj-A14RM0E:~$ sudo rm -f /etc/apt/apt.conf.d/20auto-upgrades.ucf-dist shivaraj@shivaraj-A14RM0E:~$ sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. shivaraj@shivaraj-A14RM0E:~$

Thats all... Follow us on facebook fb.com/opensourceinside..


Sunday, October 30, 2016

Installing Rust On Ubuntu 16.04 and 14.04

Installing Rust On Ubuntu 16.04 and 14.04


Rust Programming Logo

Rust, also known as Rust-Lang, is a new programming language which aims safety, speed and concurrency... It's designed to create highly concurrent and secure Applications/Systems by having more a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races.... According to documentation, Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language.

Here.. We are going to see how to install and getting start with rust on Ubuntu Linux 16.04 & 14.04

Step 1: Update Source(Package) List

Open terminal and run the following commands to ensure that package source list is upto date and also install curl...

For Ubuntu 16.04

sudo apt update && sudo apt -y install curl

For Ubuntu 14.04

sudo apt-get update && sudo apt-get -y install curl

Step 2: Install Rust

Now run the following command which download and runs a script that will install rust on your Linux box..

wget -O - https://static.rust-lang.org/rustup.sh | sh

Or If you have curl installed..

curl -sSf https://static.rust-lang.org/rustup.sh | sh

Rust packages are available in three different release channels namely stable, beta and nightly... The above command will install current stable version of rust on your system..

If you want to install beta version(A preview of the upcoming stable release, intended for testing) of rust, run the following command..

wget -O - https://static.rust-lang.org/rustup.sh | sh -s -- --channel=beta

Or

curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=beta

If you want to enjoy features that are not available in stable and beta channels, install rust from nightly release channel.. (Be aware, Features which are available in nightly channel are unstable may change anytime before they get into beta channel)

wget -O - https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly

Or

curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly

Step 3: Verify The Installation

You can verify the successful installation of rust in your System by running rustc -V . You will get output similar to output shown below..

shivaraj@shivaraj-A14RM0E:~$ rustc -V rustc 1.12.1 (d4f39402a 2016-10-19)

Get start with rust..

If you see output similar to above.. that means your installation was successful.. So now here i am going to show how to write a hello world program in rust and run it..

Create file named main.rs, open it with your favorite text-editor, then copy and paste the following code in that file and save it...

fn main() { println!("Hello, World"); }

Now compile it with rustc main.rs, you will get executable file named main .... execute it by running ./main .. You will see.. "Hello, World" text on your screen..

shivaraj@shivaraj-A14RM0E:~$ ./main Hello, World shivaraj@shivaraj-A14RM0E:~$

Here, You Can Learn Rust Programming..


Here is the video for above tutorial...



Happy Coding !!

Wednesday, September 28, 2016

How To Install And Configure Postfix To Send Mail By Using Gmail As Mail Relay In Ubuntu 16.04 & 14.04

How To Install And Configure Postfix To Send Mail By Using Gmail As Mail Relay In Ubuntu 16.04 & 14.04

Postfix is a cross platform, free and opensource Mail Transfer Agent (MTA) designed to be an alternative to the widely-used Sendmail program. The main aim of Postfix is to be fast, easy to administer, and secure. The outside has a definite Sendmail-ish flavor, but the inside is completely different. Today we are going to see how to install and configure Postfix to send E-mail using gmail as mail relay server... and I'm using Ubuntu 16.04 LTS for this tutorial..(also tested in 14..04)

Installation

You can get Postfix from offical Ubuntu repositories.. So you can install it by running the apt install command..

For Ubuntu 16.04

sudo apt update && sudo apt -y install libsasl2-modules postfix

For Ubuntu 14.04

sudo apt-get update && sudo apt-get -y install libsasl2-modules postfix

Postfix Configuration..

During the installation of Postfix, you will be asked to choose default configuration for postfix...
Select Internet Site...


Enter Fully Qualified Domain Name(FQDN).. for example if you are going to use myuser.example.com then you have to fill example.com for following field..


After installation has completed successfully, proceed following steps to use gmail SMTP server as relayhost.

Configuring Postfix To Use Gmail's SMTP server as Relayhost..

Now we will see how to configure Postfix to send E-mails using gmail as relay host.. To do this we need to edit /etc/postfix/main.cf... open main.cf file in your favorite text editor.. here i am using sublime text(it's my favorite editor )..
See How To Install Sublime Text On Linux

subl /etc/postfix/main.cf

If you want to open with gedit run following the command..

sudo gedit /etc/postfix/main.cf

Then add following lines to the end of main.cf file..

# enable SASL authentication smtp_sasl_auth_enable = yes # disallow methods that allow anonymous authentication. smtp_sasl_security_options = noanonymous # where to find sasl_passwd smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd # Enable STARTTLS encryption smtp_use_tls = yes # where to find CA certificates smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

And also set relayhost value to [smtp.gmail.com]:587..

relayhost = [smtp.gmail.com]:587

Configure Gmail Username and Password For Authentication :

first you have to create file named sasl_passwd inside /etc/postfix/...

sudo touch /etc/postfix/sasl_passwd

Then open recently created file with your choice of text editor..

sudo gedit /etc/postfix/sasl_passwd

or, if you have sublime text editor... run following..

subl /etc/postfix/sasl_passwd

Now add your smtp server address, port, username and password details in the format shown below..

[smtp relayhost ip or name]:port username:password

For our case (gmail)... following is more suitable example...

[smtp.gmail.com]:587 abcd@gmail.com:mypassword
You have to Turn On Allow less secure apps in-order to use your Postfix MTA work properly with gmail.. To do this go to https://myaccount.google.com/security/lesssecureapps find Allow less secure apps option and Turn On it..



Don't forget to replace with abcd and mypassword with your username and password..

then save and create lookup-table or hash for above file.. by running postmap command..
if you ma any changes

sudo postmap /etc/postfix/sasl_passwd
The above command will create new file sasl_passwd.db in the same location as sasl_passwd file exists..
You should recompile sasl_passwd file.. means you have to run above command whenever you make change in sasl_passwd file...

Restart or Reload Postfix :

Before you use, You should reload or restart Postfix whenever you make changes to main.cf file..

For Ubuntu 16.04

sudo systemctl restart postfix

For Ubuntu 14.04

sudo service postfix restart

Or you can reload postfix with it's own implementation..

sudo postfix reload

Testing Postfix Installation

The easy way to test your postfix installation and configuration is use mail command or sendmail command..

Testing using mail command :

You can use mail command to send mail as follows..

echo message_text | mail -s "subject" Recipient Email Address

For example.. if you want to send mail to myfriendd@outlook.com ... the above command will looks like the following one..

echo Hello | mail -s "Test Mail Subject" shivarajnaidu@outlook.com

Testing using sendmail command :

You can even postfix's implementation of sendmail command..

sendmail shivarajnaidu@outlook.com From: you@example.com Subject: Test Mail Subject Hello .
Note the trailing "." (dot) in sendmail command example.
Usually send mail will consider "." (dot) as end of message

Debugging :

If you didn't receive mail, when you test with above commands.. then see mail.log and mail.err files which are present in /var/log/... From these two files you can point-out the problem and it will be helpful for troubleshooting the problem.


Here is the video for above tutorial...


That's it for now.. If you like don't forget to share it guys.. You can follow us on fb.com/opensourceinside and also subscribe our channel on Youtube..


Friday, September 16, 2016

Installing phpMyAdmin in Ubuntu 16.04

Installing phpMyAdmin in Ubuntu 16.04


phpMyAdmin is an open source tool used for the administration/management of MySQL or MariaDB with the use of a web browser. In addition to offering the capability to perform administration tasks such as creating, editing, or deleting databases, and managing users and permissions, phpMyAdmin provides a graphical user interface to do all of these tasks and more. Here, we are going to see how to install, up and run phpMyAdmin on Ubuntu 16.04.

Install phpMyAdmin

Before you start installing phpmyadmin, install PHP, apache and MySql or similar Db..

Then.. Run following command .. to install phpMyadmin on your Ubuntu installation...

sudo apt -y update && sudo apt install phpmyadmin

Continue with typing Y once the installation prompts you with Do you want to continue [Y/n]? Like in the image below.


Now we are prompted with dialog selecting our web server, in our case we are selecting apache2 like shown below.


Select <Yes> as we just want a basic installation like shown below.


Now provide a password for phpMyAdmin to use. So that it can register with the MySQL database itself. (Need not to be the same as the MySQL root user)


Enter in the phpMyAdmin password you created in last step to confirm it as follows.


phpMyAdmin is now installed, but, still we have a few more things to do.

Testing phpMyAdmin

Now we will test phpMyAdmin! Open your favorite Web Browser..
and Navigate to http://localhost/phpmyadmin/

If you end up with a page that looks like one shown below... means, phpMyadmin was installed successfully on your system..


Now lets login, the default username for phpMyAdmin is root and the password is what you have entered while installing phpMyadmin... Enter as follows.

Username: root

Password: What you selected earlier

Select Go to login.

When you log in, you'll see the user interface, which will look something like this:


Hi friends, If you found any issue or typo error, please feel free to report it.. You can report it on our Facebook Page via message (www.fb.com/opensourceinside) .