How to Install Latest Nvidia Drivers on Ubuntu

With the recent advancements in Linux desktop distributions, gaming on Linux is coming to life. Linux users are beginning to enjoy gaming like Windows or Mac OSX users, with amazing performance.

Nvidia makes top-rated gaming graphics cards. However, for a long time, updating Nvidia drivers on Linux desktops was not so easy. Luckily, now the Proprietary GPU Drivers PPA packages updated nvidia-graphics-drivers for Ubuntu ready for installation.

Although this PPA is currently in testing, you can get fresh drivers from upstream, currently shipping Nvidia from it. If you are using Nvidia graphics card, this article will show you how to install the latest Nvidia drivers on Ubuntu and its derivatives such as Linux Mint.

How to Install Nvidia Drivers in Ubuntu

First start by adding the Proprietary GPU Drivers PPA to your system package sources and update your system package cache using apt command.

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update


Then install the latest stable nvidia graphics (which is nvidia-387 at the time of writing this article) using the following command.

$ sudo apt install nvidia-387

Alternatively, open Software & Updates under System Settings and go to Additional Drivers tab, select the required driver version and click “Apply Changes”.

Next, reboot your computer for the new driver to start working. Then use the lsmod command to check your installation status with the following command.

It will list all currently loaded kernel modules in Linux, then filter only nvidia using grep command.

$ lsmod | grep nvidia 

Some times updates do not work well as expected. If you face any issues with the latest drivers installation such as black screen on startup, you can remove it as follows.

$ sudo apt-get purge nvidia*

If you want to completely remove graphics-drivers PPA as well, run the following command to remove PPA.

$ sudo apt-add-repository --remove ppa:graphics-drivers/ppa

You might also like to read these following related articles on Gaming.

  1. 5 Best Linux Gaming Distributions That You Should Give a Try
  2. 12 Amazing Terminal Based Games for Linux Enthusiasts

That’s all! You can ask questions or share any useful additional information via the feedback form below.

How to Build Fully-Functional Apps & Software with This 7-Course Bundle

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Build Fully-Functional Apps & Software with This 7-Course Bundle’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/02/Software-Engineering-Course.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

Installation of ClearOS 7 Community Edition

ClearOS is a simple, open source and affordable Linux operating system based on CentOS and Red Hat Enterprise Linux. It designed for use in small and medium enterprises as a server or network gateway. It comes with an intuitive graphical web-based user interface and an application marketplace with over 100 applications to choose from, with more being added each day.

ClearOS is available in three major editions: Business, Home and Community Edition. In this article, we will explain how to install ClearOS Community Edition on your machine.

Download ClearOS 7 ISO Image

Download ClearOS 7 Community Edition 64-bit DVD ISO for your operating system using following link.

  1. ClearOS 7 Community Edition

Installation Of ClearOS 7.4

1. Once you have downloaded the last version of ClearOS using above download link, burn it to a DVD or create a bootable USB stick using LiveUSB Creator called Unetbootin or Etcher (Modern USB Image Writer) tool.


2. After you have created the installer bootable media, place your DVD/USB into your system appropriate drive. Then power on the computer, select your bootable device and the ClearOS 7 prompt should appear as in the following screenshot.

Select Install CentOS 7 and press [Enter] key.

ClearOS Boot Screen

ClearOS Boot Screen

3. The system will begin loading the media installer and a welcome screen should appear as in the following screenshot. Choose the Installation Process Language, which will help you through the entire installation process procedure and click on Continue.

ClearOS Installation Language

ClearOS Installation Language

4. Next, you will see the Installation Summary screen. It has a lot of options to fully customize your system before the actual installation of system files on the disk.

Start by configuring your system time settings. Click on Date & Time and select your server physical location from the provided map and click Done button on the upper left corner to apply the settings.

ClearOS Installation Summary

ClearOS Installation Summary

ClearOS Installation Summary

ClearOS Installation Summary

ClearOS Location Setup

ClearOS Location Setup

5. Next, click on Keyboard to set your Keyboard Layout and click on the + button and test your keyboard configuration using the right input filed.

Once you are finished setting up your keyboard, click on Done button on the upper left corner to apply changes and which should take you back to the Installation Summary screen.

Set ClearOS Keyboard

Set ClearOS Keyboard

6. Now click on Language Support, then choose your additional language support to be installed and when you have finished, hit on Done button to continue..

Select ClearOS Language Support

Select ClearOS Language Support

7. Once you are done customizing your system. Under Installation Sources, since you are only using a local DVD or USB media, leave the default Auto-detected installation media option and hit on Done to continue.

Select ClearOS Installation Source

Select ClearOS Installation Source

8. In this step, from the Installation Summary screen click on Software Selection. CelearOS offers a Minimal Install option only as you can see from the following screen shot. You can add more software later on once the system is fully installed and running. So click on Done to continue.

ClearOS Minimal Installation

ClearOS Minimal Installation

9. Next, you need to setup the installation destination, meaning you should partition your hard-drive. Click on Installation Destination option, select your disk and choose I will configure partitioning and click on Done to continue.

Select ClearOS Installation Destination

Select ClearOS Installation Destination

10. Now choose LVM (Logical Volume Manager) as partition layout and then hit on Click here to create them automatically option, which will create three system partition using XFS filesystem.

You can make changes to the automatically generated values, you can add, modify or resize your partition scheme, change the filesystem type label etc.

The following partitions will be created on the hard-disk and combined into one big Volume Group named clearos.

/boot - Standard partition /(root) - LVM Swap - LVM 
ClearOS Manual Partitioning

ClearOS Manual Partitioning

ClearOS Partitions

ClearOS Partitions

11. Once you have made any desirable changes, you can click on the Done button and Accept Changes on the Summary of Changes prompt.

ClearOS Disk Write Changes

ClearOS Disk Write Changes

Attention: If you have a hard-disk of more than 2TB capacity, the installer automatically will convert partition table to GPT. However, if you wish to use GPT table on smaller disks than 2TB, then you should use the argument inst.gpt to the installer boot command line in order to change the default behavior.

12. Now you need to enable networking and set your system hostname. Click on Network & Hostname option and you will be taken to the screen shown below.

