Softpanorama

May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Ubuntu Notes

News Recommended Links Installing software via apt    
Swap file Managing Services in Ubuntu      

Ubuntu is dumped down derivative of Debian, which looks to me like an oversimplified distribution. Nothing interesting. I am surprised at the amount of lemming-like praising of Ubuntu. In reality Ubuntu desktop is much weaker then OpenSuse.

The strongest part of Ubuntu is packages repositories, the advantage that it shares with Debian.  But that's about it as for strong points.  

Ubuntu designers just try to hide the complexity and default installation "kind of work" for complete novice. But if you try to change something or install new software you need to know as much if not more then on regular distributions like OpenSuse.  BTW, by default, sshd is not installed.  That means that is is weak even as client.

GUI is actually pretty weak, especially in configuration area. Much weaker then in OpenSuse (might be even weaker then in Fedora, although I am not sure).  There is nothing comparable with YaST on Ubuntu and that fact alone makes it a weaker distribution even by any Linux distribution comparison standards.

BTW Oracle ported YaST to Red Hat and I do not understand why Ubuntu can't do the same.

Also installed applications usually are not added to GUI menu.  And Linux is about using open source applications not just browsing the Web.

Patches sometimes break the system. For example I experienced a patch that prevents system from reaching runlevel 2. Machine was a toast after the patch and this is just one example.

Cleaning Ubuntu

