Compiling and Installing Software, Manually Or Automatically, File Comparison J

Total Page:16

File Type:pdf, Size:1020Kb

Compiling and Installing Software, Manually Or Automatically, File Comparison J Compiling and installing software, manually or automatically, file comparison J. M. P. Alves Laboratory of Genomics & Bioinformatics in Parasitology Department of Parasitology, ICB, USP Software for all ● Operating systems nowadays, differently from the old times, come with a large selection of user applications installed by default ● Those are programs that we use most of the time: office software, web browsers, image editors, music players, games, etc. etc. etc. ● Linux distros such as Ubuntu and Debian include most of the commonly used programs in their default download image ● However, the universe of software is huge, and very diverse; it is not possible to include even a small sample of every kind of application that exists out there ● That is where being able to install other programs comes in handy J.M.P. Alves 2 / 55 BMP0260 / ICB5765 / IBI5765 Software for all ● Until the 1990s, the Internet was not as available for the general public as it is today, so software had to be distributed or copied in tape or disks (magnetic, like floppy disks, or optical, like CDs), or even printed 5.25” floppy, 3.5” floppy, 8” floppy, 175 kB to 1.2 MB 360 or 720 kB 1.44 MB J.M.P. Alves 3 / 55 BMP0260 / ICB5765 / IBI5765 40 years of external storage By avaragado, at http://flickr.com/photos/89394041@N00/6960433672 J.M.P. Alves 4 / 55 BMP0260 / ICB5765 / IBI5765 The modern era ● With the Web, anyone with an Internet connection became able to find software ● Certain specialized collections of software, called repositories, have been set up and serve as centralized sources ● Classical example in biological software, the IUBio Software section (since 1989!): http://iubio.bio.indiana.edu/software/ ● Many of these repositories are dedicated to a certain kind of software, e.g. from a platform (CRAN for R, CPAN for Perl etc.) ● One can use a specific tool to get new software from a repository, or alternatively just use a Web browser – it depends on each repository ● Repositories can add safety: tested and examined by the maintainers J.M.P. Alves 5 / 55 BMP0260 / ICB5765 / IBI5765 The Linux contribution ● It is very often the case that a new program that you want to run depends on some other piece(s) of software ● These dependencies may be other independent programs (which might do something that your new program needs) or shared software libraries (which are collections of code that do not operate independently, but just “help” other programs) ● In either case, we can only use our new program if the dependencies are installed ● And the dependencies themselves might (and usually do) depend on other programs or libraries… ● As you’ve probably noticed by now, this can be quite a problem J.M.P. Alves 6 / 55 BMP0260 / ICB5765 / IBI5765 Dependency hell ● To solve this problem, a system of package management has been established, around 1997 to 1998, in different Linux distributions ● A package is a program plus all the other accessory files it needs (like eventual data files, man pages, specific libraries etc.) ● One of the creators of Debian GNU/Linux, Ian Murdock, has said: “What’s the single biggest advancement Linux has brought to the industry? Package Management –or, more specifically, the ability to install and upgrade software over the network in a seamlessly integrated fashion” ● Nowadays, everyone knows something similar to Linux repositories and package management: the app stores ● Managing a package means: install, remove, update – the package itself and all of its dependencies J.M.P. Alves 7 / 55 BMP0260 / ICB5765 / IBI5765 Managing packages ● Package management also ensures that all versions of the dependencies involved are compatible ● The program in a package is compiled and ready to run ● In the early days of Linux (remember, the kernel was written in 1991), two distros came up with their own way of packaging programs and then managing the resulting packages ● Those pioneers (and dominating to this day) were: ● RedHat, 1997, with the RPM system (RedHat Package Manager) ● Debian, 1998, with the DEB system ● Debian (which is the system installed on the remote server) is the direct ancestor of Ubuntu, one of the most used distros nowadays, so we will focus on package management using the DEB system J.M.P. Alves 8 / 55 BMP0260 / ICB5765 / IBI5765 Taking a look at the GUI ● Every big Linux distro has now its own repository, with many gigabytes of all kinds of software; for example, see: Debian packages: https://www.debian.org/distrib/packages Ubuntu packages: https://packages.ubuntu.com/focal/ ● In a desktop Ubuntu machine, you can use the Ubuntu Software program ● This program is the default way, in Ubuntu, for exploring the repository and managing packages – I myself only use it when the system is brand new, to install Synaptic (a much better package manager in my opinion… but that depends on taste) ● In Ubuntu Software you can see what is installed, as well as what is available for installation, which is a mouse click away ● You cannot install anything without an administrator password J.M.P. Alves 9 / 55 BMP0260 / ICB5765 / IBI5765 Back to the command-line ● Everything that can be done in the graphical apps can also be done in the nurturing and friendly environment of the CLI, of course ● The Debian family of distros all use the DEB file format ● The most popular CLI program for DEB package management is the APT system ● The system maintains a list of installed packages, as well as those available in the repositories registered (which can be several) ● The first thing to do is to update this information apt-get update ● This command will download all the latest software lists from the repositories J.M.P. Alves 10 / 55 BMP0260 / ICB5765 / IBI5765 Searching for packages ● There are tens of thousands of packages out there, therefore, searching is an important task apt-cache search regex ● The regular expression can be just simple words (e.g., likelihood), as always, and it will search the package names and descriptions ● Now that you have found some packages that look like they might be what you are looking for, its time to ask for more information apt-cache show ncbi-blast+ apt-cache showpkg ncbi-blast+ ● These two commands will show basic information about the package, as well as more detailed information such as dependencies J.M.P. Alves 11 / 55 BMP0260 / ICB5765 / IBI5765 Installing packages ● Having decided that a package does what you need, now it is time to install it (as root or, in Ubuntu, using sudo if you have admin powers) apt-get install raxml sudo apt-get install raxml (not available in Debian) ● The first command will fail if you are not root ● The second command uses a program, sudo, which allows one to run any command as another user (by default, root), using one’s own password ● Debian is very security-conscious, so it does not have sudo installed by default; Ubuntu, on the other hand, does not have a root user J.M.P. Alves 12 / 55 BMP0260 / ICB5765 / IBI5765 Upgrading packages ● Another reason why package management is very useful is that it deals with updates as well apt-get upgrade raxml apt-get upgrade ● As seen, one can give the name of the package to be updated, of just ask for all updates (second command) ● If the package that is installed has no newer version available, the user is told so; e.g.: muscle is already the newest version (1:3.8.31+dfsg-1). ● If one tries to upgrade a package that was not installed, apt-get tries to install it, after confirmation from the user: The following NEW packages will be installed: J.M.P. Alves 13 / 55 BMP0260 / ICB5765 / IBI5765 Removing packages ● Maybe that package whose description looked good does not really do what you wanted… ● Time to remove it: apt-get remove raxml apt-get purge raxml ● The second option is more drastic: it removes any specific configuration files as well as the program itself ● Leaving the configuration files could be useful in the future, specially if the system was using tailored configurations, different from the default J.M.P. Alves 14 / 55 BMP0260 / ICB5765 / IBI5765 Out of repository? ● Although the repositories have a lot of stuff, they are far from having everything ● Also, it is often the case that the distro’s repository has a rather old version of the program – that is a problem specially for Debian, which is a distro that cares a lot about software security and stability ● However, package files can be created by anyone, not just repository maintainers ● Many projects distribute DEB and/or RPM files so you can install them directly; e.g.: http://donate.libreoffice.org/pt/dl/deb-x86_64/5.3.3/pt-BR/ LibreOffice_5.3.3_Linux_x86-64_deb.tar.gz J.M.P. Alves 15 / 55 BMP0260 / ICB5765 / IBI5765 Out of repository? ● The greatest disadvantage of directly installing a package file is that there won’t be any automatic dependency resolution ● Nonetheless, the system will still check if dependencies are all available and are the correct versions – and refuse to install if not ● A more basic, “low-level” tool is used for directly installing packages: dpkg -i *.deb ● This command will install (upgrading, if there is an older version present) all DEB files present in the current directory ● The dpkg program is used by APT tools, by the way, so when you are using apt-get, you are indirectly using the less friendly dpkg J.M.P. Alves 16 / 55 BMP0260 / ICB5765 / IBI5765 What else? ● As you saw, installing programs in Linux is a breeze when they are in the distro’s repository ● When they are not, but there is an available package, things are still quite easy as long as there are no dependency issues: the program is already compiled and in an easy-to-install form ● What if there is neither? J.M.P.
Recommended publications
  • Towards Web-Based Delta Synchronization for Cloud Storage Services
    Towards Web-based Delta Synchronization for Cloud Storage Services He Xiao Zhenhua Li ∗ Ennan Zhai Tianyin Xu Tsinghua University Tsinghua University Yale University UIUC Yang Li Yunhao Liu Quanlu Zhang Yao Liu Tsinghua University Tsinghua University Microsoft Research SUNY Binghamton Abstract savings in the presence of users’ file edits [29, 39, 40]. Delta synchronization (sync) is crucial for network-level Unfortunately, today delta sync is only available for efficiency of cloud storage services. Practical delta sync PC clients and mobile apps, but not for the web—the most pervasive and OS-independent access method [37]. techniques are, however, only available for PC clients 0 and mobile apps, but not web browsers—the most per- After a file f is edited into a new version f by users, vasive and OS-independent access method. To under- Dropbox’s PC client will apply delta sync to automati- stand the obstacles of web-based delta sync, we imple- cally upload only the altered bits to the cloud; in contrast, Dropbox’s web interface requires users to manually up- ment a delta sync solution, WebRsync, using state-of- 0 1 the-art web techniques based on rsync, the de facto delta load the entire content of f to the cloud. This gap sig- sync protocol for PC clients. Our measurements show nificantly affects web-based user experiences in terms of that WebRsync severely suffers from the inefficiency of both sync speed and traffic cost. JavaScript execution inside web browsers, thus leading Web is a fairly popular access method for cloud stor- to frequent stagnation and even hanging.
    [Show full text]
  • The Linux Kernel Module Programming Guide
    The Linux Kernel Module Programming Guide Peter Jay Salzman Michael Burian Ori Pomerantz Copyright © 2001 Peter Jay Salzman 2007−05−18 ver 2.6.4 The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the Open Software License, version 1.1. You can obtain a copy of this license at http://opensource.org/licenses/osl.php. This book is distributed in the hope it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. The author encourages wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the Open Software License. In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Derivative works and translations of this document must be placed under the Open Software License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the material and source code available for your revisions. Please make revisions and updates available directly to the document maintainer, Peter Jay Salzman <[email protected]>. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you publish or distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the author and the Linux Documentation Project (LDP).
    [Show full text]
  • Beyond Compare User Guide
    Copyright © 2012 Scooter Software, Inc. Beyond Compare Copyright © 2012 Scooter Software, Inc. All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and the author make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Published: July 2012 Contents 3 Table of Contents Part 1 Welcome 7 1 What's. .N..e..w............................................................................................................................. 8 2 Standa..r.d.. .v..s. .P..r..o..................................................................................................................... 9 Part 2 Using Beyond Compare 11 1 Home. .V...i.e..w..........................................................................................................................
    [Show full text]
  • Using System Call Interposition to Automatically Create Portable Software Packages
    CDE: Using System Call Interposition to Automatically Create Portable Software Packages Philip J. Guo and Dawson Engler Stanford University April 5, 2011 (This technical report is an extended version of our 2011 USENIX ATC paper) Abstract as dependency hell. Or the user might lack permissions to install software packages in the first place, a common It can be painfully difficult to take software that runs on occurrence on corporate machines and compute clusters one person’s machine and get it to run on another ma- that are administered by IT departments. Finally, the chine. Online forums and mailing lists are filled with user (recalling bitter past experiences) may be reluctant discussions of users’ troubles with compiling, installing, to perturb a working environment by upgrading or down- and configuring software and their myriad of dependen- grading library versions just to try out new software. cies. To eliminate this dependency problem, we created As a testament to the ubiquity of software deployment a system called CDE that uses system call interposition to problems, consider the prevalence of online forums and monitor the execution of x86-Linux programs and pack- mailing list discussions dedicated to troubleshooting in- age up the Code, Data, and Environment required to run stallation and configuration issues. For example, almost them on other x86-Linux machines. The main benefits half of the messages sent to the mailing lists of two ma- of CDE are that creating a package is completely auto- ture research tools, the graph-tool mathematical graph matic, and that running programs within a package re- analysis library [10] and the PADS system for processing quires no installation, configuration, or root permissions.
    [Show full text]
  • Software to Compare Source Code
    Software to compare source code WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that WinMerge is an open source project, which means that the program is ​Download WinMerge · ​Screenshots · ​About · ​Documentation. Diff Checker is an online diff tool to compare text to find the difference between two text files.​PDF diff · ​Images · ​Sign up · ​Login. This is one of the reasons why many software developers use this source code compare tool. If you need a standalone of CodeCompare you. ExamDiff is a freeware Windows tool to visually compare text files. Version Control System that allows joint software development remotely over the Internet. Download Notepad++ Compare plugin for free. map of compared files; Moved line detection; Easy navigation between . Other Useful Business Software . Get latest updates about Open Source Projects, Conferences and. Devart Software. |. clicks. | () Code Compare is a powerful tool for file and folder comparison and merging. Code Compare is an Moved blocks of code are detected if source code is reordered in files. Difference. Buggy source codes will be a nagging problem throughout a developer's career In looking for software tools to use for code comparisons, you'll run into a lot of. Fast downloads of the latest free software! Code Compare can be integrated with all popular source control systems: TFS, SVN, Git, Mercurial. This article compares computer software tools that compare files, and in many cases directories .. WinDiff, No, No, No, No. WinMerge, Yes, No, Mercurial, Subversion, Visual Source Safe, Rational ClearCase, Yes, Yes.
    [Show full text]
  • Using Text Animated Transitions to Support Navigation in Document Histories
    Using Text Animated Transitions to Support Navigation in Document Histories Fanny Chevalier Pierre Dragicevic Anastasia Bezerianos Jean-Daniel Fekete Microsoft-INRIA INRIA Ecole´ Centrale Paris INRIA [email protected] [email protected] [email protected] [email protected] Figure 1. Detail of an animated transition between two revisions of the Wikipedia article User interfaces. ABSTRACT others [20]. Supporting change awareness is not only es- This article examines the benefits of using text animated sential for writing articles, but also for programming code transitions for navigating in the revision history of textual where changes can profoundly impact the quality of a pro- documents. We propose an animation technique for smoothly gram. Millions of people, such as programmers, researchers transitioning between different text revisions, then present or Wikipedia contributors, now rely on revision control sys- the Diffamation system. Diffamation supports rapid explo- tems [22] to perform their computer-based daily activity. ration of revision histories by combining text animated tran- sitions with simple navigation and visualization tools. We While the problem of storing and retrieving revisions has finally describe a user study showing that smooth text anima- been mostly solved from the technical standpoint [22], cur- tion allows users to track changes in the evolution of textual rent revision management systems only support two tasks: documents more effectively than flipping pages. retrieving a specified revision (by number, date, name etc.) and comparing two revisions by computing “diffs”. But with ACM Classification Keywords the popularity of sites where anyone can edit articles, users H.5.1 Multimedia Information Systems: [animations]; H.5.2 are often interested in more complex tasks, such as under- User Interfaces: [Graphical user interfaces (GUI)] standing the edition history of an article or keeping track of General Terms specific portions of an article they are contributing to.
    [Show full text]
  • Introduction to the Nix Package Manager
    Introduction Nix concepts Usage examples Conclusion Introduction to the Nix Package Manager Millian Poquet 2021-05-12 — Datamove (Inria) seminar 1 / 16 Introduction Nix concepts Usage examples Conclusion Why Nix? Control your software environment! Programs/libraries/scripts/configurations + versions Why is it important for us? Use/develop/test/distribute software Manually install many dependencies? No, just type nix-shell Shared env for whole team (tunable) and test machines Bug only on my machine? Means this is hardware or OS related Reproducible research Repeat experiment in exact same environment Introduce or test variation 2 / 16 Introduction Nix concepts Usage examples Conclusion What is Nix? Nix: package manager Download and install packages Shell into well-defined environment (like virtualenv) Transactional (rollback works) Cross-platform: Linux, macOS, Windows (WSL) Nix: programming language Define packages Define environments (set of packages) Functional, DSL NixOS: Linux distribution Declarative system configuration Uses the Nix language Transactional (rollback still works) 3 / 16 Introduction Nix concepts Usage examples Conclusion Nix in numbers Started in 2003 Nix 1: 10k commits, 28k C++ LOC Nixpkgs 2: 285k commits, 55k packages 3 1. https://github.com/NixOS/nix 2. https://github.com/NixOS/nixpkgs 3. https://repology.org/repositories/statistics 4 / 16 Introduction Nix concepts Usage examples Conclusion Presentation summary 2 Nix concepts 3 Usage examples 4 Conclusion 5 / 16 Introduction Nix concepts Usage examples Conclusion Traditional
    [Show full text]
  • Chapter 7 Package Management
    Chapter 7 Package Management CERTIFICATION OBJECTIVES 7.01 The Red Hat Package Manager ✓ Two-Minute Drill 7.02 More RPM Commands Q&A Self Test 7.03 Dependencies and the yum Command 7.04 More Package Management Tools fter installation is complete, systems are secured, filesystems are configured, and other initial setup tasks are completed, you still have work to do. Almost certainly before your system is in the state you desire, you will be required to install or remove packages. To make sure the right updates are installed, you need to know how to get a system working with ARed Hat Subscription Management (RHSM) or the repository associated with a rebuild distribution. To accomplish these tasks, you need to understand how to use the rpm and yum commands in detail. Although these are “just” two commands, they are rich in detail. Entire books have been dedicated to the rpm command, such as the Red Hat RPM Guide by Eric 344 Chapter 7 Package Management Foster-Johnson. For many, that degree of in-depth knowledge of the rpm command is no longer necessary, given the capabilities of the yum command and the additional package management tools provided in RHEL 7. CERTIFICATION OBJECTIVE 7.01 The Red Hat Package Manager One of the major duties of a system administrator is software management. New applications are installed. Services are updated. Kernels are patched. Without the right tools, it can be difficult to figure out what software is on a system, what is the latest update, and what applications depend on other software.
    [Show full text]
  • The Kdiff3 Handbook the Kdiff3 Handbook
    The KDiff3 Handbook The KDiff3 Handbook 2 Contents 1 Introduction 7 1.1 Yet Another Diff Frontend? . .7 1.2 Screenshots and Features . .7 1.3 More Features . .9 1.3.1 Line-By-Line And Char-By-Char Diff-Viewer . .9 1.3.2 See White-Space Differences At One Glance . .9 1.3.3 Triple-Diff . .9 1.3.4 Comfortable Merge Of Two Or Three Input Files . 10 1.3.5 And ... 10 2 File Comparison And Merge 11 2.1 Command-Line Options . 11 2.1.1 Comparing 2 files: . 11 2.1.2 Merging 2 files: . 11 2.1.3 Comparing 3 files: . 11 2.1.4 Merging 3 files: . 11 2.1.5 Special case: Files with the same name . 11 2.1.6 Commandline for starting a folder comparison or merge: . 12 2.1.7 Other command line options . 12 2.1.8 Ignorable command line options . 12 2.2 Open-Dialog . 13 2.3 Paste and Drop Input . 13 2.4 Comparing Files And Interpreting The Information In The Input Windows . 14 2.4.1 Info Line . 14 2.4.2 Coloring . 14 2.4.3 Summary Column . 15 2.4.4 Overview Column . 15 2.4.5 Manually Aligning Lines . 15 2.4.6 Manually Joining and Splitting Diff Sections . 15 2.5 Merging And The Merge Output Editor Window . 16 2.5.1 The Summary Column . 16 The KDiff3 Handbook 2.5.2 Setting The Current Group And Synchronising Merge And Diff View Position 16 2.5.3 Choosing Inputs A, B or C For Current Conflict And Editing .
    [Show full text]
  • Compare Text Files for Differences
    Compare Text Files For Differences monophyleticIs Denny caudal Carter or scary temps when silkily outsit or degrade some egressions flatways. Nonconforming versifies some? Joshua Sometimes usually daintier twattled Shepard some stainlesssoft-soaps or her equalised guerezas jestingly. superstitiously, but Barring that, stock must use whatever comparison tool around at least recognize beyond a difference has occurred. If you would need an extremely valuable to files compare for text differences! It also helps you to review code changes and get hold of patches. This cream a freeware downloadable Windows tool for visual file comparison. This script will compare page text files to one transcript and free the differences into her third text file. You so that there are broken into your life saving trick will get the video files compare images with numbers in the contents marked in addition to. ASCII representation of those bytes. So our software colors it with blue. What is a DIFF? As text compare two files in synch or forwards from a free account, you can be useful. Usually, the only way to know for sure if a file has become corrupted is when it is next used or opened. You would recommend implementing some new functionality? Click here we get the differences will find diff doc, text differences between them useful for the contents marked in the location pane is free to run into the tools. How would compare files using PowerShell Total Commander or AptDiff. Bring a powerful beautiful, image and file comparison app to fill desktop. How innocent I diff two text files in Windows Powershell Server Fault.
    [Show full text]
  • Syncro SVN Client 8.1
    Syncro SVN Client 8.1 Notice Copyright All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and SyncRO Soft SRL, was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. Syncro SVN Client | Contents | 5 Contents Chapter 1: Introduction..........................................................................................11 Chapter 2: Installation............................................................................................13 Installation
    [Show full text]
  • CDE: Run Any Linux Application On-Demand Without Installation
    CDE: Run Any Linux Application On-Demand Without Installation Philip J. Guo Stanford University [email protected] Abstract with compiling, installing, and configuring software and their myriad of dependencies. For example, the official There is a huge ecosystem of free software for Linux, but Google Chrome help forum for “install/uninstall issues” since each Linux distribution (distro) contains a differ- has over 5800 threads. ent set of pre-installed shared libraries, filesystem layout In addition, a study of US labor statistics predicts that conventions, and other environmental state, it is difficult by 2012, 13 million American workers will do program- to create and distribute software that works without has- ming in their jobs, but amongst those, only 3 million will sle across all distros. Online forums and mailing lists be professional software developers [24]. Thus, there are are filled with discussions of users’ troubles with com- potentially millions of people who still need to get their piling, installing, and configuring Linux software and software to run on other machines but who are unlikely their myriad of dependencies. To address this ubiqui- to invest the effort to create one-click installers or wres- tous problem, we have created an open-source tool called tle with package managers, since their primary job is not CDE that automatically packages up the Code, Data, and to release production-quality software. For example: Environment required to run a set of x86-Linux pro- grams on other x86-Linux machines. Creating a CDE • System administrators often hack together ad- package is as simple as running the target application un- hoc utilities comprised of shell scripts and custom- der CDE’s monitoring, and executing a CDE package re- compiled versions of open-source software, in or- quires no installation, configuration, or root permissions.
    [Show full text]