Enter your system FQDN (Fully Qualified Domain Name) on Hostname filed, then enable your Network interface, switching the top Ethernet button to ON.

ClearOS Network and Hostname

ClearOS Network and Hostname

13. Once the Ethernet network interface button turned ON, if you have a functional DHCP server on you network then it will automatically configure all your network setting for enabled NIC, which should appear under your active interface.

However, if you are setting up a server then it’s recommended to configure a static network configuration on Ethernet NIC by clicking on Configure button.

Then add all your static interface settings as shown in the following screenshot. When you have finished, click on Save button, disable and enable Ethernet card by switching the button to OFF and ON, and, then click on Done to apply settings and go back to the Installation Summary window.

ClearOS Configure Static Network

ClearOS Configure Static Network

14. At this point, you can now to start installation process by pressing on Begin Installation button and set up a strong password for root account.

ClearOS Begin Installation

ClearOS Begin Installation

15. Click on Root Password and set a strong password for the root account as shown in the screenshot that follows.

ClearOS Root Password

ClearOS Root Password

Set ClearOS Root Password

Set ClearOS Root Password

16. When the installation process is complete, the installer will show a successfully message on screen, asking for a reboot of the system in order to use it. Remove your installation media and reboot your computer so you can login to your new minimal ClearOS 7 environment.

ClearOS Installation Finished

ClearOS Installation Finished

ClearOS Grub Menu

ClearOS Grub Menu

17. Next, the system will begin loading services as well as the ClearOS API, then an Administrator Login interface will appear as shown in the following screenshot.

You can choose to login or access the web-based interface on port 81 using the IP address you set for the Ethernet interface in step 13 above.

https://192.168.56.11:81
ClearOS Admin Login

ClearOS Admin Login

If you fail to login after some number of seconds, the Network Console shown below will appear. You can go back to the text based administrator login interface by clicking on Exit Console.

ClearOS Network Console

ClearOS Network Console

Important: ClearOS is configured via a web-based admin tool called Webconfig. Once you login into web-based administration tool from a remote web browser, you can get started with the First Boot Wizard.

That’s It! Hoping that everything went on well, now you have the latest ClearOS release installed on your computer. You can ask any questions via the feedback form below.

How to start writing macros in LibreOffice Basic

I have long promised to write about the scripting language Basic and creating macros in LibreOffice. This article is devoted to the types of data used in LibreOffice Basic, and to a greater extent, descriptions of variables and the rules for using them. I will try to provide enough information for advanced as well as novice users.

(And, I would like to thank everyone who commented on and offered recommendations on the Russian article, especially those who helped answer difficult questions.)

Variable naming conventions

Variable names cannot contain more than 255 characters. They should start with either upper- or lower-case letters of the Latin alphabet, and they can include underscores (“_”) and numerals. Other punctuation or characters from non-Latin alphabets can cause a syntax error or a BASIC runtime error if names are not put within square brackets.

Here are some examples of correct variable names:


MyNumber=5

MyNumber5=15

MyNumber_5=20

_MyNumber=96

[My Number]=20.5

[5MyNumber]=12

[Number,Mine]=12

[DéjàVu]=“It seems that I have seen it!”

[??? ??????????]=“The first has went!”

[??? % ?? ??????]=0.0001

Note: In examples that contain square brackets, if you remove the brackets, macros will show a window with an error. As you can see, you can use localized variable names. Whether it makes sense to do so is up to you.

Declaring variables

Strictly speaking, it is not necessary to declare variables in LibreOffice Basic (except for arrays). If you write a macro from a pair of lines to work with small documents, you don’t need to declare variables, as the variable will automatically be declared as the variant type. For longer macros or those that will work in large documents, it is strongly recommended that you declare variables. First, it increases the readability of the text. Second, it allows you to control variables that can greatly facilitate the search for errors. Third, the variant type is very resource-intensive, and considerable time is needed for the hidden conversion. In addition, the variant type does not choose the optimal variable type for data, which increases the workload of computer resources.

Basic can automatically assign a variable type by its prefix (the first letter in the name) to simplify the work if you prefer to use the Hungarian notation. For this, the statement DefXXX is used; XXX is the letter type designation. A statement with a letter will work in the module, and it must be specified before subprograms and functions appear. There are 11 types:


DefBool – for boolean variables;
DefInt – for integer variables of type Integer;
DefLng – for integer variables of type Long Integer;
DefSng – for variables with a single-precision floating point;
DefDbl – for variables with double-precision floating-point type Double;
DefCur – for variables with a fixed point of type Currency;
DefStr – for string variables;
DefDate – for date and time variables;
DefVar – for variables of Variant type;
DefObj – for object variables;
DefErr – for object variables containing error information.

If you already have an idea of the types of variables in LibreOffice Basic, you probably noticed that there is no Byte type in this list, but there is a strange beast with the Error type. Unfortunately, you just need to remember this; I have not yet discovered why this is true. This method is convenient because the type is assigned to the variables automatically. But it does not allow you to find errors related to typos in variable names. In addition, it will not be possible to specify non-Latin letters; that is, all names of variables in square brackets that need to be declared must be declared explicitly.

To avoid typos when using declared variables explicitly, you can use the statement OPTION EXPLICIT. This statement should be the first line of code in the module. All other commands, except comments, should be placed after it. This statement tells the interpreter that all variables must be declared explicitly; otherwise, it produces an error. Naturally, this statement makes it meaningless to use the Def statement in the code.

A variable is declared using the statement Dim. You can declare several variables simultaneously, even different types, if you separate their names with commas. To determine the type of a variable with an explicit declaration, you can use either a corresponding keyword or a type-declaration sign after the name. If a type-declaration sign or a keyword is not used after the variable, then the Variant type is automatically assigned to it. For example:


Dim iMyVar                      ‘variable of Variant type
Dim iMyVar1 As Integer, iMyVar2 As Integer ‘
in both cases Integer type
Dim iMyVar3, iMyVar4 As Integer ‘in this case the first variable
                                ‘
is Variant, and the second is Integer

Variable types

LibreOffice Basic supports seven classes of variables:

  • Logical variables containing one of the values: TRUE or FALSE
  • Numeric variables containing numeric values. They can be integer, integer-positive, floating-point, and fixed-point
  • String variables containing character strings
  • Date variables can contain a date and/or time in the internal format
  • Object variables can contain objects of different types and structures
  • Arrays
  • Abstract type Variant

