Thursday, November 14, 2019

Fedora 31 : Can be better? part 001.

I started using Fedora distribution several years ago after I tried several distros (Suse, RedHat 6, Debian, Gentoo and many more).
I was pleased with the test and speed.
I must admit that from the first used version 9 (Sulfur) and until now it is very changed and unknown for many users
That's why I decided to present in this series of mini-tutorials called Can be better? various lesser-known aspects that underlie it and its more precise use.
I will not abide by a predetermined order in the use of Fedora distribution.
I will only point to useful information for any Fedora user.

Let's start the first part of this tutorial named Can be better? part 001. with a brief introduction to the Wikipedia page and the official one.
An interesting aspect of Fedora configuration is the file sysctl.conf.
You can read the manual page with this command:
man 8 sysctl
Part of this file should contain these lines:
vm.overcommit_memory=2
vm.overcommit_ratio=100
kernel.exec-shield=1
This parameter named vm.overcommit_memory can be set this way:
0: heuristic overcommit (this is the default)
1: always overcommit, never check
2: always check, never overcommit
For this parameter named vm.overcommit_ratio any value to anything less than 100 is almost always incorrect.
The last parameter named kernel.exec-shield fix NX protection also called Data Execution Prevention (DEP), to prevent buffer stacks from taking down your machine.
You can check this with:
[root@desk mythcat]# grep nx /proc/cpuinfo 

Sunday, November 10, 2019

Fedora 31 : Use bash script to see all the permissions.

This tutorial will show you how to generate all the permissions using one file named file_test.
[mythcat@desk ~]$ mkdir my_bash_scripts
[mythcat@desk ~]$ cd my_bash_scripts/
[mythcat@desk my_bash_scripts]$ vim all_permissions.sh
[mythcat@desk my_bash_scripts]$ vim all_permissions.sh
[mythcat@desk my_bash_scripts]$ chmod +x all_permissions.sh
[mythcat@desk my_bash_scripts]$ ls
all_permissions.sh
Let's see the bash script file named all_permissions.sh:
#!/bin/sh
#loops through a chmod sequence

count_perm(){
        foo=1
        touch file_test
        while [ "$foo" -ne 7778 ];do
                echo $foo >> out
                chmod $foo file_test
                ls -gG >> out
                foo=$(($foo+1))
        done
}
count_perm
egrep -v '(all_permissions.sh)|(total)|(out)' out > results
echo "use command cat results to see permissions for file_test."

exit 0
You can run the script:
[mythcat@desk my_bash_scripts]$ ./all_permissions.sh 
...
Try 'chmod --help' for more information.
chmod: invalid mode: ‘7768’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘7769’
Try 'chmod --help' for more information.
use command cat results to see permissions for file_test.
[mythcat@desk my_bash_scripts]$ ls
all_permissions.sh  file_test  out  results
The out file show all permissions for files:
[mythcat@desk my_bash_scripts]$ cat out
...
7774
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsr-T. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1153701 Nov 10 18:23 r
7775
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsr-t. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1153853 Nov 10 18:23 r
7776
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsrwT. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1154005 Nov 10 18:23 r
7777
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsrwt. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1154157 Nov 10 18:23 r
The results file show the permissions:
[mythcat@desk my_bash_scripts]$ cat results 
...
7766
-rwsrwSrwT. 1       0 Nov 10 18:30 file_test
7767
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7768
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7769
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7770
-rwsrws--T. 1       0 Nov 10 18:30 file_test
7771
-rwsrws--t. 1       0 Nov 10 18:30 file_test
7772
-rwsrws-wT. 1       0 Nov 10 18:30 file_test
7773
-rwsrws-wt. 1       0 Nov 10 18:30 file_test
7774
-rwsrwsr-T. 1       0 Nov 10 18:30 file_test
7775
-rwsrwsr-t. 1       0 Nov 10 18:30 file_test
7776
-rwsrwsrwT. 1       0 Nov 10 18:30 file_test
7777
-rwsrwsrwt. 1       0 Nov 10 18:30 file_test

Fedora 31 : another FASM tutorial with Linux.

Today I wrote another tutorial about FASM and assembly language on my website.
Because I used the Fedora distro I add my tutorial here.
If you want to learn assembly programming for Windows O.S. or Linux with the Intel C.P.U. then you need the FASM tool and this manual.
Today I will show you how to create a file using my Fedora 31 Linux distro and FASM tool.
The name of this file will be new_file.txt.
The assembly program will use INT 0x08 to create the file.
entry _start

filename db "new_file.txt", 0

_start:
    ; create a new file
    mov rax, 8
    mov rbx, filename
    mov rcx, 0011
    int 0x80

    ; use descriptor
    push rax

    ; close the new file
    mov rax, 6
    pop rbx
    int 0x80

    call exit

exit:
    mov rax, 1
    mov rbx, 0
    int 0x80>
The program also set the file permissions in the rcx register.
Let's see some octal permissions:
    mov rcx, 000

----------. 1 mythcat mythcat       0 Nov 10 17:40 new_file.txt
    mov rcx, 0001

---------x. 1 mythcat mythcat       0 Nov 10 17:41 new_file.txt
    mov rcx, 0011

------x--x. 1 mythcat mythcat       0 Nov 10 17:43 new_file.txt

Saturday, November 9, 2019

