What is apt and aptitude in Ubuntu?
I’ve been blindly copy pasting code that contains these keywords to install programs and having migrated from Windows, I don’t quite understand what they mean. Can anyone explain them and their significance with their similarities/differences? Also, I would like to know how do you know the answer to this question? I mean, since I am learning to use Ubuntu now from barely any prior experience, how should I have know this answer? Where should I have looked for it, apart from Googling, which I tried only to find answers not satisfying/clear enough.
2 Answers 2
As Garry says, they’re applications that install and remove software from Ubuntu’s software repositories, amongst other tasks. If you’ve no idea what that means, let’s step back one further:
- Software (like Firefox, GIMP, xchat, etc) is compiled and then packaged into *.deb files.
- These debs are essentially installers. They contain all the files that get copied into the system as well as scripts that allow it to depend on (or conflict with) other known packages.
- If you install Firefox from a package, apt and dpkg (the applications that processes the dependencies) will make sure you have its dependencies installed first and if you haven’t, it’ll grab those packages too.
- Packages are stored in online repositories as big lists.
- Apt is the tool (or set of tools) that downloads all these lists from various sources, combines them and allows you to select certain packages for installation.
- The benefit to all this is you can install a lot of software without having to hunt for it. More than that, the software in the official Ubuntu repositories is maintained so that if security fixes are released, they’re applied and a new package is created. When apt next checks for updates, it sees the new version and you’re prompted to download it.
I won’t say apt-get/aptitude are useless because they’re not, they’re both very powerful utilities and like a lot of CLI-vs-GUI comparisons, if you know how to use them, they’re a good deal faster than the Software Center.
But punching in random commands without knowing what to expect is a recipe for disaster. It only takes one bad/clumsey person to suggest a destructive command and you’ll nuke your system. If you don’t know what something’s going to do either:
The command line in Linux systems is a good few hundred thousand times more powerful than it’s Windows counterpart. You have to treat it with respect or it will bite your legs off.
What is aptitude linux
Aptitude is an Ncurses and command-line based front-end to numerous Apt libraries, which are also used by Apt, the default Debian package manager. Aptitude is text based and run from a terminal.
- a mutt-like syntax for matching packages in a flexible manner
- mark packages as «automatically installed» or «manually installed» so that packages can be auto-removed when no longer required (feature available in Apt, too, since quite a few Debian release)
- preview of actions about to be taken with different colors marking different actions
- persistence of user actions (similar to dselect)
- the ability to interactively retrieve and display the Debian changelog of all available official packages
- apt-like (i.e. apt-get and apt-cache) command line mode («aptitude install foo»)
- Score-based dependency resolver which is more suitable for interactive dependency resolution with additional hints from the user like «I don’t want that part of the solution but keep that other part of the solution for your next try». Apt’s dependency resolver on the other hand is optimized for good «one shot» solutions.
The primary command is «aptitude», as is the name of its primary Debian package.
Aptitude User Manual
- Online: The manual for the latest version of aptitude is usually available (in English) on the Debian website.
- On your local system:
- If you have the package aptitude-doc-en installed (other languages are available), you can find an HTML manual for your installed version in /usr/share/doc/aptitude/html/en/index.html (change path for other languages as appropriate).
- If you have just aptitude installed (e.g. for disk space reasons), a plain text variant of the user manual is still available at /usr/share/doc/aptitude/README.
Interactive Use
To run interactively, enter the following from a terminal emulator:
- F10 or Ctrl-T to access the menu.
- ‘?’ for help
- The ‘up’, ‘down’, ‘left’, ‘right’ keys to navigate.
- The ‘Enter’ key to select or open and close a single level
- The bracket keys (‘[‘ and ‘]’) to open and close levels recursively
- The ‘+’ or ‘-‘ key to install/update or remove a package
- The ‘g’ key to preview/confirm actions
- ‘q’ to quit – this also closes the currently open window (‘g’ goes forward, ‘q’ goes back)
- Forward and backward slash (‘/’ and ‘\’) for searching forward or backward.
The common use of aptitude in TUI (text user interface) is; run aptitude; press ‘u’ (update the lists of available packages); press ‘U’ (Mark all upgradable packages to be upgraded); (search/select some stuff to install, is optional); press ‘g’ (to see the pending actions and modify if needed); press ‘g’ (again, to start the download).
Some time when you need to resolve conflicts, you discover that you made a mistake; you can easily use ‘Cancel pending actions’ in the ‘Actions’ menu so that you can re-select.
- cursor keys or vi style j/k to select actions or action groups,
- ‘a’ to explicitly insist on an action (use again to go back to no specific decision)
- ‘r’ to reject an action (use again to go back to no specific decision)
- dot (‘.’) to show the next proposed dependency resolution
- comma (‘,’) to show the previous proposed dependency resolution
- exclamation mark (‘!’) to accept the currently shown dependency resolution
- ‘g’ again to go ahead and execute the pending actions
- ‘q’ to go back to the previous view
See Accessing package information for understanding the letters in the package synopsis line (e.g., ‘i’ means «will be installed», ‘p’ means «not installed», etc.)
Commandline Use
Functions only useful as root
You can also use aptitude in the same manner as apt-get:
Functions useful for every user
Search for packaging containing foo :
Personally, I still use apt-cache search foo to perform a search – aptitude search foo is slower. But you should try the aptitude search foo way. You should discover that the output is a bit different from apt-cache, in some cases, it may be useful to search for a package to see if it is already installed.
showing if a specific package is installed :
How to upgrade your distribution
Upgrading from one stable release to the next (e.g. Lenny to Squeeze) is done by following the release notes for your architecture. For most people with 32 bit systems that means the Release Notes for Intel x86. For most with 64 bit systems that means the Release Notes for AMD64.
Using full-upgrade in the regular course of events is no longer the recommended practice (unless you are running sid, in which case you should not need to be reading this.)
Example for upgrading from, e.g., etch 4.0r1 to 4.0r2 . etc., or applying security upgrades:
# aptitude update # aptitude safe-upgrade
aptitude command in Linux with examples
aptitude command in Linux package system opens up a highly built-in interface to interact with the package manager of the machine. It is the control panel of programs and packages in Windows. You can install, upgrade and remove your packages using this well-built interface. Also, the actions can be performed using the command-line(similar to apt-get command) or the visual interface.
Installation:
- For Non-Root Users:
- For Root Users:
After running the command, the terminal will open up the interactive interface.
Important Usage of aptitude command:
- Viewing packages and sub-packages:“-“ at the beginning of a packages means, it has got sub-packages and you can view all of them and check out.
- Looking at package descriptions: One can perform various operations including Installations, upgrading and removing packages by selecting the options in the menu panel.
- Any command-line argument can be performed on the terminal, only if root access is provided to the system. To give root-user access to your aptitude terminal, you might exit the terminal and log in to the interface as a root user, or click on the Become root. Provide the credentials and start working again.
Command-line Actions: If none is specified then aptitude command will enter into the interactive mode and following actions can be performed using the command-line interface.
- install : To install or upgrade the packages. Syntax:
aptitude install package_name
aptitude remove package_name
aptitude purge package_name
aptitude hold package_name
Example:
- showsrc : To display detailed info about a source package (apt wrapper).
- versions : To display the versions of specified packages.
- clean : To erase downloaded package files.
- autoclean : To erase old downloaded package files. Syntax:
Example:
- changelog : To view a package’s changelog.
- download : To download the .deb file for a package (apt wrapper).
- source : To download source package (apt wrapper).
- reinstall : To reinstall a currently installed package.
- why : To get the explanation why a particular package should be installed.
- why-not : To get the explanation why a particular package cannot be installed.
- add-user-tag : To add user tag to packages/patterns.
- remove-user-tag : To remove user tag from packages/patterns.
- -D, –show-deps : It is used for the commands which are used to install or remove the packages.
- -d, –download-only : Used to download the packages to the package cache if required. But this option will not install or remove anything.
- -f : Used to fix the dependencies of the broken packages.
- -h, –help : It will display a help message and exit.