Logical variables – Boolean

Variables of the Boolean type can contain only one of two values: TRUE or FALSE. In the numerical equivalent, the value FALSE corresponds to the number 0, and the value TRUE corresponds to -1 (minus one). Any value other than zero passed to a variable of the Boolean type will be converted to TRUE; that is, converted to a minus one. You can explicitly declare a variable in the following way:

Dim MyBoolVar As Boolean

I did not find a special symbol for it. For an implicit declaration, you can use the DefBool statement. For example:

DefBool b 'variables beginning with b by default are the type Boolean

The initial value of the variable is set to FALSE. A Boolean variable requires one byte of memory.

Integer variables

There are three types of integer variables: Byte, Integer, and Long Integer. These variables can only contain integers. When you transfer numbers with a fraction into such variables, they are rounded according to the rules of classical arithmetic (not to the larger side, as it stated in the help section). The initial value for these variables is 0 (zero).

Byte

Variables of the Byte type can contain only integer-positive values in the range from 0 to 255. Do not confuse this type with the physical size of information in bytes. Although we can write down a hexadecimal number to a variable, the word “Byte” indicates only the dimensionality of the number. You can declare a variable of this type as follows:

Dim MyByteVar As Byte

There is no a type-declaration sign for this type. There is no the statement Def of this type. Because of its small dimension, this type will be most convenient for a loop index, the values of which do not go beyond the range. A Byte variable requires one byte of memory.

Integer

Variables of the Integer type can contain integer values from -32768 to 32767. They are convenient for fast calculations in integers and are suitable for a loop index. % is a type-declaration sign. You can declare a variable of this type in the following ways:


Dim MyIntegerVar%
Dim MyIntegerVar As Integer

For an implicit declaration, you can use the DefInt statement. For example:

DefInt i 'variables starting with i by default have type Integer

An Integer variable requires two bytes of memory.

Long integer

Variables of the Long Integer type can contain integer values from -2147483648 to 2147483647. Long Integer variables are convenient in integer calculations when the range of type Integer is insufficient for the implementation of the algorithm. & is a type-declaration sign. You can declare a variable of this type in the following ways:


Dim MyLongVar&
Dim MyLongVar As Long

For an implicit declaration, you can use the DefLng statement. For example:

DefLng l 'variables starting with l have Long by default

A Long Integer variable requires four bytes of memory.

Numbers with a fraction

All variables of these types can take positive or negative values of numbers with a fraction. The initial value for them is 0 (zero). As mentioned above, if a number with a fraction is assigned to a variable capable of containing only integers, LibreOffice Basic rounds the number according to the rules of classical arithmetic.

Single

Single variables can take positive or negative values in the range from 3.402823x10E+38 to 1.401293x10E-38. Values of variables of this type are in single-precision floating-point format. In this format, only eight numeric characters are stored, and the rest is stored as a power of ten (the number order). In the Basic IDE debugger, you can see only 6 decimal places, but this is a blatant lie. Computations with variables of the Single type take longer than Integer variables, but they are faster than computations with variables of the Double type. A type-declaration sign is !. You can declare a variable of this type in the following ways:


Dim MySingleVar!
Dim MySingleVar As Single

For an implicit declaration, you can use the DefSng statement. For example:

DefSng f 'variables starting with f have the Single type by default

A single variable requires four bytes of memory.

Double

Variables of the Double type can take positive or negative values in the range from 1.79769313486231598x10E308 to 1.0x10E-307. Why such a strange range? Most likely in the interpreter, there are additional checks that lead to this situation. Values of variables of the Double type are in double-precision floating-point format and can have 15 decimal places. In the Basic IDE debugger, you can see only 14 decimal places, but this is also a blatant lie. Variables of the Double type are suitable for precise calculations. Calculations require more time than the Single type. A type-declaration sign is #. You can declare a variable of this type in the following ways:


Dim MyDoubleVar#
Dim MyDoubleVar As Double

For an implicit declaration, you can use the DefDbl statement. For example:

DefDbl d 'variables beginning with d have the type Double by default

A variable of the Double type requires 8 bytes of memory.

Currency

Variables of the Currency type are displayed as numbers with a fixed point and have 15 signs in the integral part of a number and 4 signs in fractional. The range of values includes numbers from -922337203685477.6874 to +92337203685477.6874. Variables of the Currency type are intended for exact calculations of monetary values. A type-declaration sign is @. You can declare a variable of this type in the following ways:


Dim MyCurrencyVar@
Dim MyCurrencyVar As Currency

For an implicit declaration, you can use the DefCur statement. For example:

DefCur c 'variables beginning with c have the type Currency by default

A Currency variable requires 8 bytes of memory.

String

Variables of the String type can contain strings in which each character is stored as the corresponding Unicode value. They are used to work with textual information, and in addition to printed characters (symbols), they can also contain non-printable characters. I do not know the maximum size of the line. Mike Kaganski experimentally set the value to 2147483638 characters, after which LibreOffice falls. This corresponds to almost 4 gigabytes of characters. A type-declaration sign is $. You can declare a variable of this type in the following ways:


Dim MyStringVar$
Dim MyStringVar As String

For an implicit declaration, you can use the DefStr statement. For example:

DefStr s 'variables starting with s have the String type by default

The initial value of these variables is an empty string (“”). The memory required to store string variables depends on the number of characters in the variable.

Date

Variables of the Date type can contain only date and time values stored in the internal format. In fact, this internal format is the double-precision floating-point format (Double), where the integer part is the number of days, and the fractional is part of the day (that is, 0.00001157407 is one second). The value 0 is equal to 30.12.1899. The Basic interpreter automatically converts it to a readable version when outputting, but not when loading. You can use the Dateserial, Datevalue, Timeserial, or Timevalue functions to quickly convert to the internal format of the Date type. To extract a certain part from a variable in the Date format, you can use the Day, Month, Year, Hour, Minute, or Second functions. The internal format allows us to compare the date and time values by calculating the difference between two numbers. There is no a type-declaration sing for the Date type, so if you explicitly define it, you need to use the Date keyword.

Dim MyDateVar As Date