Fedora 31 : The new Fedora 31 Linux distro.

I tested today the new Fedora 31.
This new Fedora comes with many features.
One is the Toolbox tool that offers a familiar RPM-based environment for developing and debugging software that runs fully unprivileged using Podman.
Fedora 31 significantly improves the speed of update installation, as packages are now compressed with zstd instead of xz.
This commands let you to upgrading Fedora 30 to Fedora 31.
[root@desk mythcat]# dnf upgrade --refresh
...
[root@desk mythcat]# dnf install dnf-plugin-system-upgrade
...
[root@desk mythcat]# dnf remove xorg-x11-drv-nvidia-340xx-libs-1:340.107-4.fc30.x86_64
...
[root@desk mythcat]# dnf system-upgrade download --releasever=31
...
[root@desk mythcat]# dnf system-upgrade reboot
You can see I remove the xorg driver because system-upgrade don't let me to update.

Monday, November 4, 2019

Fedora 30 : How to remove packages without dependency.

In this tutorial, I will show you how to remove packages without dependency.
I have this software named freecad.x86_64 and I want to remove it.
If I use the dnf tool then I got this output:
[root@desk mythcat]# dnf remove freecad.x86_64 
Dependencies resolved.
==============================================================================
 Package                       Arch   Version                  Repo      Size
==============================================================================
Removing:
 freecad                       x86_64 1:0.18.3-5.fc30.1        @updates 141 M
Removing unused dependencies:
 Coin3                         x86_64 3.1.3-24.fc30            @fedora   11 M
 OCE-foundation                x86_64 0.18.3-4.fc30            @fedora   11 M
 OCE-modeling                  x86_64 0.18.3-4.fc30            @fedora   58 M
 OCE-ocaf                      x86_64 0.18.3-4.fc30            @fedora   11 M
 OCE-visualization             x86_64 0.18.3-4.fc30            @fedora  6.7 M
 SoQt                          x86_64 1.5.0-26.fc30            @fedora  1.0 M
 assimp                        x86_64 3.3.1-19.fc30            @fedora  9.7 M
 boost-python3                 x86_64 1.69.0-8.fc30            @updates 473 k
 dotconf                       x86_64 1.3-20.fc30              @fedora   61 k
 espeak-ng                     x86_64 1.49.2-6.fc30            @fedora  6.6 M
...
The package is from Nightly FreeCAD, you can enable it if you want to install later:
[root@desk mythcat]# sudo dnf copr enable @freecad/nightly
To solve this issue you need to change this file:
[root@desk mythcat]# vim /etc/dnf/dnf.conf
From clean_requirements_on_remove=True to clean_requirements_on_remove=False.
The next commands will fix and remove the package:
[root@desk mythcat]# dnf clean all
86 files removed
[root@desk mythcat]# dnf remove freecad.x86_64 
Dependencies resolved.
==============================================================================
 Package            Architecture Version                 Repository      Size
==============================================================================
Removing:
 freecad            x86_64       1:0.18.3-5.fc30.1       @updates       141 M
Removing dependent packages:
 freecad-data       noarch       1:0.18.3-5.fc30.1       @updates       194 M

Transaction Summary
==============================================================================
Remove  2 Packages

Freed space: 335 M
Is this ok [y/N]: 
...

Sunday, November 3, 2019

Fedora 30 : Introduction to Qt Designer.

Qt Designer is the Qt tool for designing and building graphical user interfaces (GUIs) with Qt Widgets... see the Qt Designer manual webpage.
[root@desk mythcat]# dnf install qt5-designer.x86_64
...
Installed:
  qt5-designer-5.12.5-1.fc30.x86_64                                             
  qt5-qttools-libs-designercomponents-5.12.5-1.fc30.x86_64                      

Complete!
Let's start this tool with this command:
[mythcat@desk ~]$ designer-qt5 
Follow this video tutorial from my youtube channel:

You can preview your work with Ctrl+R keys.
After you finish with the project then save the file with this name: mytest.ui.
The next command to create your working python file named mytest.py.
Use this command with the -x option creates the main section to the my.py file that will allow us to test quickly whether the GUI looks as we intended.
[mythcat@desk ~]$ pyuic5 -x  mytest.ui -o mytest.py
Now you can run it to see the output:
[mythcat@desk ~]$ python3  mytest.py

Fedora 30 : About Simple Screen Recorder tool.

The Simple Screen Recorder tool can be easily installed on Fedora 30 and provide a GUI interface for recording screen with audio input. Use the dnf tool to install it:
[root@desk mythcat]# dnf install simplescreenrecorder.x86_64
...
Installed:
  simplescreenrecorder-0.3.11-7.fc30.x86_64                                   

Complete!
I used the LXDE Desktop Environment, see the command to identify the running desktop environment:
[mythcat@desk ~]$ echo $XDG_CURRENT_DESKTOP
LXDE
The tool can be found on Fedora main menu: Sound & Video, see the screenshot:

The tool start with this windows screen, you need to press the Continue button:

The next steps comes with configuration area for your video recorder.
I set and save my new Input profile to record an screen area.
You can use a rectangle, change the size from left to right or select the window to define the area for record video.
I change the Audio input to use my microphone.

The next step let you to set the file , video and audio settings for output. I let all with default settings.
The last step let you to see informations , preview and set the hotkeys.
I can use keyboard to start and stop recorder.