Runlevels in Ubuntu is a mess (that's the trait it shares with Debian)

NEWS CONTENTS

Old News

[Mar 15, 2021] CentOS - RHEL 7 - How to Install GUI The Geek Diary

Mar 15, 2021 | www.thegeekdiary.com

Installing the environment group "Server with GUI"

1. Check the available environment groups :

# yum grouplist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Available Environment Groups:
   Minimal Install
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

2. Execute the following to install the environments for GUI.

# yum groupinstall "Server with GUI"
.......
Transaction Summary
====================================================
Install  199 Packages (+464 Dependent packages)
Upgrade               (   8 Dependent packages)

Total download size: 523 M
Is this ok [y/d/N]:

The above will install the GUI in RHEL 7, which by default get installed to text mode.

3. Enable GUI on system start up. In RHEL 7, systemd uses 'targets' instead of runlevels. The file /etc/inittab is no more used to change run levels. Issue the following command to enable the GUI on system start.

To set a default target :

# systemctl set-default graphical.target

To change the current target to graphical without reboot :

# systemctl start graphical.target

Verify the default target :

# systemctl get-default
graphical.target

4. Reboot the machine to verify that it boots into GUI directly.

# systemctl reboot
Installing core GNOME packages

"Server with GUI" installs the default GUI which is GNOME. In case if you want to install only core GNOME packages use :

# yum groupinstall 'X Window System' 'GNOME'
....
Transaction Summary
===========================================================
Install  104 Packages (+427 Dependent packages)
Upgrade               (   8 Dependent packages)

Total download size: 318 M
Is this ok [y/d/N]:


[Mar 15, 2021] Install-Convert A Minimal Installation Into GUI on CentOS-RHEL 6-7

Mar 15, 2021 | kapendra.com

Step 1: Install Gnome GUI

Run the following command to install GUI

For CentOS 7:

https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-1312971726265182&output=html&h=60&slotname=7232524359&adk=475810333&adf=4289060371&pi=t.ma~as.7232524359&w=468&lmt=1615834166&psa=0&format=468x60&url=https%3A%2F%2Fkapendra.com%2Finstall-convert-a-minimal-installation-into-gui-on-centosrhel-6-7%2F&flash=0&wgl=1&dt=1615834165915&bpp=3&bdt=5549&idt=275&shv=r20210309&cbv=r20190131&ptt=9&saldr=aa&abxe=1&prev_fmts=728x90%2C468x60&correlator=5214860735252&frm=20&pv=1&ga_vid=263473286.1615834166&ga_sid=1615834166&ga_hid=622691513&ga_fc=0&u_tz=-240&u_his=3&u_java=0&u_h=864&u_w=1536&u_ah=864&u_aw=1536&u_cd=24&u_nplug=3&u_nmime=4&adx=364&ady=1446&biw=1536&bih=762&scr_x=0&scr_y=0&eid=42530672%2C21066428%2C31060305&oid=3&pvsid=1400452504347324&pem=31&ref=https%3A%2F%2Fduckduckgo.com%2F&rx=0&eae=0&fc=640&brdim=1536%2C0%2C1536%2C0%2C1536%2C0%2C1536%2C864%2C1536%2C762&vis=1&rsz=%7C%7CoeEbr%7C&abl=CS&pfx=0&fu=8192&bc=31&ifi=3&uci=a!3&btvi=2&fsb=1&xpc=7Ex3Qs11m5&p=https%3A//kapendra.com&dtd=287

# yum group install "GNOME Desktop" "Graphical Administration Tools"
For RHEL 7:
# yum groupinstall "Server with GUI"
... ... ... Step 2: Make GUI Default Mode For Every Reboot

With the upgrade of Centos/RHEL 7 from CentOS/RHEL 6 concept of runlevel has been changed to systemd so run following command

For RHEL/CentOS 7:
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.targ

... ... ...

Step 3: Reboot the Server
# reboot
Few Short Cut Commands

GUI to CLI : Ctrl + Alt + F6
CLI to GUI : Ctrl + Alt + F1


Kapendra http://kapendra.com Love to write technical stuff with personal experience as I am working as a Sr. Linux Admin. and every day is a learning day and Trust me being tech geek is really cool.

[Mar 06, 2019] Can not install RHEL 7 on disk with existing partitions

Notable quotes:
"... In the case of the partition tool, it is too complicated for a common user to use so don't assume that the person using it is an idiot. ..."
May 12, 2014 | access.redhat.com
Can not install RHEL 7 on disk with existing partitions Latest response May 23 2014 at 8:23 AM Can not install RHEL 7 on disk with existing partitions. Menus for old partitions are grayed out. Can not select mount points for existing partitions. Can not delete them and create new ones. Menus say I can but installer says there is a partition error. It shows me a complicated menu that warns be what is about to happen and asks me to accept the changes. It does not seem to accept "accept" as an answer. Booting to the recovery mode on the USB drive and manually deleting all partitions is not a practical solution.

You have to assume that someone who is doing manual partitioning knows what he is doing. Provide a simple tool during install so that the drive can be fully partitioned and formatted. Do not try so hard to make tools that protect use from our own mistakes. In the case of the partition tool, it is too complicated for a common user to use so don't assume that the person using it is an idiot.

The common user does not know hardware and doesn't want to know it. He expects security questions during the install and everything else should be defaults. A competent operator will backup anything before doing a new OS install. He needs the details and doesn't need an installer that tells him he can't do what he has done for 20 years.

13 May 2014 8:40 PM PixelDrift.NET Support Community Leader

Can you give more details?

Are the partitions on the disk Linux partitions you want to re-use? eg. /home? or are they from another OS?

Is the goal to delete the partitions are re-use the space, or to mount the partitions in the new install?

Are you running RHEL 7 Beta or RHEL 7 RC?

22 May 2014 5:24 PM RogerOdle

I did manage to get it to work. It needed a bios partition. It seemed that I had to free it and create a new one. I do not know. I tried many things so I am not clear what ultimately made it work.

My history with installed does back to the 90s

  1. text based, tedious and need to be an expert
  2. gui's makes easier, on reinstall partition labels show where they were mounted before (improvement)
  3. partitions get UUID, gui shows drive numbers instead of mount lavels (worse)
  4. (since Fedora 18?) shows previous fedora install. Wants to do new install on other partitions. Unclear how to tell new install how to use old partitions. New requirement for bios partition not clearly presented. When failure to proceed is because there is no bios partition, no explaination is given, just a whine about there being some error but no help for how to resolve. (much worse).

Wish list:
1. Default configuration should put /var and /home on separate partitions. If installer sees these on separate partitions then it should provide an option to use them.
2. It should not be neccessary to manuall move partitions from an old installation to a new one. I do not know if I am typical but I never put more than one OS on a hard drive (execpt for VMs and that don't count). Hard drives are cheap so I put one and only one OS per drive. When I upgrade, I reformat and replace the root partition which cleans /etc and /usr. I also reformat and clean /var. I never keep anything that I want long term in /var that includes web sites (/var/www) and databases so that I can always discard /var on an update. This prevents propagating problems from one release to the next. On my systems, each release stands on its own. I would like the parition tool to recognize the existing partition scheme and provide a simple choice to reuse it. The only questions I want to answer are whether a particular partition should be reformatted.
3. I do not have much experience with the live iso's so maybe they already do this. The installer has way too intimidating for newbies. I am an engineer so I am used to complexity. The average user and the user's that Fedora needs to connect to long term are overwhelmed by the install process. They need an installer that does not ask any technical questions at all. They just want to plug it in and turn it on and it should just work like their TV just works. Maybe it should be an Entertainment release since these people typically do email, web surfing, write letters, play games and not much else.

[Feb 04, 2019] Red Hat Enterprise Linux 7 8.14. Installation Destination

Notable quotes:
"... Base Environments ..."
"... Kickstart Installations ..."
Jan 30, 2019 | access.redhat.com

8.13. SOFTWARE SELECTION

To specify which packages will be installed, select Software Selection at the Installation Summary screen. The package groups are organized into Base Environments . These environments are pre-defined sets of packages with a specific purpose; for example, the Virtualization Host environment contains a set of software packages needed for running virtual machines on the system. Only one software environment can be selected at installation time. For each environment, there are additional packages available in the form of Add-ons . Add-ons are presented in the right part of the screen and the list of them is refreshed when a new environment is selected. You can select multiple add-ons for your installation environment. A horizontal line separates the list of add-ons into two areas:

Figure 8.16. Example of a Software Selection for a Server Installation The availability of base environments and add-ons depends on the variant of the installation ISO image which you are using as the installation source. For example, the server variant provides environments designed for servers, while the workstation variant has several choices for deployment as a developer workstation, and so on. The installation program does not show which packages are contained in the available environments. To see which packages are contained in a specific environment or add-on, see the repodata/*-comps- variant . architecture .xml file on the Red Hat Enterprise Linux Installation DVD which you are using as the installation source. This file contains a structure describing available environments (marked by the <environment> tag) and add-ons (the <group> tag).

Important The pre-defined environments and add-ons allow you to customize your system, but in a manual installation, there is no way to select individual packages to install. If you are not sure what package should be installed, Red Hat recommends you to select the Minimal Install environment. Minimal install only installs a basic version of Red Hat Enterprise Linux with only a minimal amount of additional software. This will substantially reduce the chance of the system being affected by a vulnerability. After the system finishes installing and you log in for the first time, you can use the Yum package manager to install any additional software you need. For more details on Minimal install , see the Installing the Minimum Amount of Packages Required section of the Red Hat Enterprise Linux 7 Security Guide. Alternatively, automating the installation with a Kickstart file allows for a much higher degree of control over installed packages. You can specify environments, groups and individual packages in the %packages section of the Kickstart file. See Section 26.3.2, "Package Selection" for instructions on selecting packages to install in a Kickstart file, and Chapter 26, Kickstart Installations for general information about automating the installation with Kickstart. Once you have selected an environment and add-ons to be installed, click Done to return to the Installation Summary screen. 8.13.1. Core Network Services All Red Hat Enterprise Linux installations include the following network services:

Some automated processes on your Red Hat Enterprise Linux system use the email service to send reports and messages to the system administrator. By default, the email, logging, and printing services do not accept connections from other systems. You can configure your Red Hat Enterprise Linux system after installation to offer email, file sharing, logging, printing, and remote desktop access services. The SSH service is enabled by default. You can also use NFS to access files on other systems without enabling the NFS sharing service.

[Dec 05, 2018] How To Find The Package That Provides A File (Installed Or Not) On Ubuntu, Debian Or Linux Mint - Linux Uprising Blog

Nov 30, 2018 | www.linuxuprising.com

There are multiple ways of finding out to which package a particular file belongs to, on Ubuntu, Debian or Linux Mint. This article presents two ways of achieving this, both from the command line.

From the same series:


1. Using apt-file to find the package that provides a file (for repository packages, either installed or not installed)
apt-file indexes the contents of all packages available in your repositories, and allows you to search for files in all these packages.

That means you can use apt-file to search for files inside DEB packages that are installed on your system, as well as packages that are not installed on your Debian (and Debian-based Linux distributions, like Ubuntu) machine, but are available to install from the repositories. This is useful in case you want to find what package contains a file that you need to compile some program, etc.

apt-file cannot find the package that provides a file in case you downloaded a DEB package and installed it, without using a repository. The package needs to be available in the repositories for apt-file to be able to find it.

apt-file may not be installed on your system. To install it in Debian, Ubuntu, Linux Mint and other Debian-based or Ubuntu-based Linux distributions, use this command:

sudo apt install apt-file

This tool find the files belonging to a package by using a database, which needs to be updated in order to be able to use it. To update the apt-file database, use:
sudo apt-file update

Now you can use apt-file to find the DEB package that provides a file, be it a package you've installed from the repositories, or a package available in the repositories, but not installed on your Debian / Ubuntu / Linux Mint system. To do this, run:
apt-file search filename
Replacing filename with the name of the file you want to find.

This command will list all occurrences of filename found in various packages. If you know the exact file path and filename, you can get the search results to only list the package that includes that exact file, like this:

apt-file search /path/to/filename
For example, running only apt-file search cairo.h will list a large list search results:
$ apt-file search cairo.h
fltk1.3-doc: /usr/share/doc/fltk1.3-doc/HTML/group__group__cairo.html
ggobi: /usr/include/ggobi/ggobi-renderer-cairo.h
glabels-dev: /usr/include/libglbarcode-3.0/libglbarcode/lgl-barcode-render-to-cairo.h
glabels-dev: /usr/share/gtk-doc/html/libglbarcode-3.0/libglbarcode-3.0-lgl-barcode-render-to-cairo.html
gstreamer1.0-plugins-good-doc: /usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-cairo.html
guile-cairo-dev: /usr/include/guile-cairo/guile-cairo.h
guitarix-doc: /usr/share/doc/guitarix-doc/namespacegx__cairo.html
ipe: /usr/share/ipe/7.2.7/doc/group__cairo.html
libcairo-ocaml-dev: /usr/share/doc/libcairo-ocaml-dev/html/Pango_cairo.html
libcairo-ocaml-dev: /usr/share/doc/libcairo-ocaml-dev/html/type_Pango_cairo.html
libcairo2-dev: /usr/include/cairo/cairo.h
...

However, if you know the file path, e.g. you want to find out to which package the file /usr/include/cairo/cairo.h belongs to, run:
apt-file search /usr/include/cairo/cairo.h

This only lists the package that contains this file:
$ apt-file search /usr/include/cairo/cairo.h
libcairo2-dev: /usr/include/cairo/cairo.h

In this example, the package that includes the file I searched for ( /usr/include/cairo/cairo.h ) is libcairo2-dev .

apt-file may also be used to list all the files included in a package ( apt-file list packagename ), perform regex search, and more. Consult its man page ( man apt-file ) and help for more information ( apt-file --help ).

2. Using dpkg to find the package that provides a file (only for installed DEB packages - from any source)
dpkg can also be used to find out to which package a file belongs to. It can be faster to use than apt-file, because you don't need to install anything, and there's no database to update.

However, dpkg can only search for files belonging to installed packages, so if you're searching for a file in a package that's not installed on your system, use apt-file. On the other hand, dpkg can be used to find files belonging to packages that were installed without using a repository, a feature that's not available for apt-file.

To use dpkg to find the installed DEB package that provides a file, run it with the -S (or --search ) flag, followed by the filename (or pattern) you want to see to which package it belongs, like this:

dpkg -S filename

For example, to find out to which package the cairo.h file belongs to, use dpkg -S cairo.h :
$ dpkg -S cairo.h
libgtk2.0-dev:amd64: /usr/include/gtk-2.0/gdk/gdkcairo.h
libcairo2-dev:amd64: /usr/include/cairo/cairo.h
libpango1.0-dev: /usr/include/pango-1.0/pango/pangocairo.h
libgtk-3-dev:amd64: /usr/include/gtk-3.0/gdk/gdkcairo.h

Just like for apt-file, this may show multiple packages that have files containing the filename you're looking for. You can enter the full path of the file to get only the package that contains that specific file. Example:
$ dpkg -S /usr/include/cairo/cairo.h
libcairo2-dev:amd64: /usr/include/cairo/cairo.h

In this example, the Debian package that includes the file I searched for ( /usr/include/cairo/cairo.h ) is libcairo2-dev .

Other notable ways of finding the package a file belongs to is using the online search provided by Ubuntu and Debian:


For both, you'll also find options to find the packages that contain files named exactly like your input keyword, packages ending with the keyword, or packages that contains files whose names contain the keyword.

The Linux Mint package search website doesn't include an option to search for files inside packages, but you can use the Ubuntu or Debian online package search for packages that Linux Mint imports from Debian / Ubuntu.

[Aug 06, 2017] Some basics of MBR vs GPT and BIOS vs UEFI - Manjaro Linux

Aug 06, 2017 | wiki.manjaro.org
Some basics of MBR v/s GPT and BIOS v/s UEFI From Manjaro Linux Jump to: navigation , search Contents [ hide ]

MBR

A master boot record (MBR) is a special type of boot sector at the very beginning of partitioned computer mass storage devices like fixed disks or removable drives intended for use with IBM PC-compatible systems and beyond. The concept of MBRs was publicly introduced in 1983 with PC DOS 2.0.

The MBR holds the information on how the logical partitions, containing file systems, are organized on that medium. Besides that, the MBR also contains executable code to function as a loader for the installed operating system!usually by passing control over to the loader's second stage, or in conjunction with each partition's volume boot record (VBR). This MBR code is usually referred to as a boot loader.

The organization of the partition table in the MBR limits the maximum addressable storage space of a disk to 2 TB (232 × 512 bytes). Therefore, the MBR-based partitioning scheme is in the process of being superseded by the GUID Partition Table (GPT) scheme in new computers. A GPT can coexist with an MBR in order to provide some limited form of a backwards compatibility for older systems. [1]

GPT

GUID Partition Table (GPT) is a standard for the layout of the partition table on a physical hard disk, using globally unique identifiers (GUID). Although it forms a part of the Unified Extensible Firmware Interface (UEFI) standard (Unified EFI Forum proposed replacement for the PC BIOS), it is also used on some BIOS systems because of the limitations of master boot record (MBR) partition tables, which use 32 bits for storing logical block addresses (LBA) and size information.

MBR-based partition table schemes insert the partitioning information for (usually) four "primary" partitions in the master boot record (MBR) (which on a BIOS system is also the container for code that begins the process of booting the system). In a GPT, the first sector of the disk is reserved for a "protective MBR" such that booting a BIOS-based computer from a GPT disk is supported, but the boot loader and O/S must both be GPT-aware. Regardless of the sector size, the GPT header begins on the second logical block of the device. [2]


GPT uses modern logical block addressing (LBA) in place of the cylinder-head-sector (CHS) addressing used with MBR. Legacy MBR information is contained in LBA 0, the GPT header is in LBA 1, and the partition table itself follows. In 64-bit Windows operating systems, 16,384 bytes, or 32 sectors, are reserved for the GPT, leaving LBA 34 as the first usable sector on the disk. [3]

MBR vs. GPT

Compared with MBR disk, A GPT disk can support larger than 2 TB volumes where MBR cannot. A GPT disk can be basic or dynamic, just like an MBR disk can be basic or dynamic. GPT disks also support up to 128 partitions rather than the 4 primary partitions limited to MBR. Also, GPT keeps a backup of the partition table at the end of the disk. Furthermore, GPT disk provides greater reliability due to replication and cyclical redundancy check (CRC) protection of the partition table. [4]

The GUID partition table (GPT) disk partitioning style supports volumes up to 18 exabytes in size and up to 128 partitions per disk, compared to the master boot record (MBR) disk partitioning style, which supports volumes up to 2 terabytes in size and up to 4 primary partitions per disk (or three primary partitions, one extended partition, and unlimited logical drives). Unlike MBR partitioned disks, data critical to platform operation is located in partitions instead of unpartitioned or hidden sectors. In addition, GPT partitioned disks have redundant primary and backup partition tables for improved partition data structure integrity. [5]

BIOS

In IBM PC compatible computers, the Basic Input/Output System (BIOS), also known as System BIOS, ROM BIOS or PC BIOS, is a de facto standard defining a firmware interface. The name originated from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS software is built into the PC, and is the first software run by a PC when powered on.

The fundamental purposes of the BIOS are to initialize and test the system hardware components, and to load a bootloader or an operating system from a mass memory device. The BIOS additionally provides abstraction layer for the hardware, i.e. a consistent way for application programs and operating systems to interact with the keyboard, display, and other input/output devices. Variations in the system hardware are hidden by the BIOS from programs that use BIOS services instead of directly accessing the hardware. Modern operating systems ignore the abstraction layer provided by the BIOS and access the hardware components directly. [6]

UEFI

The Unified Extensible Firmware Interface (UEFI) (pronounced as an initialism U-E-F-I or like "unify" without the n) is a specification that defines a software interface between an operating system and platform firmware. UEFI is meant to replace the Basic Input/Output System (BIOS) firmware interface, present in all IBM PC-compatible personal computers. In practice, most UEFI images provide legacy support for BIOS services. UEFI can support remote diagnostics and repair of computers, even without another operating system.

The original EFI (Extensible Firmware Interface) specification was developed by Intel. Some of its practices and data formats mirror ones from Windows.] In 2005, UEFI deprecated EFI 1.10 (final release of EFI). The UEFI specification is managed by the Unified EFI Forum.


BIOS vs. UEFI

UEFI enables better use of bigger hard drives. Though UEFI supports the traditional master boot record (MBR) method of hard drive partitioning, it doesn't stop there. It's also capable of working with the GUID Partition Table (GPT), which is free of the limitations the MBR places on the number and size of partitions. GPT ups the maximum partition size from 2.19TB to 9.4 zettabytes.

UEFI may be faster than the BIOS. Various tweaks and optimizations in the UEFI may help your system boot more quickly it could before. For example: With UEFI you may not have to endure messages asking you to set up hardware functions (such as a RAID controller) unless your immediate input is required; and UEFI can choose to initialize only certain components. The degree to which a boot is sped up will depend on your system configuration and hardware, so you may see a significant or a minor speed increase.

Technical changes abound in UEFI. UEFI has room for more useful and usable features than could ever be crammed into the BIOS. Among these are cryptography, network authentication, support for extensions stored on non-volatile media, an integrated boot manager, and even a shell environment for running other EFI applications such as diagnostic utilities or flash updates. In addition, both the architecture and the drivers are CPU-independent, which opens the door to a wider variety of processors (including those using the ARM architecture, for example).

However, UEFI is still not widespread. Though major hardware companies have switched over almost exclusively to UEFI use, you still won't find the new firmware in use on all motherboards!or in quite the same way across the spectrum. Many older and less expensive motherboards also still use the BIOS system. [7]

MBR vs. GPT and BIOS vs. UEFI

Usually, MBR and BIOS (MBR + BIOS), and GPT and UEFI (GPT + UEFI) go hand in hand. This is compulsory for some systems (eg Windows), while optional for others (eg Linux).

http://en.wikipedia.org/wiki/GUID_Partition_Table#Operating_systems_support

http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DISKDEVCOMPAT

Converting from MBR to GPT

From http://www.rodsbooks.com/gdisk/mbr2gpt.html

One of the more unusual features of gdisk is its ability to read an MBR partition table or BSD disklabel and convert it to GPT format without damaging the contents of the partitions on the disk. This feature exists to enable upgrading to GPT in case the limitations of MBRs or BSD disklabels become too onerous!for instance, if you want to add more OSes to a multi-boot configuration, but the OSes you want to add require too many primary partitions to fit on an MBR disk.

Conversions from MBR to GPT works because of inefficiencies in the MBR partitioning scheme. On an MBR disk, the bulk of the first cylinder of the disk goes unused!only the first sector (which holds the MBR itself) is used. Depending on the disk's CHS geometry, this first cylinder is likely to be sufficient space to store the GPT header and partition table. Likewise, space is likely to go unused at the end of the disk because the cylinder (as seen by the BIOS and whatever tool originally partitioned the disk) will be incomplete, so the last few sectors will go unused. This leaves space for the backup GPT header and partition table. (Disks partitioned with 1 MiB alignment sometimes leave no gaps at the end of the disk, which can prevent conversion to GPT format!at least, unless you delete or resize the final partition.)

The task of converting MBR to GPT therefore becomes one of extracting the MBR data and stuffing the data into the appropriate GPT locations. Partition start and end points are straightforward to manage, with one important caveat: GPT fdisk ignores the CHS values and uses the LBA values exclusively. This means that the conversion will fail on disks that were partitioned with very old software. If the disk is over 8 GiB in size, though, GPT fdisk should find the data it needs.

Once the conversion is complete, there will be a series of gaps between partitions. Gaps at the start and end of the partition set will be related to the inefficiencies mentioned earlier that permit the conversion to work. Additional gaps before each partition that used to be a logical partition exist because of inefficiencies in the way logical partitions are allocated. These gaps are likely to be quite small (a few kilobytes), so you're unlikely to be able to put useful partitions in those spaces. You could resize your partitions with GNU Parted to remove the gaps, but the risks of such an operation outweigh the very small benefits of recovering a few kilobytes of disk space.

Switching from BIOS to UEFI

See: UEFI_-_Install_Guide#Switching_from_BIOS_to_UEFI

Note

Switching from [MBR + BIOS] to [GPT + UEFI]

Switching from BIOS to UEFI consists of 2 parts-

i. Conversion of disk from MBR to GPT. Side effects- Possible Data Loss, other OS installed on same disk may or may not boot (eg Windows)..

ii. Changing from BIOS to UEFI (and installing GRUB in UEFI mode). Side Effects- Other OS (can be both Linux and Windows) may or may not boot, with systemd you need to comment out the swap partition in /etc/fstab on a GPT partition table (if you use a swap partition).

After converting from MBR to GPT, probably your installed Manjaro wont work, so you would need to prepare beforehand what to do in such a case. (eg, chroot using a live disk and installing GRUB in UEFI way)

And Windows 8 if installed in MBR way, would need to be repaired/reinstalled in accordance to UEFI way.

Feedback

Questions, suggestions, critics? Please post here: [8]

[Aug 06, 2017] uefi - CentOS Kickstart Installation - Error populating transaction

Aug 06, 2017 | superuser.com

I am trying to perform a network unattended installation for my servers. They are all UEFI systems and I have gotten them to successfully boot over the network, load grub2, and start the kickstart script for installation.

It seems to reach the point where it runs yum update , although I am not entirely sure. It downloads the CentOS image from the mirror fine and then continually tells me error populating transaction 10 times and then quits.

I've run through this multiple times with different mirrors, so I don't think this is a bad image problem.

Here is an image of the error.

Here is the compiled code for my kickstart script.

install
url --url http://mirror.umd.edu/centos/7/os/x86_64/
lang en_US.UTF-8
selinux --enforcing
keyboard us
skipx

network --bootproto dhcp --hostname r2s2.REDACTED.com --device=REDACTED
rootpw --iscrypted REDACTED
firewall --service=ssh
authconfig --useshadow --passalgo=SHA256 --kickstart
timezone --utc UTC
services --disabled gpm,sendmail,cups,pcmcia,isdn,rawdevices,hpoj,bluetooth,openibd,avahi-daemon,avahi-dnsconfd,hidd,hplip,pcscd




bootloader --location=mbr --append="nofb quiet splash=quiet" 


zerombr
clearpart --all --initlabel
autopart



text
reboot

%packages
yum
dhclient
ntp
wget
@Core
redhat-lsb-core
%end

%post --nochroot
exec < /dev/tty3 > /dev/tty3
#changing to VT 3 so that we can see whats going on....
/usr/bin/chvt 3
(
cp -va /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
/usr/bin/chvt 1
) 2>&1 | tee /mnt/sysimage/root/install.postnochroot.log
%end
%post
logger "Starting anaconda r2s2.REDACTED.com postinstall"
exec < /dev/tty3 > /dev/tty3
#changing to VT 3 so that we can see whats going on....
/usr/bin/chvt 3
(



# eno1 interface
real=`ip -o link | awk '/REDACTED/ {print $2;}' | sed s/:$//`
sanitized_real=`echo $real | sed s/:/_/`


cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$sanitized_real
BOOTPROTO="dhcp"
DEVICE=$real
HWADDR="REDACTED"
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
DEFROUTE=yes
EOF



#update local time
echo "updating system time"
/usr/sbin/ntpdate -sub 0.fedora.pool.ntp.org
/usr/sbin/hwclock --systohc


rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm


# update all the base packages from the updates repository
if [ -f /usr/bin/dnf ]; then
  dnf -y update
else
  yum -t -y update
fi


# SSH keys setup snippet for Remote Execution plugin
#
# Parameters:
#
# remote_execution_ssh_keys: public keys to be put in ~/.ssh/authorized_keys
#
# remote_execution_ssh_user: user for which remote_execution_ssh_keys will be
#                            authorized
#
# remote_execution_create_user: create user if it not already existing
#
# remote_execution_effective_user_method: method to switch from ssh user to
#                                         effective user
#
# This template sets up SSH keys in any host so that as long as your public
# SSH key is in remote_execution_ssh_keys, you can SSH into a host. This only
# works in combination with Remote Execution plugin.

# The Remote Execution plugin queries smart proxies to build the
# remote_execution_ssh_keys array which is then made available to this template
# via the host's parameters. There is currently no way of supplying this
# parameter manually.
# See http://projects.theforeman.org/issues/16107 for details.









if [ -f /usr/bin/dnf ]; then
  dnf -y install puppet
else
  yum -t -y install puppet
fi

cat > /etc/puppet/puppet.conf << EOF


[main]
vardir = /var/lib/puppet
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = \$vardir/ssl

[agent]
pluginsync      = true
report          = true
ignoreschedules = true
ca_server       = foreman.REDACTED.com
certname        = r2s2.lab.REDACTED.com
environment     = production
server          = foreman.REDACTED.com

EOF

puppet_unit=puppet
/usr/bin/systemctl list-unit-files | grep -q puppetagent && puppet_unit=puppetagent
/usr/bin/systemctl enable ${puppet_unit}
/sbin/chkconfig --level 345 puppet on

# export a custom fact called 'is_installer' to allow detection of the installer environment in Puppet modules
export FACTER_is_installer=true
# passing a non-existent tag like "no_such_tag" to the puppet agent only initializes the node
/usr/bin/puppet agent --config /etc/puppet/puppet.conf --onetime --tags no_such_tag --server foreman.REDACTED.com --no-daemonize




sync

# Inform the build system that we are done.
echo "Informing Foreman that we are built"
wget -q -O /dev/null --no-check-certificate http://foreman.REDACTED.com/unattended/built?token=REDACTED
) 2>&1 | tee /root/install.post.log
exit 0

%end

[Jun 28, 2017] AptGet-Howto - Community Help Wiki

Notable quotes:
"... /etc/apt/sources.list ..."
"... /etc/apt/preferences ..."
"... /etc/apt/preferences ..."
"... /var/cache/apt/archives ..."
"... /var/cache/apt/archives ..."
"... not ..."
"... /etc/apt/apt.conf ..."
Jun 28, 2017 | help.ubuntu.com

The apt tool on Ubuntu 14.04 and above makes this very easy to list installed packages apt list --installed

All these commands except the search commands must be run as root or with superuser privileges, see sudo for more information.

Installation commands auto-apt

Maintenance commands

Removal commands

Search commands

For more information on apt-get, apt-cache and dpkg consult their manual pages by using the man command. These manuals will provide a wider scope of information in addition to all of the options that you can use with each program.

Typical usage example

I want to feel the wind in my hair, I want the adrenaline of speed. So let's install a racing game. But what racing games are available?

apt-cache search racing game

It gives me a lot of answers. I see a game named "torcs". Let's get some more information on this game.

apt-cache show torcs

Hmmm... it seems interesting. But is this game not already installed on my computer? And what is the available version? Which repository is it from (Universe or Main)?

apt-cache policy torcs

Ok, so now, let's install it!

apt-get install torcs

What is the command I must type in the console to launch this game? In this example, it's straightforward ("torcs"), but that's not always the case. One way of finding the name of the binary is to look at what files the package has installed in "/usr/bin". For games, the binary will be in "/usr/games". For administrative programs, it's in "/usr/sbin".

dpkg -L torcs | grep /usr/games/

The first part of the command display all files installed by the package "torcs" (try it). With the second part, we ask to only display lines containing "/usr/games/".

Hmmm, that game is cool. Maybe there are some extra tracks?

apt-cache search torcs

But I'm running out of space. I will delete the apt cache!

apt-get clean

Oh no, my mother asked me to remove all games from this computer. But I want to keep the configuration files so I can simply re-install it later.

apt-get remove torcs

If I want to also remove config files :

apt-get purge torcs

Setting up apt-get to use a http-proxy

These are three methods of using apt-get with a http-proxy.

Temporary proxy session

This is a temporary method that you can manually use each time you want to use apt-get through a http-proxy. This method is useful if you only want to temporarily use a http-proxy.

Enter this line in the terminal prior to using apt-get (substitute your details for yourproxyaddress and proxyport).

export http_proxy=http://yourproxyaddress:proxyport

If you normally use sudo to run apt-get you will need to login as root first for this to work unless you also add some explicit environment settings to /etc/sudoers, e.g.

Defaults env_keep = "http_proxy https_proxy ftp_proxy"

APT configuration file method

This method uses the apt.conf file which is found in your /etc/apt/ directory. This method is useful if you only want apt-get (and not other applications) to use a http-proxy permanently.

IconsPage/info.png On some installations there will be no apt-conf file set up. This procedure will either edit an existing apt-conf file or create a new apt-conf file.

gksudo gedit /etc/apt/apt.conf

Add this line to your /etc/apt/apt.conf file (substitute your details for yourproxyaddress and proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Save the apt.conf file.

BASH rc method

This method adds a two lines to your .bashrc file in your $HOME directory. This method is useful if you would like apt-get and other applications for instance wget, to use a http-proxy.

gedit ~/.bashrc

Add these lines to the bottom of your ~/.bashrc file (substitute your details for yourproxyaddress and proxyport)

http_proxy=http://yourproxyaddress:proxyport
export http_proxy

Save the file. Close your terminal window and then open another terminal window or source the ~/.bashrc file:

source ~/.bashrc

Test your proxy with sudo apt-get update and whatever networking tool you desire. You can use firestarter or conky to see active connections.

If you make a mistake and go back to edit the file again, you can close the terminal and reopen it or you can source ~/.bashrc as shown above.

source ~/.bashrc

How to login a proxy user

If you need to login to the Proxy server this can be achieved in most cases by using the following layout in specifying the proxy address in http-proxy. (substitute your details for username, password, yourproxyaddress and proxyport)

http_proxy=http://username:password@yourproxyaddress:proxyport

[Jul 19, 2013] Why I left Ubuntu

Everyday Linux User

13:47 Guest Post, MIR, UBUNTU 25 comments

Introduction
As some of you may know I have recently started a new blog called "My Ubuntu Blog" (www.myubuntublog.com).


Some of you may therefore be alarmed by the title of this post as leaving Ubuntu would be a strange decision to make having committed to a whole blog on the subject.


This article is actually a guest post from Paul Smith who left a well thought out and well written comment at the bottom of the article "Is Unity Bashing a hobby?".


Having read the comment I made the decision that it was too good to languish at the bottom of the post and so I asked for Paul's permission to publish his comment as a full article on this site, which is about Linux in general.


So without further ado here is Paul Smith's article "Why I Left Ubuntu".

Why I left Ubuntu
I was a great fan of Ubuntu and Canonical. I loved the pre-Unity versions of Ubuntu. I found the last Gnome 2 version to be especially functional and polished.

When Canonical switched to Unity on 11.04, I tried it and mostly liked it. Admittedly, there were some issues but I really liked the fact that Unity did a better job of maximizing the screen real-estate available to applications than any other desktop environment I have used previously. I was hopeful that the wrinkles in Unity would be worked out in the next version and was just about ready to pay for support from Canonical for all the systems in my home, mostly as a thank you, when Ubuntu 11.10 came out.

Ubuntu 11.10 seemed to be a lot buggier overall. Unity would do weird things to my applications and sometimes make the desktop unusable, forcing me to drop down to the shell to restart X. Pulse audio on this version was a dog and would simply not work with a sound card I'd been using successfully on Linux for about 5 years. I also discovered a number of newly introduced library compatibility issues that broke some of the commercial software I needed for my job.

The final straws for me was Canonical's decision not to include snd-pcm-oss as a kernel model (which I discovered with Ubuntu 12.04), breaking ALSA's OSS emulation, as well as the inclusion of Amazon search.

I now use Scientific Linux with the Trinity desktop since I really liked KDE 3. I find that I can easily get everything to work with that distribution and it is extremely stable. At this point the only thing I miss is the old Synaptic package manager and some features of the Debian package file format.

Why Mir concerns me

I do a significant amount of technical computing. I could care less if the same OS runs on both my desktop and my phone or tablet. I need a desktop that provides a good environment for code development, modeling, as well as a limited amount of CAD. I do this work on machines at work and, to a lesser extent, on my home systems. Until my phone or tablet can support a large amount of DRAM, many cores, and can plug into a keyboard and several large monitors, I don't see myself migrating away from a desktop. Canonical's direction appears to be to water down the desktop experience in order to make it more like the phone, the same bad mistake Microsoft made with Windows 8. Developing Mir is a result of this direction. I expect to use my desktop and phone for very different tasks and could care less if they use the same OS. As an user, Mir does not appear to offer me anything of real value.

Given the direction Canonical is taking, I am very concerned that NVIDIA and/or AMD will make X and Wayland second class citizens in favor of Mir. I would love to use Nouveau and similar open source drivers; however, they're not functional enough yet, either for the software I use for my job or for recreational use with the games. Some of these games purchased from Loki Games dating back to the late 1990′s.

I am thrilled that Steam and other game developers are beginning to fully embrace Linux and would like to spend some money on these games. Assuming these games are coded to work exclusively with Mir, then buying these Linux games is not an option unless other distributions such as Scientific Linux, Fedora, or Debian also migrate to Mir. For legacy games such as the ones produced by Loki Games, I am concerned that Mir may not emulate X well enough. Full support for legacy applications that depend on X will be more of an issue if the Linux community's effort to develop X emulation is split between Wayland and Mir.

Given the direction of the rest of the Linux ecosystem to standardize on Wayland as well as the concern over OpenGL support from NVIDIA and AMD, I really wish Canonical would have worked with the Wayland team to reach their goals rather than going their own direction. In my opinion, trying to make the same OS and applications work on both big iron and small phones or tablets is just silly at this point. Given this, fragmenting the Linux ecosystem right now to save a little power on low end devices is just plain stupid. I understand Canonical's argument for the other issues, such as, the desire for a more extensible input system; however, Canonical should have been able to work through these issues with the Wayland team.

About the author
Paul Smith is an electrical engineer with 23 years of post college experience. He wrote his first program on an MOS Technology KIM 1 in 1979. Paul has been using Linux since 1998.
Summary
I would like to thank Paul for allowing me to post this article and I hope you enjoyed it as much as I did.


If you think that you have an article worth posting on this site please feel free to get in touch at [email protected].

504957 sysv initscripts not started on boot

Binary package hint: upstart

On boot, upstart isn't starting the legacy sysv initscripts. The `runlevel` command returns 'unknown'.

I have a workaround:

axa@artemis:~$ runlevel
unknown

axa@artemis:~$ sudo telinit 2

axa@artemis:~$ runlevel

N 2

The debug information collected with ubuntu-bug is from before switching runlevels.

ProblemType: Bug
Architecture: i386
Date: Fri Jan 8 21:21:57 2010
DistroRelease: Ubuntu 9.10
ExecutablePath: /sbin/init
Package: upstart 0.6.3-11
ProcEnviron: PATH=(custom, no user)
ProcVersionSignature: Ubuntu 2.6.31-16.53-generic
SourcePackage: upstart
Uname: Linux 2.6.31-16-generic i686

Binary package hint: upstart

On boot, upstart isn't starting the legacy sysv initscripts. The `runlevel` command returns 'unknown'.

I have a workaround:
axa@artemis:~$ runlevel
unknown
axa@artemis:~$ sudo telinit 2
axa@artemis:~$ runlevel
N 2

The debug information collected with ubuntu-bug is from before switching runlevels.

ProblemType: Bug
Architecture: i386
Date: Fri Jan 8 21:21:57 2010
DistroRelease: Ubuntu 9.10
ExecutablePath: /sbin/init
Package: upstart 0.6.3-11
ProcEnviron: PATH=(custom, no user)
ProcVersionSignature: Ubuntu 2.6.31-16.53-generic
SourcePackage: upstart
Uname: Linux 2.6.31-16-generic i686

[Jan 10, 2010] By default sshd is not installed on Ubuntu. sshd can be installed using Synaptic

[Jan 10, 2010] SSHD can be used as remote instead of VNC

[Dec 13, 2009] VFSFTPD has option force_dot_files=YES

[Dec 13, 2009] Synaptic is OK tool for adding and removing packages.

[Dec 13, 2009] Apparix augmenting the command-line with directory bookmarks

[Dec 12, 2009] FTE editor package is available on Ubuntu

[Dec 12, 2009] MC on Ubuntu comes with wrong setting -- external editor (nano). To change go to Options and set internal editor

[Dec 12, 2009] Strange RC settings -- no K files

:/home/serg# cd /etc/init.d
:/etc/init.d# ls
acpid           dns-clean          procps             stop-bootlogd
acpi-support    gdm                pulseaudio         stop-bootlogd-single
alsa-utils      grub-common        rc                 udev
anacron         hal                rc.local           udev-finish
apparmor        halt               rcS                udevmonitor
apport          hwclock            README             udevtrigger
atd             hwclock-save       reboot             ufw
avahi-daemon    kerneloops         rsync              umountfs
binfmt-support  keyboard-setup     rsyslog            umountnfs.sh
bluetooth       killprocs          rsyslog-kmsg       umountroot
bootlogd        laptop-mode        saned              unattended-upgrades
brltty          module-init-tools  screen-cleanup     urandom
console-setup   networking         sendsigs           usplash
cron            network-manager    single             wpa-ifupdown
cups            ondemand           skeleton           x11-common
dbus            pcmciautils        speech-dispatcher
dmesg           pppd-dns           sreadahead

:/etc/init.d# cd /etc/rc1.d

:/etc/rc1.d# ls
K15pulseaudio    K20saned              K99laptop-mode  S70pppd-dns
K20acpi-support  K20speech-dispatcher  README          S90single
K20kerneloops    K74bluetooth          S30killprocs
K20rsync         K80cups               S70dns-clean

:/etc/rc1.d# cd /etc/rc2*

:/etc/rc2.d# ls
README                S50cups        S70dns-clean       S99grub-common
S20kerneloops         S50pulseaudio  S70pppd-dns        S99laptop-mode
S20speech-dispatcher  S50rsync       S90binfmt-support  S99ondemand
S25bluetooth          S50saned       S99acpi-support    S99rc.local
:/etc/rc2.d# cd /etc/rc3*

:/etc/rc3.d# ls
README                S50cups        S70dns-clean       S99grub-common
S20kerneloops         S50pulseaudio  S70pppd-dns        S99laptop-mode
S20speech-dispatcher  S50rsync       S90binfmt-support  S99ondemand
S25bluetooth          S50saned       S99acpi-support    S99rc.local
:/etc/rc3.d# cd /etc/rc5*

:/etc/rc5.d# ls
README                S50cups        S70dns-clean       S99grub-common
S20kerneloops         S50pulseaudio  S70pppd-dns        S99laptop-mode
S20speech-dispatcher  S50rsync       S90binfmt-support  S99ondemand
S25bluetooth          S50saned       S99acpi-support    S99rc.local

Hardening the Linux server

Servers -- whether used for testing or production -- are primary targets for attackers. By taking the proper steps, you can turn a vulnerable box into a hardened server and help thwart outside attackers. Learn how to secure SSH sessions, configure firewall rules, and set up intrusion detection to alert you to any possible attacks on your GNU/Linux server. Once you've gained a solid foundation in the basics of securing your server, you can build on this knowledge to further harden your systems.



Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 12, 2019