For an implicit declaration, you can use the DefDate statement. For example:

DefDate y 'variables starting with y have the Date type by default

A Date variable requires 8 bytes of memory.

Types of object variables

We can take two variables types of LibreOffice Basic to Objects.

Objects

Variables of the Object type are variables that store objects. In general, the object is any isolated part of the program that has the structure, properties, and methods of access and data processing. For example, a document, a cell, a paragraph, and dialog boxes are objects. They have a name, size, properties, and methods. In turn, these objects also consist of objects, which in turn can also consist of objects. Such a “pyramid” of objects is often called an object model, and it allows us, when developing small objects, to combine them into larger ones. Through a larger object, we have access to smaller ones. This allows us to operate with our documents, to create and process them while abstracting from a specific document. There is no a type-declaration sing for the Object type, so for an explicit definition, you need to use the Object keyword.

Dim MyObjectVar As Object

For an implicit declaration, you can use the DefObj statement. For example:

DefObj o 'variables beginning with o have the type Object by default

The variable of type Object does not store in itself an object but is only a reference to it. The initial value for this type of variables is Null.

Structures

The structure is essentially an object. If you look in the Basic IDE debugger, most (but not all) are the Object type. Some are not; for example, the structure of the Error has the type Error. But roughly speaking, the structures in LibreOffice Basic are simply grouped into one object variable, without special access methods. Another significant difference is that when declaring a variable of the Structure type, we must specify its name, rather than the Object. For example, if MyNewStructure is the name of a structure, the declaration of its variable will look like this:

Dim MyStructureVar As MyNewStructure

There are a lot of built-in structures, but the user can create personal ones. Structures can be convenient when we need to operate with sets of heterogeneous information that should be treated as a single whole. For example, to create a tPerson structure:


Type tPerson
  Name As String
  Age As Integer
  Weight As Double
End Type

The definition of the structure should go before subroutines and functions that use it.

To fill a structure, you can use, for example, the built-in structure com.sun.star.beans.PropertyValue:


Dim oProp As New com.sun.star.beans.PropertyValue
OProp.Name = “Age” ‘Set the Name
OProp.Value = “Amy Boyer” ‘
Set the Property

For a simpler filling of the structure, you can use the With operator.


Dim oProp As New com.sun.star.beans.PropertyValue
With oProp
  .Name = “Age” ‘Set the Name
  .Value = “Amy Boyer” ‘
Set the Property
End With

The initial value is only for each variable in the structure and corresponds to the type of the variable.

Variant

This is a virtual type of variables. The Variant type is automatically selected for the data to be operated on. The only problem is that the interpreter does not need to save our resources, and it does not offer the most optimal variants of variable types. For example, it does not know that 1 can be written in Byte, and 100000 in Long Integer, although it reproduces a type if the value is passed from another variable with the declared type. Also, the transformation itself is quite resource-intensive. Therefore, this type of variable is the slowest of all. If you need to declare this kind of variable, you can use the Variant keyword. But you can omit the type description altogether; the Variant type will be assigned automatically. There is no a type-declaration sign for this type.


Dim MyVariantVar
Dim MyVariantVar As Variant

For an implicit declaration, you can use the DefVar statement. For example:

DefVar v 'variables starting with v have the Variant type by default

This variables type is assigned by default to all undeclared variables.

Arrays

Arrays are a special type of variable in the form of a data set, reminiscent of a mathematical matrix, except that the data can be of different types and allow one to access its elements by index (element number). Of course, a one-dimensional array will be similar to a column or row, and a two-dimensional array will be like a table. There is one feature of arrays in LibreOffice Basic that distinguishes it from other programming languages. Since we have an abstract type of variant, then the elements of the array do not need to be homogeneous. That is, if there is an array MyArray and it has three elements numbered from 0 to 2, and we write the name in the first element of MyArray(0), the age in the second MyArray(1), and the weight in the third MyArray(2), we can have, respectively, the following type values: String for MyArray(0), Integer for MyArray(1), and Double for MyArray(2). In this case, the array will resemble a structure with the ability to access the element by its index. Array elements can also be homogeneous: Other arrays, objects, structures, strings, or any other data type can be used in LibreOffice Basic.

Arrays must be declared before they are used. Although the index space can be in the range of type Integer—from -32768 to 32767—by default, the initial index is selected as 0. You can declare an array in several ways:

Dim MyArrayVar(5) as string String array with 6 elements from 0 to 5
Dim MyArrayVar$(5) Same as the previous
Dim MyArrayVar(1 To 5) as string String array with 5 elements from 1 to 5
Dim MyArrayVar(5,5) as string Two-dimensional array of rows with 36 elements with indexes in each level
from 0 to 5
Dim MyArrayVar$(-4 To 5, -4 To 5) Two-dimensional strings array with 100 elements with indexes in each level
from -4 to 5
Dim MyArrayVar() Empty array of the Variant type

You can change the lower bound of an array (the index of the first element of the array) by default using the Option Base statement; that must be specified before using subprograms, functions, and defining user structures. Option Base can take only two values, 0 or 1, which must follow immediately after the keywords. The action applies only to the current module.

Learn more

If you are just starting out in programming, Wikipedia provides general information about the array, structure, and many other topics.

For a more in-depth study of LibreOffice Basic, Andrew Pitonyak’s website is a top resource, as is the Basic Programmer’s guide. You can also use the LibreOffice online help. Completed popular macros can be found in the Macros section of The Document Foundation’s wiki, where you can also find additional links on the topic.

For more tips, or to ask questions, visit Ask LibreOffice and OpenOffice forum.

3 steps to reduce a project's failure rate

It’s no secret that clear, concise, and measurable requirements lead to more successful projects. A study about large scale projects by McKinsey & Company in conjunction with the University of Oxford revealed that “on average, large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted.” The research also showed that some of the causes for this failure were “fuzzy business objectives, out-of-sync stakeholders, and excessive rework.”

Business analysts often find themselves constructing these requirements through ongoing conversations. To do this, they must engage multiple stakeholders and ensure that engaged participants provide clear business objectives. This leads to less rework and more projects with a higher rate of success.

And they can do it in an open and inclusive way.

A framework for success

