1
0
mirror of https://github.com/nbeaver/why-linux-is-better.git synced 2025-09-01 18:03:23 +02:00

Mainly notes on package management.

This commit is contained in:
Nathaniel Beaver
2014-09-18 11:28:45 -05:00
parent 3473eaddef
commit f1f85ee760

View File

@@ -144,7 +144,8 @@ and the legacy FAT16/FAT32/exFAT family.
Linux has drivers for almost file systems that can be legally mounted without paying royalties. Linux has drivers for almost file systems that can be legally mounted without paying royalties.
It also can also mount FAT and NTFS, It also can also mount FAT and NTFS,
despite Microsoft's `ongoing`_ `litigation`_ against Android manufacturers and `other companies`_ for their use of the Linux kernel's FAT drivers. despite Microsoft's lucrative patent licensing deals and `ongoing`_ `litigation`_
against Android manufacturers and `other companies`_ for their use of the Linux kernel's FAT drivers.
.. _ongoing: http://www.forbes.com/sites/timworstall/2013/12/06/german-patent-ruling-threatens-microsofts-windows-phone-earnings-from-android/ .. _ongoing: http://www.forbes.com/sites/timworstall/2013/12/06/german-patent-ruling-threatens-microsofts-windows-phone-earnings-from-android/
.. _litigation: http://gizmodo.com/the-secret-android-patents-that-microsoft-forces-oems-t-1591338496 .. _litigation: http://gizmodo.com/the-secret-android-patents-that-microsoft-forces-oems-t-1591338496
@@ -237,13 +238,18 @@ Third-party remote desktop software for Windows is `legally`_ `obligated`_ to no
.. _legally: http://social.technet.microsoft.com/Forums/windows/en-US/41e9e500-714a-443b-bff2-55f0d500d3d1/concurrent-sessions-remote-desktop-in-windows-7?forum=w7itproinstall .. _legally: http://social.technet.microsoft.com/Forums/windows/en-US/41e9e500-714a-443b-bff2-55f0d500d3d1/concurrent-sessions-remote-desktop-in-windows-7?forum=w7itproinstall
.. _obligated: http://tightvnc.10971.n7.nabble.com/Multiple-Unique-Sessions-td2060.html .. _obligated: http://tightvnc.10971.n7.nabble.com/Multiple-Unique-Sessions-td2060.html
On Linux, multiple instances of the X server are common, On Linux, `multiple local instances of the X server`_ are not unusual,
so that two different users may work remotely at the same time on the same machine, even with different desktop environments.
or alternately a `multiseat`_ configuration if the hardware is available. X sessions can be accessed remotely using e.g. `VNC`_ or `X over SSH`_.
Even on single-user machines this capability is useful to e.g. run two different desktop environments at the same time. It is common for two different users to work remotely at the same time on the same machine.
A `multiseat`_ configuration is also possible if the hardware is available.
Even on single-user machines this capability of the X server is useful to e.g. run two different desktop environments at the same time.
Also, sometimes Linux users will forego the X server entirely and log in from a virtual terminal (tty). Also, sometimes Linux users will forego the X server entirely and log in from a virtual terminal (tty).
This is important to be able to do if the X server crashes or cannot start. This is important to be able to do if the X server crashes or cannot start.
.. _multiple local instances of the X server: http://journalxtra.com/linux/desktop/multiple-desktops-on-one-linux-pc-now-thats-greedy/
.. _VNC: https://wiki.debian.org/VNCviewer
.. _X over SSH: https://www.debian.org/doc/manuals/debian-reference/ch07.en.html#_connecting_a_remote_x_client_via_ssh
.. _multiseat: https://wiki.archlinux.org/index.php/xorg_multiseat .. _multiseat: https://wiki.archlinux.org/index.php/xorg_multiseat
In Linux, the X server and kernel are separate, In Linux, the X server and kernel are separate,
@@ -270,9 +276,9 @@ and there are ways to run an X server on Windows or Android.
Configuration and software packaging. Configuration and software packaging.
+++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++
---------------- -----------------
Default software Default software.
---------------- -----------------
Linux distributions have many powerful tools installed by default. Linux distributions have many powerful tools installed by default.
A C compiler (usually ``gcc``), A C compiler (usually ``gcc``),
@@ -322,21 +328,39 @@ such as:
- licensing status of software, - licensing status of software,
- and sophisticated dependency management. - and sophisticated dependency management.
First, I really should mention that there is an open-source package manager for Windows, `Chocolatey`_, First, I would be remiss to mention that there is an open-source package manager for Windows, `Chocolatey`_,
which is under active development. that is under active development.
So far the repositories are not comprehensive; So far the Chocolatey repository is not as comprehensive as Linux repositories.
for example: as of September 2014, no `KeePassX`_ [#]_, no `Apophysis`_ [#]_, and no `GSAS/EXPGUI`_ [#]_. Here are some examples of packages which are not in the Chocolatey repository (as of September 2014).
Also, the Chocolatey development team acknowledges it does not have package moderation or package signing yet,
which will need to be resolved before anyone uses it for something important. - `KeePassX`_ password manager `* <http://chocolatey.org/packages?q=keepassx>`__
- `Apophysis`_ fractal flame editor `* <http://chocolatey.org/packages?q=apophysis>`__
- `xyscan`_ data extractor `* <https://chocolatey.org/packages?q=xyscan>`__
- `HEPHAESTUS`_ periodic table `* <https://chocolatey.org/packages?q=HEPHAESTUS>`__
- `EXPGUI`_ XRD analysis `* <https://chocolatey.org/packages?q=EXPGUI>`__
- `DiffPDF`_ PDF comparison `* <http://chocolatey.org/packages?q=DiffPDF>`__
- `Unison`_ file synchronizer `* <http://chocolatey.org/packages?q=Unison>`__
- `xchat` IRC client `* <http://chocolatey.org/packages?q=xchat>`__
- `OpenSCAD` solid 3D CAD modeller `* <http://chocolatey.org/packages?q=openscad>`__
.. _Chocolatey: http://chocolatey.org/ .. _Chocolatey: http://chocolatey.org/
.. _KeePassX: https://www.keepassx.org/ .. _KeePassX: https://www.keepassx.org/
.. _Apophysis: http://www.apophysis.org/ .. _Apophysis: http://www.apophysis.org/
.. _GSAS/EXPGUI: http://ncnr.nist.gov/xtal/software/downloads.html .. _xyscan: http://star.physics.yale.edu/~ullrich/xyscanDistributionPage/
.. _HEPHAESTUS: http://cars9.uchicago.edu/~ravel/software/doc/Hephaestus/hephaestus.html
.. _EXPGUI: https://subversion.xor.aps.anl.gov/trac/EXPGUI
.. _DiffPDF: http://www.qtrac.eu/diffpdf.html
.. _Unison: http://www.cis.upenn.edu/~bcpierce/unison/
.. _xchat: http://xchat.org/download/
.. _OpenSCAD: http://www.openscad.org/index.html
.. [#] http://chocolatey.org/packages?q=keepassx (This list isn't particularly significant, it's just software that has a Windows version that I would want to use.)
.. [#] http://chocolatey.org/packages?q=apophysis
.. [#] http://chocolatey.org/packages?q=GSAS Also, the Chocolatey development team acknowledges it `does not have package moderation or package signing`_ yet,
which is significant for overcoming Window's issue with `installing software from untrusted sources`_.
.. _does not have package moderation or package signing: https://chocolatey.org/about
.. _installing software from untrusted sources: `Malware.`_
Linux has many mature packaging systems, Linux has many mature packaging systems,
including Fedora's ``.rpm``-based ``yum`` package manager, including Fedora's ``.rpm``-based ``yum`` package manager,
@@ -348,24 +372,25 @@ they generally install packages that are cryptographically signed by the maintai
not opaque executables from a website which may not use secure HTTP. not opaque executables from a website which may not use secure HTTP.
Even inexperienced users can safely install and uninstall software if it is all from a trusted repository. Even inexperienced users can safely install and uninstall software if it is all from a trusted repository.
This is has other tangible benefits, Package managers have other benefits,
such as avoiding problems like DLL hell and its cousins while saving the disk space of duplicated libraries. such as avoiding dependency hell while saving the disk space of duplicated libraries.
Package managers have decent (though not perfect) security, Package managers have decent (though not perfect) security,
and provide the ability to upgrade all software at once with a single command (or button if you use one of the many available GUIs). and provide the ability to upgrade all software at once with a single command
Instead of requiring application developers to re-implement automatic updates, (or button if you use one of the many available GUIs).
Instead of requiring all application developers to re-implement automatic updates,
packaging makes secure, regular updates much more accessible and convenient for users and developers. packaging makes secure, regular updates much more accessible and convenient for users and developers.
There are other benefits, such as making backups easier by decoupling installed applications from stored personal files. Package mangers can make backups easier by decoupling installed applications from stored personal files.
Want to remember which programs you have installed without backing up every single binary? Want to remember which programs you have installed without backing up every single binary?
Just save the output of ``dpkg -L`` or its equivalent. Just save the output of ``dpkg -L`` or its equivalent as big long text file of installed packages.
If your backup fails or you just want to switch to a different Linux distribution,
you can easily get back your installed software with the package list,
a fresh Linux install, and a good internet connection.
Meanwhile, you can focus on keeping your home directory backed up with a combination of cloud storage and physical drives,
and your backup software doesn't need to run as root since it's only accessing your home directory.
Packaging also makes distributing programs with library dependencies easier, If your backup fails or you just want to switch to a different Linux distribution,
even if you don't make a full package. you can easily get back your installed software by feeding your package manager the package list.
All you need is a fresh Linux install and a good internet connection.
Meanwhile, you can keep your home directory backed up using cloud storage or physical drives (ideally both),
and the backup software doesn't need to run as root since it's only accessing your home directory.
Packaging also makes distributing scripts with library dependencies easier.
For example, installing ``python`` and ``matplotlib`` is simple on Linux, For example, installing ``python`` and ``matplotlib`` is simple on Linux,
but a `pain in the neck`_ on Windows. but a `pain in the neck`_ on Windows.