One tool for increasing project success rate is the Open Decision Framework. The Open Decision Framework is an resource that can help users make more effective decisions in organizations that embrace open principles. The framework stresses three primary principles: being transparent, being inclusive, and being customer-centric.

Transparent. Many times, developers and product designers assume they know how stakeholders use a particular tool or piece of software. But these assumptions are often incorrect and lead to misconceptions about what stakeholders actually need. Practicing transparency when having discussions with developers and business owners is imperative. Development teams need to see not only the “sunny day” scenario but also the challenges that stakeholders face with certain tools or processes. Ask questions such as: “What steps must be done manually?” and “Is this tool performing as you expect?” This provides a shared understanding of the problem and a common baseline for discussion.

Business analysts often find themselves constructing these requirements through ongoing conversations. To do this, they must engage multiple stakeholders and ensure that engaged participants provide clear business objectives.

Inclusive. It is vitally important for business analysts to look at body language and visual cues when gathering requirements. If someone is sitting with arms crossed or rolling their eyes, then it’s a clear indication that they do not feel heard. A BA must encourage open communication by reaching out to those that don’t feel heard and giving them the opportunity to be heard. Prior to starting the session, lay down ground rules that make the place safe for all to speak their opinions and to share their thoughts. Listen to the feedback provided and respond politely when feedback is offered. Diverse opinions and collaborative problem solving will bring exciting ideas to the session.

Customer-centric. The first step to being customer-centric is to recognize the customer. Who is benefiting from this change, update, or development? Early in the project, conduct a stakeholder mapping to help determine the key stakeholders, their roles in the project, and the ways they fit into the big picture. Involving the right customers and assuring that their needs are met will lead to more successful requirements being identified, more realistic (real-life) tests being conducted, and, ultimately, a successful delivery.

When your requirement sessions are transparent, inclusive, and customer-centric, you’ll gather better requirements. And when you use the Open Decision Framework for running those sessions, participants feel more involved and empowered, and they deliver more accurate and complete requirements. In other words:

Transparent + Inclusive + Customer-Centric = Better Requirements = Successful Projects

8 Best Python IDEs for Linux Programmers

Python is a general-purpose programming language for building anything; from backend web development, data analysis, artificial intelligence to scientific computing. It can also be used for developing productivity software, games, desktop apps and beyond.

It’s easy to learn, has a clean syntax and indentation structure. And an IDE (Integrated Development Environment) can, to some extend, determine ones programming experience when it comes to learning or developing using any language.

Read Also: 18 Best IDEs for Programmers and Developers

There are many Python IDEs out there, in this article, we will list 8 Best Python IDEs for Linux. Whether you’re new to programming or an experienced developer, we have you covered.

1. PyCharm


PyCharm is a powerful, cross-platform, highly customizable and pluggable Python IDE, which integrates all developments tools in one place. It is feature rich and comes in community (free and open source) as well as professional editions.

It provides smart code completion, code inspections functionalities and has remarkable error highlighting and quick-fixes. It also ships in with automated code refactoring and excellent navigation capabilities.

PyCharm Python IDE

PyCharm Python IDE

Has built-in developer tools such as integrated debugger and test runner; Python profiler; a built-in terminal; integration with major VCS and built-in database tools and much more. It is very popular among Python programmers and designed for professional developers.

2. Wing Python IDE

Wing Python IDE is a highly customizable and flexible, professional Python IDE with a powerful debugger and intelligent editor. It enables for interactive Python development in a fast, accurate, and fun manner.

Some of its well know features include extremely powerful debugging capabilities, code navigation, integrated unit testing, remote development, and so much more. If you love using Vim, then Wing amazingly binds with Vim editor.

Wing Python IDE

Wing Python IDE

It has rich integration with App Engine, Django, PyQt, Flask, Vagrant and beyond. It supports project management and version control with Git, Mercurial, Bazaar, Subversion, and many others. It is also becoming popular among Python developers, and many users now prefer it to PyCharm.

3. Eric Python IDE

Eric is a featured-rich Python IDE, written in Python. It is based on the cross platform Qt UI toolkit, integrated with the highly flexible Scintilla editor control. It has unlimited number of editors.

It provides a configurable window layout, configurable syntax highlighting, source code auto-completion, source code call tips, source code folding, brace matching, error highlighting, and offers advanced search functionality including project wide search and replace.

Eric Python IDE

Eric Python IDE

Eric has an integrated class browser and web browser, integrated version control interface for Mercurial, Subversion and Git repositories as core plug-ins and so much more. One of its most important features, which lacks in many Python IDEs is an integrated source code documentation system.

4. PyDev For Eclipse

PyDev is an open source, feature-rich Python IDE for Eclipse. It supports Django integration, code completion, code completion with auto import, type hinting and code analysis.

Pydev Python IDE

Pydev Python IDE

It offers refactoring, a debugger, remote debugger, tokens browser, interactive console, unit test integration, code coverage and PyLint integration. It allows you to find references using (Ctrl+Shift+G) shortcut keys. You can use it for Python, Jython and IronPython development.

5. Spyders Scientific PYthon IDE

Spyder is a scientific Python IDE with many features for research, data analysis, and scientific package creation. It ships with a multi-language editor with function/class browser, code analysis features (with support for pyflakes and pylint), code completion, horizontal and vertical splitting as well as goto definition feature.

Spyder Python IDE

Spyder Python IDE

It has an interactive console, documentation viewer, variable explorer and a file explorer. Spyder allows for searching queries across multiple files in your project, with complete support for regular expressions.

6. Pyzo Python IDE

Pyzo is a simple, free and open-source IDE for Python. It employs conda, an OS-agnostic, system-level binary package manager and ecosystem. However, it works without any Python interpreter. It‘s main design goal is to be simple and highly interactive.

Pyzo Python IDE

Pyzo Python IDE

It is made up of an editor, a shell, and a assortment of useful standard tools such as a file browser, source structure, logger and an interactive help feature to help the programmer in various ways. It offers full unicode support in both editor and shell. And you can choose between different Qt themes to use.

7. GNU Emacs For Python Programming

Emacs is a free, extensible, customizable and cross platform text editor. Emacs already has out-of-the-box Python support via “python-mode”. If you’re an Emacs fan, you can build a complete IDE for Python Programming by integrating the packages listed in Python Programming In Emacs guide in the Emacs wiki.

Emacs Editor

Emacs Editor

8. Vim Editor

Vim is a popular, powerful, configurable and above all extensible text editor. It is fast and is often used as a Python development environment by many Linux users. To configure it as an IDE, you can start by using Python-mode, a plugin for developing Python applications in Vim.

Vim Editor

Vim Editor

VIM can be a pain to configure especially for new users, but once you get through it, you will have a perfect match (i mean Vim and Python). There are several extensions that you can use to setup a full-fledged, professional IDE for Python. Refer to the Vim documentation and Python wiki for more information.

Summary

An IDE can make the difference between a good and bad programming experience. In this article, we shared 8 Best Python IDEs for Linux. Have we missed any, let us know via the comment from below. Also let us know which IDE you are using currently for Python programming.

Get Windscribe VPN: Lifetime Pro Subscription

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘Get Windscribe VPN: Lifetime Pro Subscription’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/02/Windscribe-VPN.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

LibreOffice 6.0 Released – Install on RHEL/CentOS/Fedora and Debian/Ubuntu/Linux Mint

LibreOffice is an open source and much powerful personal productivity office suit for Linux, Windows & Mac, that provides feature rich functions for word document, data processing, spreadsheets, presentation, drawing, Calc, Math and much more. LibreOffice has large number of satisfied users across the globe with almost 120 million downloads as of now. It supports more than 110 languages and runs on all major operating systems.

The Document Foundation team proudly announced the first major release of LibreOffice 6.0 on January 31, 2018, is now available for all major platforms including Linux, Windows and Mac OS.

This new update features a large number of exciting new features, performance and improvements and is targeted to all kinds of users, but especially appealing for enterprise, early adopters and power users.

There are many other changes and features included in the newest LibreOffice 6.0 – for a complete list of new features, see the release announcement page.

LibreOffice 6.0 Requirements

  1. Kernel 2.6.18 or higher version
  2. glibc2 version 2.5 or higher version
  3. gtk version 2.10.4 or higher version
  4. Minimum 256MB and recommended 512MB RAM
  5. 1.55GB available Hard disk space
  6. Desktop (Gnome or KDE)

Install LibreOffice 6.0 on Linux


The installation instructions provided here are for LibreOffice 6.0 using language US English on a 64-Bit system. For 32-Bit systems, there will be minor differences in directory names, but the installation process is same and hope the installation instructions provide here are not so difficult.

Step 1: Downloading LibreOffice 6.0

Select the package for download based on your system bit (i.e. for a 32-bit or 64-bit) using Wget command.

For RHEL/CentOS/Fedora
# cd /tmp
---------------------------- On 32-bit Systems ---------------------------- # wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86/LibreOffice_6.0.0_Linux_x86_rpm.tar.gz
---------------------------- On 64-bit Systems ---------------------------- # wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz

Download LibreOffice 6.0 on CentOS 7

[[email protected] ~]# wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
--2018-02-01 01:11:08-- http://download.documentfoundation.org/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
Resolving download.documentfoundation.org (download.documentfoundation.org)... 89.238.68.185, 2a00:1828:a012:185::1
Connecting to download.documentfoundation.org (download.documentfoundation.org)|89.238.68.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz [following]
--2018-02-01 01:11:09-- https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/rpm/x86_64/LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz
Resolving ftp.gwdg.de (ftp.gwdg.de)... 134.76.12.6, 2001:638:60f:110::1:2
Connecting to ftp.gwdg.de (ftp.gwdg.de)|134.76.12.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213537364 (204M) [application/octet-stream]
Saving to: ‘LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz’
100%[=================================================================================================================================>] 21,35,37,364 310KB/s in 15m 35s
2018-02-01 01:26:46 (223 KB/s) - ‘LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz’ saved [213537364/213537364]
For Debian/Ubuntu/LinuxMint
---------------------------- On 32-bit Systems ---------------------------- $ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86/LibreOffice_6.0.0_Linux_x86_deb.tar.gz
---------------------------- On 64-bit Systems ---------------------------- $ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz

Download LibreOffice 6.0 on Ubuntu

tecmint ~ wget http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
--2018-02-01 11:57:23-- http://download.documentfoundation.org/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
Resolving download.documentfoundation.org (download.documentfoundation.org)... 89.238.68.185
Connecting to download.documentfoundation.org (download.documentfoundation.org)|89.238.68.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz [following]
--2018-02-01 11:57:23-- https://ftp.gwdg.de/pub/tdf/libreoffice/stable/6.0.0/deb/x86_64/LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz
Resolving ftp.gwdg.de (ftp.gwdg.de)... 134.76.12.6
Connecting to ftp.gwdg.de (ftp.gwdg.de)|134.76.12.6|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213964181 (204M) [application/octet-stream]
Saving to: ‘LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz’
LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz 100%[========================================================================================>] 204.05M 319KB/s in 15m 17s 2018-02-01 12:12:41 (228 KB/s) - ‘LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz’ saved [213964181/213964181]

Step 2: Removing Old LibreOffice or OpenOffice Versions

If any previously installed LibreOffice or OpenOffice versions you have, remove it using following command.

# yum remove openoffice* libreoffice* [on RedHat based Systems]
Remove Old LibreOffice 4 on CentOS

Remove Old LibreOffice 4 on CentOS

$ sudo apt-get remove openoffice* libreoffice* [On Debian based Systems]
Remove LibreOffice 4 on Ubuntu

Remove LibreOffice 4 on Ubuntu

Step 3: Extracting LibreOffice 6.0 Package

After downloading the LibreOffice 6.0 package, use tar command to extract it under /tmp directory or in a directory of your choice.

On RHEL/CentOS/Fedora
# tar -xvf LibreOffice_6.0.0_Linux_x86_rpm.tar.gz [On 32-Bit Systems] # tar -xvf LibreOffice_6.0.0_Linux_x86-64_rpm.tar.gz [On 64-Bit Systems] 
On Debian/Ubuntu/Linux Mint
$ tar -xvf LibreOffice_6.0.0_Linux_x86_deb.tar.gz [On 32-Bit Systems] $ tar -xvf LibreOffice_6.0.0_Linux_x86-64_deb.tar.gz [On 64-Bit Systems] 

Step 4: Installing LibreOffice 6.0 Package

After extracting the package, you will get a directory and under this there will be a sub-directory called RPMS. Now, run the following command to install it.

On RHEL/CentOS/Fedora
## For 32 Bit OS ##
# cd /tmp/LibreOffice_6.0.0.3_Linux_x86_rpm/RPMS/
# yum localinstall *.rpm
OR
# dnf install *.rpm [On Fedora 23+ versions]
## For 64 Bit OS ##
# cd /tmp/LibreOffice_6.0.0.3_Linux_x86-64_rpm/RPMS/
# yum localinstall *.rpm
OR
# dnf install *.rpm [On Fedora 23+ versions]

Installing LibreOffice 6.0 on CentOS 7

[[email protected] RPMS]# yum localinstall *.rpm
Dependencies Resolved
============================================================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================================================
Installing:
libobasis6.0-base x86_64 6.0.0.3-3 /libobasis6.0-base-6.0.0.3-3.x86_64 7.6 M
libobasis6.0-calc x86_64 6.0.0.3-3 /libobasis6.0-calc-6.0.0.3-3.x86_64 29 M
libobasis6.0-core x86_64 6.0.0.3-3 /libobasis6.0-core-6.0.0.3-3.x86_64 267 M
libobasis6.0-draw x86_64 6.0.0.3-3 /libobasis6.0-draw-6.0.0.3-3.x86_64 48 k
libobasis6.0-en-US x86_64 6.0.0.3-3 /libobasis6.0-en-US-6.0.0.3-3.x86_64 164 k
libobasis6.0-extension-beanshell-script-provider x86_64 6.0.0.3-3 /libobasis6.0-extension-beanshell-script-provider-6.0.0.3-3.x86_64 398 k
libobasis6.0-extension-javascript-script-provider x86_64 6.0.0.3-3 /libobasis6.0-extension-javascript-script-provider-6.0.0.3-3.x86_64 626 k
libobasis6.0-extension-mediawiki-publisher x86_64 6.0.0.3-3 /libobasis6.0-extension-mediawiki-publisher-6.0.0.3-3.x86_64 4.3 M
libobasis6.0-extension-nlpsolver x86_64 6.0.0.3-3 /libobasis6.0-extension-nlpsolver-6.0.0.3-3.x86_64 2.1 M
libobasis6.0-extension-pdf-import x86_64 6.0.0.3-3 /libobasis6.0-extension-pdf-import-6.0.0.3-3.x86_64 2.2 M
libobasis6.0-extension-report-builder x86_64 6.0.0.3-3 /libobasis6.0-extension-report-builder-6.0.0.3-3.x86_64 6.0 M
libobasis6.0-firebird x86_64 6.0.0.3-3 /libobasis6.0-firebird-6.0.0.3-3.x86_64 11 M
libobasis6.0-gnome-integration x86_64 6.0.0.3-3 /libobasis6.0-gnome-integration-6.0.0.3-3.x86_64 1.2 M
libobasis6.0-graphicfilter x86_64 6.0.0.3-3 /libobasis6.0-graphicfilter-6.0.0.3-3.x86_64 4.2 M
libobasis6.0-images x86_64 6.0.0.3-3 /libobasis6.0-images-6.0.0.3-3.x86_64 18 M
libobasis6.0-impress x86_64 6.0.0.3-3 /libobasis6.0-impress-6.0.0.3-3.x86_64 2.2 M
libobasis6.0-kde-integration x86_64 6.0.0.3-3 /libobasis6.0-kde-integration-6.0.0.3-3.x86_64 238 k
libobasis6.0-librelogo x86_64 6.0.0.3-3 /libobasis6.0-librelogo-6.0.0.3-3.x86_64 741 k
libobasis6.0-math x86_64 6.0.0.3-3 /libobasis6.0-math-6.0.0.3-3.x86_64 1.6 M
libobasis6.0-ogltrans x86_64 6.0.0.3-3 /libobasis6.0-ogltrans-6.0.0.3-3.x86_64 298 k
libobasis6.0-onlineupdate x86_64 6.0.0.3-3 /libobasis6.0-onlineupdate-6.0.0.3-3.x86_64 433 k
libobasis6.0-ooofonts x86_64 6.0.0.3-3 /libobasis6.0-ooofonts-6.0.0.3-3.x86_64 67 M
libobasis6.0-ooolinguistic x86_64 6.0.0.3-3 /libobasis6.0-ooolinguistic-6.0.0.3-3.x86_64 1.4 k
libobasis6.0-postgresql-sdbc x86_64 6.0.0.3-3 /libobasis6.0-postgresql-sdbc-6.0.0.3-3.x86_64 3.5 M
libobasis6.0-python-script-provider x86_64 6.0.0.3-3 /libobasis6.0-python-script-provider-6.0.0.3-3.x86_64 41 k
libobasis6.0-pyuno x86_64 6.0.0.3-3 /libobasis6.0-pyuno-6.0.0.3-3.x86_64 22 M
libobasis6.0-writer x86_64 6.0.0.3-3 /libobasis6.0-writer-6.0.0.3-3.x86_64 16 M
libobasis6.0-xsltfilter x86_64 6.0.0.3-3 /libobasis6.0-xsltfilter-6.0.0.3-3.x86_64 4.3 M
libreoffice6.0 x86_64 6.0.0.3-3 /libreoffice6.0-6.0.0.3-3.x86_64 4.5 M
libreoffice6.0-base x86_64 6.0.0.3-3 /libreoffice6.0-base-6.0.0.3-3.x86_64 63 libreoffice6.0-calc x86_64 6.0.0.3-3 /libreoffice6.0-calc-6.0.0.3-3.x86_64 63 libreoffice6.0-dict-en x86_64 6.0.0.3-3 /libreoffice6.0-dict-en-6.0.0.3-3.x86_64 24 M
libreoffice6.0-dict-es x86_64 6.0.0.3-3 /libreoffice6.0-dict-es-6.0.0.3-3.x86_64 4.1 M
libreoffice6.0-dict-fr x86_64 6.0.0.3-3 /libreoffice6.0-dict-fr-6.0.0.3-3.x86_64 6.4 M
libreoffice6.0-draw x86_64 6.0.0.3-3 /libreoffice6.0-draw-6.0.0.3-3.x86_64 63 libreoffice6.0-en-US x86_64 6.0.0.3-3 /libreoffice6.0-en-US-6.0.0.3-3.x86_64 16 k
libreoffice6.0-freedesktop-menus noarch 6.0.0-3 /libreoffice6.0-freedesktop-menus-6.0.0-3.noarch 30 M
libreoffice6.0-impress x86_64 6.0.0.3-3 /libreoffice6.0-impress-6.0.0.3-3.x86_64 66 libreoffice6.0-math x86_64 6.0.0.3-3 /libreoffice6.0-math-6.0.0.3-3.x86_64 63 libreoffice6.0-ure x86_64 6.0.0.3-3 /libreoffice6.0-ure-6.0.0.3-3.x86_64 38 M
libreoffice6.0-writer x86_64 6.0.0.3-3 /libreoffice6.0-writer-6.0.0.3-3.x86_64 65 Transaction Summary
============================================================================================================================================================================
Install 41 Packages
Total size: 579 M
Installed size: 579 M
Is this ok [y/d/N]: y
On Debian/Ubuntu/Linux Mint
## For 32 Bit OS ##
$ cd /tmp/LibreOffice_6.0.0.3_Linux_x86_deb/DEBS/
$ sudo dpkg -i *.deb
## For 64 Bit OS ##
$ cd /tmp/LibreOffice_6.0.0.3_Linux_x86-64_deb/DEBS/
$ sudo dpkg -i *.deb

Installing LibreOffice 6.0 on Ubuntu

[email protected] /tmp/LibreOffice_6.0.0.3_Linux_x86-64_deb/DEBS $ sudo dpkg -i *.deb
Selecting previously unselected package libobasis6.0-base.
(Reading database ... 263169 files and directories currently installed.)
Preparing to unpack libobasis6.0-base_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-base (6.0.0.3-3) ...
Selecting previously unselected package libobasis6.0-calc.
Preparing to unpack libobasis6.0-calc_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-calc (6.0.0.3-3) ...
Selecting previously unselected package libobasis6.0-core.
Preparing to unpack libobasis6.0-core_6.0.0.3-3_amd64.deb ...
Unpacking libobasis6.0-core (6.0.0.3-3) ...
...

Step 5: Starting LibreOffice 6.0

Once the installation process completes you will have LibreOffice icons in your desktop under Applications –> Office menu or start the application by executing the following command on the terminal.

# libreoffice6.0

Step 6: Screenshot of LibreOffice 6.0

Please see the attached screenshot of LibreOffice 6.0 application under my CentOS 7.0.

LibreOffice 6.0 Running on CentOS 7

LibreOffice 6.0 Running on CentOS 7

Step 7: Installing a Language Pack

If you would like to install LibreOffice in your preferred language, you should select your language pack for installation. The installation instructions can be fount at Language Pack section.

Enable Debugging Mode in SSH to Troubleshoot Connectivity Issues

In this article, we will show you how to turn on debugging mode while running SSH in Linux. This will enable you to see what actually unfolds when you execute an ssh command to connect to a remote Linux server using the verbose mode or debugging mode.

Read Also: 4 Ways to Speed Up SSH Connections in Linux

The ssh client’s -v switch allows you to run ssh in verbose mode, that prints debugging information about SSH connection progress, which is really useful for debugging connections, authentication, and any configuration problems. There are different levels of verbosity; using multiple -v flags increases the verbosity (maximum verbosity level is 3).

The following command will run SSH in first level of verbosity, which gives us lots of debugging information as shown.

[email protected] ~ $ ssh -v [email protected]
Sample Output
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g-fips 1 Mar 2016
debug1: Reading configuration data /home/aaronkilik/.ssh/config
debug1: /home/aaronkilik/.ssh/config line 18: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.56.10 [192.168.56.10] port 22.
debug1: Connection established.
debug1: identity file /home/aaronkilik/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/aaronkilik/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.56.10:22 as 'tecmint'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: compression: [email protected]
debug1: kex: client->server cipher: [email protected] MAC: compression: [email protected]
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:1778erqyug4tHJa7D6y/Ep4UWsUtNEOBSMaj32k9oO8
debug1: Host '192.168.56.10' is known and matches the ECDSA host key.
debug1: Found key in /home/aaronkilik/.ssh/known_hosts:8
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/aaronkilik/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.56.10 ([192.168.56.10]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending environment.
debug1: Sending env LC_PAPER = lg_UG.UTF-8
debug1: Sending env LC_ADDRESS = lg_UG.UTF-8
debug1: Sending env LC_MONETARY = lg_UG.UTF-8
debug1: Sending env LC_NUMERIC = lg_UG.UTF-8
debug1: Sending env LC_TELEPHONE = lg_UG.UTF-8
debug1: Sending env LC_IDENTIFICATION = lg_UG.UTF-8
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending env LC_MEASUREMENT = lg_UG.UTF-8
debug1: Sending env LC_NAME = lg_UG.UTF-8
Last login: Sat Jan 6 16:20:11 2018 from 192.168.56.1

When try to logout or exit the session, you will also see debugging messages as shown.

[[email protected] ~]$ exit
logout
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to 192.168.56.10 closed.
Transferred: sent 3392, received 3120 bytes, in 118.1 seconds
Bytes per second: sent 28.7, received 26.4
debug1: Exit status 0
debug1: compress outgoing: raw data 1159, compressed 573, factor 0.49
debug1: compress incoming: raw data 573, compressed 1159, factor 2.02

Next, you can enable additional (level 2 and 3) verbosity for even more debugging messages as shown.

$ ssh -vv [email protected]
$ ssh -vvv [email protected]

That’s It! For more usage of SSH, read these following related articles.

  1. How to Find All Failed SSH login Attempts in Linux
  2. How to Disable SSH Root Login in Linux
  3. SSH Passwordless Login Using SSH Keygen in 5 Easy Steps
  4. How to Disconnect Inactive or Idle SSH Connections in Linux

We hope you find this article helpful. You can ask any questions or share thoughts via the comment form below.

Become a Professional Python Programmer

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘Become a Professional Python Programmer’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/01/Professional-Python-Programming.jpg’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>