https://wiki.archlinux.org/api.php?action=feedcontributions&user=Fileunderwater&feedformat=atomArchWiki - User contributions [en]2024-03-28T16:56:24ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=System_maintenance&diff=210694System maintenance2012-06-20T08:43:30Z<p>Fileunderwater: typo</p>
<hr />
<div>[[Category:System administration]]<br />
== Read the News ==<br />
<br />
The Arch Linux News is posted here: [http://www.archlinux.org/news] You can subscribe to the rss feed by adding: [http://www.archlinux.org/feeds/news] to your favorite feed reading software. You can also get news by subscribing to the Arch Announce mailing list: [http://mailman.archlinux.org/mailman/listinfo/arch-announce].<br />
<br />
Pay special attention to news items with "manual intervention required" in their header. You can avoid a lot of trouble and embarrassment by reading the instructions in these news announcements and following them. <br />
<br />
==Packages==<br />
<br />
* When you update, check pacman output for instructions related to updated packages.<br />
<br />
* Use {{ic|pacman -Qdt}} to find orphaned packages, and {{ic|pacman -Qo <file>}} to find out which packages that own individual files.<br />
<br />
* Search for .pac* files and merge them with configuration files (see [[Pacnew and Pacsave Files]]).<br />
<br />
* Check for out-of-date or unmaintained [[Arch User Repository|AUR]] packages on your system. Sometimes these can cause problems when you update.<br />
<br />
* Check the size of {{ic|/var}} and clear pacman's cache once in a while. A useful tool to assist in this process is {{AUR|cacheclean}}.<br />
<br />
==Hardware==<br />
<br />
* Check disk (use fstab options to check at boot)<br />
<br />
* Search logs for errors (list scripts, tools to make this easier/more automated)<br />
<br />
* Look into errors as soon as possible - do not leave them unattended to.<br />
<br />
==Bad Practices==<br />
<br />
* Linking random libraries together to get a program to work.<br />
<br />
* Updating once a year.<br />
<br />
* Copy-pasting commands into the terminal without at least reading man pages to understand what you are doing to your system.<br />
<br />
* Clearing the entire package cache using {{ic|pacman -Scc}} - this removes the possibility to do package downgrades in cases of breakage.<br />
<br />
==See also==<br />
*[[General Recommendations#System administration]]<br />
*[[:Category:System administration]]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=System_maintenance&diff=210693System maintenance2012-06-20T08:42:47Z<p>Fileunderwater: added "See also" and bullet point</p>
<hr />
<div>[[Category:System administration]]<br />
== Read the News ==<br />
<br />
The Arch Linux News is posted here: [http://www.archlinux.org/news] You can subscribe to the rss feed by adding: [http://www.archlinux.org/feeds/news] to your favorite feed reading software. You can also get news by subscribing to the Arch Announce mailing list: [http://mailman.archlinux.org/mailman/listinfo/arch-announce].<br />
<br />
Pay special attention to news items with "manual intervention required" in their header. You can avoid a lot of trouble and embarrassment by reading the instructions in these news announcements and following them. <br />
<br />
==Packages==<br />
<br />
* When you update, check pacman output for instructions related to updated packages.<br />
<br />
* Use {{ic|pacman -Qdt}} to find orphaned packages, and {{ic|pacman -Qo <file>}} to find out which packages that own individual files.<br />
<br />
* Search for .pac* files and merge them with configuration files (see [[Pacnew and Pacsave Files]]).<br />
<br />
* Check for out-of-date or unmaintained [[Arch User Repository|AUR]] packages on your system. Sometimes these can cause problems when you update.<br />
<br />
* Check the size of {{ic|/var}} and clear pacman's cache once in a while. A useful tool to assist in this process is {{AUR|cacheclean}}.<br />
<br />
==Hardware==<br />
<br />
* Check disk (use fstab options to check at boot)<br />
<br />
* Search logs for errors (list scripts, tools to make this easier/more automated)<br />
<br />
* Look into errors as soon as possible - do not leave them unattended to.<br />
<br />
==Bad Practices==<br />
<br />
* Linking random libraries together to get a program to work.<br />
<br />
* Updating once a year.<br />
<br />
* Copy-pasting commands into the terminal without at least reading man pages to understand what you are doing to your system.<br />
<br />
* Clearing the entire package cache using {{ic|pacman -Scc}} - this removes the possibility to do package downgrades in cases of breakage.<br />
<br />
<br />
==See also==<br />
*[[General Recommendations#System administration]]<br />
*[[:Category:System administration]]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Gnochm&diff=210688Gnochm2012-06-20T08:21:26Z<p>Fileunderwater: not suitabke for system admin category</p>
<hr />
<div>{{Deletion|Info already added to [[Common Applications/Documents]]. A separated page is not needed here.}}<br />
== Overview ==<br />
Gnochm is a chm file viewer designed to integrate with gnome2. <br />
<br />
Total installed size is about 5MB - 4.5MB<br />
<br />
Install with<br />
# pacman -S gnochm<br />
<br />
== Features ==<br />
<br />
* Text search<br />
* Bookmarks<br />
* Support for HTTP links<br />
* Support for multiple languages<br />
* Display HTML source</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=System_maintenance&diff=210481System maintenance2012-06-19T21:47:40Z<p>Fileunderwater: added link to Pacnew/pacsave and improved readability</p>
<hr />
<div>[[Category:System administration]]<br />
== Read the News ==<br />
<br />
The Arch Linux News is posted here: [http://www.archlinux.org/news] You can subscribe to the rss feed by adding: [http://www.archlinux.org/feeds/news] to your favorite feed reading software. You can also get news by subscribing to the Arch Announce mailing list: [http://mailman.archlinux.org/mailman/listinfo/arch-announce].<br />
<br />
Pay special attention to news items with "manual intervention required" in their header. You can avoid a lot of trouble and embarrassment by reading the instructions in these news announcements and following them. <br />
<br />
==Packages==<br />
<br />
* When you update, check pacman output for instructions related to updated packages.<br />
<br />
* Use {{ic|pacman -Qdt}} to find orphaned packages, and {{ic|pacman -Qo <file>}} to find out which packages that own individual files.<br />
<br />
* Search for .pac* files and merge them with configuration files (see [[Pacnew and Pacsave Files]]).<br />
<br />
* Check for out of date or unmaintained aur packages on your system (sometimes these can cause problems when you update).<br />
<br />
* Check the size of /var and clear pacman's cache once in a while. A usefull tool to assist in this process is [https://aur.archlinux.org/packages.php?ID=37572 Cacheclean].<br />
<br />
==Hardware==<br />
<br />
* Check disk (use fstab options to check at boot)<br />
<br />
* Search logs for errors (list scripts, tools to make this easier/more automated)<br />
<br />
* Look into errors as soon as possible - do not leave them unattended to.<br />
<br />
==Bad Practices==<br />
<br />
* Linking random libraries together to get a program to work.<br />
<br />
* Updating once a year.<br />
<br />
* Copy-pasting commands into the terminal without at least reading man pages to understand what you are doing to your system.</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Desktop_environment&diff=210433Desktop environment2012-06-19T12:12:18Z<p>Fileunderwater: added interwiki link</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[it:Desktop Environment]]<br />
[[sv:Skrivbordsmiljö]]<br />
[[uk:Desktop Environment]]<br />
[[zh-CN:Desktop Environment]]<br />
{{Article summary start}}<br />
{{Article summary text|In graphical computing, a desktop environment (DE) commonly refers to a style of graphical user interface (GUI) derived from the desktop metaphor that is seen on most modern personal computers. This article provides a general overview of popular desktop environments.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary wiki|Wikipedia:Desktop environment}}<br />
{{Article summary wiki|Wikipedia:X Window System}}<br />
{{Article summary end}}<br />
<br />
'''Desktop environments''' provide a ''complete'' graphical user interface (GUI) for a system by bundling together a variety of X clients written using a common widget toolkit and set of libraries. <br />
<br />
== X Window System == <!-- please keep this section synchronized with [[Window Manager#X Window System]] --><br />
The [[Wikipedia:X Window System|X Window System]] provides the foundation for a graphical user interface. Prior to installing a desktop environment, a functional X server installation is required. See [[Xorg]] for detailed information.<br />
<br />
:''X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the screen and interacting with a mouse and keyboard. X does not mandate the user interface — individual client programs known as window managers handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X is built as an additional (application) abstraction layer on top of the operating system kernel.''<br />
<br />
The user is free to configure their GUI environment in any number of ways. Desktop environments simply provide a complete and convenient means of accomplishing this task.<br />
<br />
== Desktop environments ==<br />
A desktop environment bundles together a variety of X clients to provide common graphical user interface elements such as icons, windows, toolbars, wallpapers, and desktop widgets. Additionally, most desktop environments include a set of integrated applications and utilities.<br />
<br />
Note that users are free to mix-and-match applications from multiple desktop environments. For example, a KDE user may install and run GNOME applications such as the Epiphany web browser, should he/she prefer it over KDE's Konqueror web browser. One drawback of this approach is that many applications provided by desktop environment projects rely heavily upon their DE's respective underlying libraries. As a result, installing applications from a range of desktop environments will require installation of a larger number of dependencies. Users seeking to conserve disk space and avoid [[Wikipedia:software bloat|software bloat]] often avoid such mixed environments, or look into lightweight alternatives.<br />
<br />
Furthermore, DE-provided applications tend to integrate better with their native environments. Superficially, mixing environments with different widget toolkits will result in visual discrepancies (that is, interfaces will use different icons and widget styles). In terms of user experience, mixed environments may not behave similarly (e.g. single-clicking versus double-clicking icons; drag-and-drop functionality) potentially causing confusion or unexpected behavior.<br />
<br />
=== List of desktop environments ===<br />
; [[GNOME]]: ''The GNOME project provides two things: The GNOME desktop environment, an attractive and intuitive desktop for users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop. GNOME is free, usable, accessible, international, developer-friendly, organized, supported, and a community.''<br />
<br />
; [[Mate]]: ''Mate provides an intuitive and attractive desktop to Linux users using traditional metaphors.''<br />
<br />
; [[KDE]]: ''KDE software consists of a large number of individual applications and a desktop workspace as a shell to run these applications. You can run KDE applications just fine on any desktop environment as they are built to integrate well with your system's components. By also using the KDE workspace, you get even better integration of your applications with the working environment while lowering system resource demands.''<br />
<br />
; [[Xfce]]: ''Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment, while remaining relatively light. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.''<br />
<br />
; [[E17]]: ''The Enlightenment desktop shell provides an efficient yet breathtaking window manager based on the Enlightenment Foundation Libraries along with other essential desktop components like a file manager, desktop icons and widgets. It boasts a unprecedented level of theme-ability while still being capable of performing on older hardware or embedded devices.''<br />
<br />
; [[LXDE]]: ''The "Lightweight X11 Desktop Environment" is a fast and energy-saving desktop environment. Maintained by an international community of developers, it comes with a beautiful interface, multi-language support, standard keyboard short cuts and additional features like tabbed file browsing. Fundamentally designed to be lightweight, LXDE uses less CPU and RAM than other environments. It is especially beneficial for cloud computers with low hardware specifications, such as netbooks, mobile devices (e.g. MIDs) or older computers.''<br />
<br />
; [[ROX]]: ''ROX is a fast, user friendly desktop which makes extensive use of drag-and-drop. The interface revolves around the file manager, following the traditional UNIX view that 'everything is a file' rather than trying to hide the filesystem beneath start menus, wizards, or druids. The aim is to make a system that is well designed and clearly presented. The ROX style favors using several small programs together instead of creating all-in-one mega-applications.''<br />
<br />
; [[Sugar]]: ''The Sugar Learning Platform is a computer environment composed of Activities designed to help children from 5 to 12 years of age learn together through rich-media expression. Sugar is the core component of a worldwide effort to provide every child with the opportunity for a quality education &mdash; it is currently used by nearly one-million children worldwide speaking 25 languages in over 40 countries. Sugar provides the means to help people lead fulfilling lives through access to a quality education that is currently missed by so many.''<br />
<br />
; [[Razor-qt]]: ''Razor-qt is an advanced, easy-to-use, and fast desktop environment based on Qt technologies. It has been tailored for users who value simplicity, speed, and an intuitive interface. While still a new project, Razor-qt already contains all the key DE components.''<br />
<br />
=== Comparison of desktop environments ===<br />
{{Expansion}}<br />
<br />
''This section attempts to draw a comparison between popular desktop environments. Note that first-hand experience is the only effective way to truly evaluate whether a desktop environment best suits your needs.''<br />
<br />
{{Wikipedia|Comparison of X Window System desktop environments}}<br />
<br />
{| border="1" cellpadding="2"<br />
|+ Overview of desktop environments <!-- PLEASE DO NOT OVER-CLUTTER THIS TABLE! --><br />
! Desktop environment !! Widget toolkit !! Window manager !! Terminal emulator !! File manager !! Text editor !! Web browser<br />
|-<br />
| [[E17]] || [http://trac.enlightenment.org/e/wiki/Elementary Elementary] || [http://trac.enlightenment.org/e/wiki/Enlightenment Enlightenment] || [http://www.eterm.org/ Eterm] || [http://trac.enlightenment.org/e/wiki/EFM EFM] / Entropy / [http://evidence.sourceforge.net/ Evidence] || N/A || [http://trac.enlightenment.org/e/wiki/Eve Eve]<br />
|-<br />
| [[GNOME]] || [[GTK+]] || [[Wikipedia:Mutter_(window_manager)|Mutter]] || [[Wikipedia:GNOME Terminal|GNOME Terminal]] || [http://live.gnome.org/Nautilus Nautilus] || [http://projects.gnome.org/gedit/ gedit] || [[Epiphany]]<br />
|-<br />
| [[KDE]] || [[Qt]] || [[Wikipedia:KWin|KWin]] || [http://konsole.kde.org/ Konsole] || [http://dolphin.kde.org/ Dolphin] || [http://kate-editor.org/ Kate / KWrite] || [http://www.konqueror.org/ Konqueror]<br />
|-<br />
| [[LXDE]] || [[GTK+]] || [[Openbox]] || [http://wiki.lxde.org/en/LXTerminal LXTerminal] || [[PCManFM]] || [http://tarot.freeshell.org/leafpad/ Leafpad] || N/A<br />
|-<br />
| [[Razor-qt]] || [[Qt]] || N/A || N/A || N/A || N/A || N/A<br />
|-<br />
| [[ROX]] || [[GTK+]] || [http://roscidus.com/desktop/OroboROX OroboROX] || [http://roxterm.sourceforge.net/ ROXTerm] || [http://roscidus.com/desktop/ROX-Filer ROX-Filer] || [http://roscidus.com/desktop/Edit Edit] || N/A<br />
|-<br />
| [[Xfce]] || [[GTK+]] || [http://docs.xfce.org/xfce/xfwm4/start Xfwm] || [http://www.xfce.org/projects/terminal Terminal] || [[Thunar]] || Mousepad || [[Midori]]<br />
|}<br />
<br />
====Resource use====<br />
In terms of system resources, GNOME and KDE are ''expensive'' desktop environments. Not only do complete installations consume more disk space than lightweight alternatives (E17, LXDE, Razor-qt and Xfce) but also more CPU and memory resources while in use. This is because GNOME and KDE are relatively ''full-featured'': they provide the most complete and well-integrated environments.<br />
<br />
E17, LXDE, Razor-qt and Xfce, on the other hand, are ''lightweight'' desktop environments. They are designed to work well on older or lower-power hardware and generally consume fewer system resources while in use. This is achieved by cutting back on ''extra'' features (which some would term ''bloat'').<br />
<br />
====Environment familiarity====<br />
Many users describe KDE as more ''Windows-like'' and GNOME as more ''Mac-like''. This is a very subjective comparison, since either desktop environment can be customized to emulate the Windows or Mac operating systems. See [http://www.psychocats.net/ubuntucat/is-kde-more-windows-like-than-gnome/ Is KDE 'more Windows-like' than Gnome?] and [http://www.jeffwu.net/?p=71 KDE vs Gnome] for more information. ([http://linux.oneandoneis2.org/LNW.htm Linux is Not Windows] is also an excellent resource.)<br />
<br />
== Custom environments ==<br />
Desktop environments represent the simplest means of installing a ''complete'' graphical environment. However, users are free to build and customize their graphical environment in any number of ways should none of the popular desktop environments meet their requirements. Generally, building a custom environment involves selection of a suitable [[Window Manager]] and a number of [[Lightweight Applications]] (a minimalist selection usually includes a terminal emulator, file manager, and text editor).</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=User:Fileunderwater&diff=210404User:Fileunderwater2012-06-19T11:15:19Z<p>Fileunderwater: revert</p>
<hr />
<div>Also active on the [http://wiki.archlinux.se Swedish wiki].</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=User:Fileunderwater&diff=210403User:Fileunderwater2012-06-19T11:15:02Z<p>Fileunderwater: </p>
<hr />
<div>Also active on the [http://wiki.archlinux.se Swedish wiki].<br />
<br />
[[User:Fileunderwater|fileunderwater]] ([[User talk:Fileunderwater|talk]]) 11:14, 19 June 2012 (UTC)</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=User:Fileunderwater&diff=210402User:Fileunderwater2012-06-19T11:14:42Z<p>Fileunderwater: test</p>
<hr />
<div>Also active on the [http://wiki.archlinux.se Swedish wiki].<br />
\\[[User:Fileunderwater|fileunderwater]] ([[User talk:Fileunderwater|talk]]) 11:14, 19 June 2012 (UTC)</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Irssi&diff=210395Irssi2012-06-19T11:07:30Z<p>Fileunderwater: added interwiki link to the swedish translation</p>
<hr />
<div>[[Category:Internet Applications]]<br />
[[Category:Internet Relay Chat]]<br />
[[bg:Irssi]]<br />
[[es:Irssi]]<br />
[[fr:Irssi]]<br />
[[sv:Irssi]]<br />
[[tr:Irssi]]<br />
[[zh-CN:Irssi]]<br />
[[zh-TW:Irssi]]<br />
{{Article summary start}}<br />
{{Article summary text|This article covers irssi installation and configuration.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|IRC Channels}}<br />
{{Article summary wiki|IRC Channel}}<br />
{{Article summary end}}<br />
<br />
[http://www.irssi.org/ irssi] is a modular, ncurses based IRC (Internet Relay Chat) client for UNIX systems. It also supports SILC and ICB protocols via plugins.<br />
<br />
==Installation==<br />
[[pacman|Install]] {{Pkg|irssi}}, available in the [[Official Repositories]].<br />
<br />
==Configuration==<br />
Personal configuration file should be located at {{ic|~/.irssi/config}}. You can start irssi with an alternate config file using the {{ic|--config}} flag.<br />
<br />
* You can use {{ic|/save}} to save your current configuration to the config file.<br />
<br />
* You can save the location of your currently opened windows by entering {{ic|/layout save}}<br />
<br />
* It sometimes might happen that umlauts are not correctly displayed. To fix this problem you have to set the right encoding with the following commands directly in irssi.<br />
<br />
/set recode_autodetect_utf8 ON <br />
/set recode_fallback CP1252<br />
/save<br />
<br />
===Auto-connect to #archlinux on startup===<br />
Start irssi and then type the following in it:<br />
{{bc|/server add -auto -network fn irc.freenode.net}}<br />
{{ic|fn}} is a common abbreviation for the freenode network, but any preferred word can be substituted for it (e.g. {{ic|foo}}).<br />
<br />
Now to automatically identify your nick for a given password, type:<br />
/network add -nick user -autosendcmd "/^msg nickserv IDENTIFY *******" fn<br />
where {{ic|user}} is the nick with which you registered to nickserv and {{ic|*******}} is the password for that nick, replace {{ic|fn}} with the word that you used in the first command (e.g foo) if that is the case.<br />
{{Note|Password will be visible when you type it and also it can be seen in ~/.irssi/config, so you can omit this step if you want to.}}<br />
/channel add -auto #archlinux fn<br />
/channel add -auto #archlinux-offtopic fn<br />
/save<br />
/quit<br />
<br />
===Hide joins, parts, and quits===<br />
In order to ignore showing of joining,leaving,quiting of users for all channels type the following in irssi:<br />
/ignore * joins<br />
/ignore * parts<br />
/ignore * quits<br />
/save<br />
<br />
==Basic Usage==<br />
{{Note|This section assumes you already know the basics of [[Wikipedia:Internet Relay Chat|IRC]] and have used other clients in the past. For a more detailed introduction check the [http://irssi.org/documentation official documentation].}}<br />
<br />
To start irssi issue the following command in a terminal:<br />
{{bc|$ irssi}}<br />
<br />
Many people prefer to run irssi within a terminal multiplexer since some scripts like the [http://wouter.coekaerts.be/site/irssi/nicklist nicklist.pl] script are dependent on a secondary window. Additionally, it allows the user to easily disconnect and reconnect to a session. Therefore, it is recommended that you select a multiplexer (e.g. [[GNU Screen]] or [[tmux]]) and review how it functions.<br />
<br />
===Commands===<br />
{|<br />
|-<br />
!width= 100 |<br />
!width= 65 |<br />
!<br />
|-<br />
|colspan="3"|'''Connection'''<br />
|-<br />
| {{ic|/server}}<br />
| {{ic|/s}}<br />
| These change the server of the current network.<br />
|-<br />
| {{ic|/connect}}<br />
| {{ic|/c}}<br />
| These open a new connection to a server. This is what you want to use in order to connect to multiple servers simultaneously (Ctrl+X switches between multiple servers).<br />
|-<br />
| {{ic|/disconnect}}<br />
| {{ic|/dc}}<br />
| These close the current connection to a server.<br />
|-<br />
|colspan="3"|'''Movement'''<br />
|-<br />
| colspan="2" | {{ic|ALT+(1-0,q-p,etc)}}<br />
| Changes the currently active window. Or use Ctrl+n for the next window or Ctrl+p for the previous window. <br />
|-<br />
| {{ic|/window 1}}<br />
| {{ic|/w 1}}<br />
| Takes you to the first window. Windows go from are numbered across the top of your keyboard (1-0) and then start on the next row down (q-p).<br />
|-<br />
| {{ic|/window close}}<br />
| {{ic|/wc}}<br />
| These close the current window.<br />
|-<br />
| {{ic|/window move 1}}<br />
| {{ic|/w move 1}}<br />
| These move the current window to the first window position.<br />
|-<br />
| colspan="2" | {{ic|/save layouts}}<br />
| This will save the current window positions for the next time you start irssi.<br />
|-<br />
|colspan="3"|'''Miscellaneous'''<br />
|-<br />
| colspan="2" | {{ic|/set}}<br />
| This shows a list of all your current settings.<br />
|-<br />
| colspan="2" | {{ic|/help}}<br />
| This provides a helpful description/explanation for whatever parameter provided.<br />
|-<br />
| colspan="2" | {{ic|/alias}}<br />
| Lets you create your own shortcuts.<br />
|}<br />
<br />
== Script installation ==<br />
As an example, this section will outline the installation of a spell checking script.<br />
<br />
Install {{Pkg|ispell}}, an interactive spell-checking program for Unix:<br />
# pacman -S ispell<br />
<br />
Create a directory to hold your irssi scripts and within that, a directory that contains scripts which will be automatically run when starting irssi:<br />
$ mkdir -p ~/.irssi/scripts/autorun<br />
<br />
Download the irssi spell-checking script, {{ic|spell.pl}} into the script directory:<br />
$ cd ~/.irssi/scripts<br />
$ wget http://scripts.irssi.org/scripts/spell.pl .<br />
<br />
As root run the following command:<br />
# perl -MCPAN -e 'install Lingua::Ispell'<br />
If you do not want to use CPAN review [http://search.cpan.org/~jdporter/Lingua-Ispell-0.07/lib/Lingua/Ispell.pm].<br />
<br />
Start irssi and load the spell-checking script:<br />
{{hc|/script load spell.pl|- - Irssi: Loaded script spell}}<br />
<br />
Bind {{Keypress|Alt + s}} to spell check your current line.<br />
/bind meta-s /_spellcheck<br />
<br />
If you want to autorun the script when you start irssi, just link the script into the autorun folder:<br />
$ cd ~/.irssi/scripts/autorun/<br />
$ ln -s ../spell.pl .<br />
<br />
==HTTP Proxy==<br />
<br />
To use ''irssi'' behind a HTTP proxy, the following commands are required:<br />
/SET use_proxy ON<br />
/SET proxy_address <Proxy host address><br />
/SET proxy_port <Proxy port><br />
/SET -clear proxy_string<br />
/SET proxy_string_after conn %s %d<br />
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n<br />
<br />
''irssi'' should then alter its config file correspondingly; if the proxy is not required, just set use_proxy to OFF.<br />
<br />
Should the proxy require a password, try:<br />
<br />
/SET proxy_password your_pass<br />
<br />
Otherwise:<br />
<br />
/SET -clear proxy_password<br />
<br />
{{Note|SSL behind a proxy will fail with these settings.}}<br />
<br />
==irssi with nicklist in tmux ==<br />
<br />
The ''irssi'' plugin '[http://scripts.irssi.org/scripts/nicklist.pl nicklist]' offers to add a pane listing the users on the channel currently viewed. It has two methods to do this:<br />
<br />
* '''screen''', which simply adds the list to the right of ''irssi'', but brings the disadvantage that the entire window gets redrawn every time ''irssi'' prints a line.<br />
<br />
* '''fifo''', which like the name suggests writes the list into a fifo that can then be continuously read with e. g. ''cat ~/.irssi/nicklistfifo''.<br />
<br />
nicklist will use the more efficient ''fifo'' with:<br />
<br />
/NICKLIST FIFO<br />
<br />
This fifo can be used in a [[tmux]] window split vertically with ''irssi'' in its left pane and the ''cat'' from above in a small one in its right. Since the pane is dependent on its creating tmux session's geometry, a subsequent session with a different one needs to recreate it (which also implies a switch in ''irssi'' windows to refill the fifo).<br />
<br />
E. g., the following script first checks for a running ''irssi'', presumed to have been run by a previous execution of itself. Unless found it creates a new tmux session, a window named after and running ''irssi'' and then the pane with ''cat''. If however ''irssi'' was found it merely attaches to the session and recreates the ''cat'' pane.<br />
<br />
#!/bin/bash<br />
<br />
T3=$(pidof irssi)<br />
<br />
irssi_nickpane() {<br />
tmux setw main-pane-width $(( $(tput cols) - 21));<br />
tmux splitw -v "cat ~/.irssi/nicklistfifo";<br />
tmux selectl main-vertical;<br />
tmux selectw -t irssi;<br />
tmux selectp -t 0;<br />
}<br />
<br />
irssi_repair() {<br />
tmux selectw -t irssi<br />
(( $(tmux lsp | wc -l) > 1 )) && tmux killp -a -t 0<br />
irssi_nickpane<br />
}<br />
<br />
if [ -z "$T3" ]; then<br />
tmux new-session -d -s main;<br />
tmux new-window -t main -n irssi irssi;<br />
irssi_nickpane ;<br />
fi<br />
tmux attach-session -d -t main;<br />
irssi_repair ;<br />
exit 0<br />
<br />
==Virtual hostname (vhost)==<br />
A vhost can be used to change your hostname when connected to an IRC-server, commonly viewed when joining/parting or doing a whois. This is most commonly done on a server which have a static IP address. Without a vhost it would commonly look like so when doing a 'whois':<br />
nick@123.456.78.90.isp.com<br />
The result of a successfull vhost could be like so if you have the domain example.com available:<br />
nick@example.com<br />
Keep in mind that not every IRC-server supports the use of vhost. This might be individually set between the servers and not the network, so if you're experiencing issues with one server try another on the same network.<br />
<br />
===Required preconfigurations===<br />
irssi supports using a vhost as long as the required configurations has been set. This includes especially that your host supports [https://en.wikipedia.org/wiki/Reverse_DNS_lookup Recursive DNS Lookup (rDNS)] using [https://en.wikipedia.org/wiki/List_of_DNS_record_types Pointer record (PTR)]. Additionally you should add an appropriate line to your /etc/hosts file. <br />
<br />
To see if this is working, test with the 'host' DNS lookup utility included in [https://www.archlinux.org/packages/?sort=&q=dnsutils&maintainer=&last_update=&flagged=&limit=50 dnsutils] like so (where <ip> is a normal IPv4 address):<br />
host <ip><br />
If this returns something in the lines of this then you know that your rDNS is working.<br />
<ip>.in-addr.arpa domain name pointer example.com<br />
<br />
===Enabling the vhost===<br />
There are a couple of ways to connect to a server with a given hostname. One is using the 'server' command with a -host argument like so:<br />
/server -host example.com irc.freenode.org<br />
Another way would be to set your hostname (vhost) with the 'set' command which will save your hostname to ~/.irssi/config:<br />
/set hostname example.com<br />
/save<br />
/server irc.freenode.org<br />
<br />
==See also==<br />
* [http://linuxtidbits.wordpress.com/2008/01/09/setting-up-irssi/ Setting Up Irssi] post on Helpful Linux Tidbits<br />
* [http://quadpoint.org/articles/irssi Guide to Efficiently Using Irssi & Screen] page by Matt Sparks<br />
* [http://scripts.irssi.org/ Official List of Irssi Scripts]<br />
* [http://jasonwryan.com/post/12460674834/inotify IRC notifications with dzen2] post by Jason Ryan<br />
* [http://pthree.org/2010/02/02/irssis-channel-network-server-and-connect-what-it-means/ Irssi’s /channel, /network, /server and /connect – What It Means] post by Aaron Toponce</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Awesome&diff=210393Awesome2012-06-19T11:02:05Z<p>Fileunderwater: added interwiki link to the swedish translation</p>
<hr />
<div>[[Category:Dynamic WMs]]<br />
[[cs:Awesome]]<br />
[[es:Awesome]]<br />
[[fr:Awesome3]]<br />
[[it:Awesome]]<br />
[[ru:Awesome]]<br />
[[sv:Awesome]]<br />
[[zh-CN:Awesome]]<br />
{{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|A guide on how to install, use, configure, and customize awesome window manager.}}<br />
{{Article summary end}}<br />
<br />
From the [[Wikipedia:awesome (window manager)|awesome]] website:<br />
<br />
"''[http://awesome.naquadah.org/ awesome] is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license.''<br />
<br />
''It is primarly targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on its graphical environment.''"<br />
<br />
==Installation==<br />
<br />
[[pacman|Install]] {{pkg|awesome}}, available in the [[Official Repositories]].<br />
<br />
If you want unstable pre-release versions, you can install the {{aur|awesome-git}} package instead but keep in mind that it really is an unstable development version with a different configuration syntax.<br />
<br />
==Getting Started==<br />
<br />
===Using awesome===<br />
To run awesome without a login manager, simply add '''{{Ic|exec awesome}}''' to the startup script of your choice (e.g. ~/.xinitrc.)<br />
<br />
If you have problems with some devices (like mounting usbkeys, reading dvds) be sure to read documentation about [[HAL]] and [[PolicyKit]]. When you do not use a login manager, nothing is automated. In some cases, using '''{{Ic|exec ck-launch-session awesome}}''' can solve your problems. For this to work, you must have the {{Pkg|consolekit}} package installed, otherwise '''ck-launch-session''' will be an unrecognised command. See [[ConsoleKit]].<br />
<br />
To start awesome from a login manager, see [[Display Manager|this article]]. <br />
<br />
'''[[SLIM]]''' is a popular lightweight login manager and comes highly recommended. You should do like this:<br />
<br />
1) Edit /etc/slim.conf for start awesome session, add awesome to sessions line. <br>For example: <br />
sessions awesome,wmii,xmonad<br />
2) Edit ~/.xinitrc file <br />
DEFAULT_SESSION=awesome<br />
case $1 in<br />
awesome|wmii|xmonad) exec $1 ;;<br />
*) exec $DEFAULT_SESSION ;;<br />
esac<br />
However, you can also start awesome as preferred user without any login manager and even without logging in, after editing ~/.xinitrc and /etc/inittab properly. Refer to the article [[Start X at boot]].<br />
<br />
==Configuration==<br />
Awesome includes some good default settings right out of the box, but sooner or later you'll want to change something. The lua based configuration file is at {{Ic|~/.config/awesome/rc.lua}}.<br />
<br />
===Creating the configuration file===<br />
First, run the following to create the directory needed in the next step:<br />
$ mkdir -p ~/.config/awesome/<br />
<br />
Whenever compiled, awesome will attempt to use whatever custom settings are contained in ~/.config/awesome/rc.lua. This file is not created by default, so we must copy the template file first:<br />
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/<br />
<br />
The syntax of the configuration often changes when awesome updates. So, remember to repeate the command above when you get something strange with awesome, or you'd like to modify the configuration.<br />
<br />
For more information about configuring awesome, check out the [http://awesome.naquadah.org/wiki/Awesome_3_configuration configuration page at awesome wiki]<br />
<br />
===More configuration resources===<br />
{{Note|The syntax of awesome configuration changes regularly, so you will likely have to modify any file you download.}}<br />
<br />
Some good examples of rc.lua would be as follows:<br />
<br />
* http://git.sysphere.org/awesome-configs/tree/ - Awesome 3.4 configurations from Adrian C. (anrxc)<br />
* http://pastebin.com/f6e4b064e - Darthlukan's awesome 3.4 configuration. <br />
* http://www.calmar.ws/dotfiles/dotfiledir/dot_awesomerc.lua<br />
* http://www.ugolnik.info/downloads/awesome/rc.lua (screen) - Awesome 3 with small titlebar and statusbar.<br />
* http://github.com/nblock/config/blob/master/.config/awesome/rc.lua<br />
* User Configuration Files http://awesome.naquadah.org/wiki/User_Configuration_Files<br />
<br />
===Debug rc.lua using Xephyr===<br />
<br />
This is my prefered way to debug rc.lua, without breaking my current desktop. I first copy my rc.lua into a new file, rc.lua.new, and modify it as needed. Then, I run new instance of awesome in Xephyr (allows you to run X nested in another X's client window, supplying rc.lua.new as a config file like this:<br />
<br />
$ Xephyr :1 -ac -br -noreset -screen 1152x720 &<br />
$ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new<br />
<br />
Big advantage of this approach is that if I break rc.lua.new, I do not break my current awesome desktop (and possibly crash all my X apps, lose all unsaved things and so on...). Once I'm happy with my new settings, I move rc.lua.new to rc.lua and restart awesome. And I can be sure it will work and restarting with new config won't mess up things.<br />
<br />
As of July 2011, there is also {{aur|awmtt}} which provides the above functionality and more.<br />
<br />
==Themes==<br />
<br />
[http://awesome.naquadah.org/wiki/Beautiful Beautiful] is a lua library that allows you to theme awesome using an external file, it becomes very easy to dynamically change your whole awesome colours and wallpaper without changing your {{ic|rc.lua}}. <br />
<br />
The default theme is at {{ic|/usr/share/awesome/themes/default}}. Copy it to {{ic|~/.config/awesome/themes/default}} and change {{ic|theme_path}} in {{ic|rc.lua}}. <br />
beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")<br />
<br />
More details [http://awesome.naquadah.org/wiki/Beautiful here]<br />
<br />
A few sample [http://awesome.naquadah.org/wiki/Beautiful_themes themes]<br />
<br />
===Setting up your wallpaper===<br />
<br />
Beautiful can handle your wallpaper, thus you do not need to set it up in your {{ic|.xinitrc}} or {{ic|.xsession}} files. This allows you to have a specific wallpaper for each theme. If you take a look at the default theme file you'll see a wallpaper_cmd key, the given command is executed when {{ic|beautiful.init}}("path_to_theme_file") is run. You can put here you own command or remove/comment the key if you do not want Beautiful to interfere with your wallpaper business.<br />
<br />
For instance, if you use {{ic|awsetbg}} to set your wallpaper, you can write in the {{ic|theme.lua}} page that you just selected:<br />
<br />
wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }<br />
<br />
{{Note|For awsetbg to work you need to have a program that can manage desktop backgrounds installed. For example '''[[Feh]]'''.}}<br />
<br />
====Random Background Image====<br />
To rotate the wallpapers randomly, just comment the {{ic|wallpaper_cmd}} line above, and add a script into your {{ic|.xinitrc}} with the codes below:<br />
{{bc|<br />
while true;<br />
do<br />
awsetbg -r <path/to/the/directory/of/your/wallpapers><br />
sleep 15m<br />
done &<br />
}}<br />
<br />
==Tips & Tricks==<br />
Feel free to add any tips or tricks that you would like to pass on to other awesome users.<br />
<br />
===Use awesome as GNOME's window manager===<br />
GNOME has the advantage of being very "ready to use" and integrating. You can set up GNOME to use awesome as the visual interface, but have GNOME work in the background for your pleasure. If you are using GNOME 3, you can simply install the [https://aur.archlinux.org/packages.php?ID=53096 awesome-gnome] package, then when logging in with GDM, choose the session type "Awesome GNOME". See the [http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome awesome wiki] for details.<br />
<br />
===Expose effect like compiz===<br />
<br />
Revelation brings up a view of all your open clients; left-clicking a client pops to the first tag that client is visible on and raises/focuses the client. In addition, the Enter key pops to the currently focused client, and Escape aborts. <br />
<br />
http://awesome.naquadah.org/wiki/Revelation<br />
<br />
===Hide / show wibox in awesome 3===<br />
<br />
To map Modkey-b to hide/show default statusbar on active screen (as default in awesome 2.3), add to your ''globalkeys'' in rc.lua:<br />
<br />
awful.key({ modkey }, "b", function ()<br />
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible<br />
end),<br />
<br />
===Enable printscreens===<br />
<br />
To enable printscreens in awesome through the PrtScr button you need to have a screen capturing program.<br />
Scrot is a easy to use utility for this purpose and is available in Arch repositories.<br />
<br />
Just type:<br />
# pacman -S scrot<br />
<br />
and install optional dependencies if you feel that you need them.<br />
<br />
Next of we need to get the key name for PrtScr, most often this is named "Print" but one can never be too sure.<br />
<br />
Start up:<br />
# xev<br />
<br />
And press the PrtScr button, the output should be something like:<br />
KeyPress event ....<br />
root 0x25c, subw 0x0, ...<br />
state 0x0, keycode 107 (keysym 0xff61, '''Print'''), same_screen YES,<br />
....<br />
<br />
In my case as you see, the keyname is Print.<br />
<br />
Now to the configuration of awesome!<br />
<br />
Somewhere in your globalkeys array (doesn't matter where) type:<br />
<br />
Lua code:<br />
<br />
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),<br />
<br />
A good place to put this is bellow the keyhook for spawning a terminal.<br />
To find this line search for: awful.util.spawn(terminal) in your favourite text editor.<br />
<br />
Also, this function saves screenshots inside ~/screenshots/, edit this to fit your needs.<br />
<br />
===Dynamic tagging===<br />
<br />
[http://awesome.naquadah.org/wiki/Eminent Eminent] is a small lua library that monkey-patches awful to provide you with effortless and quick wmii-style dynamic tagging. Unlike shifty, eminent does not aim to provide a comprehensive tagging system, but tries to make dynamic tagging as simple as possible. In fact, besides importing the eminent library, you do not have to change your rc.lua at all, eminent does all the work for you.<br />
<br />
[http://awesome.naquadah.org/wiki/Shifty Shifty] is an Awesome 3 extension that implements dynamic tagging. It also implements fine client matching configuration allowing YOU to be the master of YOUR desktop only by setting two simple config variables and some keybindings!<br />
<br />
===Space Invaders===<br />
[http://awesome.naquadah.org/wiki/Space_Invaders Space Invaders] is a demo to show the possibilities of the Awesome Lua API.<br />
<br />
Please note that it is no longer included in the Awesome package since the 3.4-rc1 release.<br />
<br />
===Naughty for popup notification===<br />
See [http://awesome.naquadah.org/wiki/Naughty the awesome wiki page on naughty].<br />
<br />
===Popup Menus===<br />
There's a simple menu by default in awesome3, and customed menus seem very easy now. However, if you're using 2.x awesome, have a look at ''[http://awesome.naquadah.org/wiki/Awful.menu awful.menu]''.<br />
<br />
If you want a freedesktop.org menu, you could take a look at ''[https://github.com/terceiro/awesome-freedesktop awesome-freedesktop]'' .<br />
<br />
An example for awesome3:<br />
{{bc|1=<br />
myawesomemenu = {<br />
{ "lock", "xscreensaver-command -activate" },<br />
{ "manual", terminal .. " -e man awesome" },<br />
{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },<br />
{ "restart", awesome.restart },<br />
{ "quit", awesome.quit }<br />
}<br />
<br />
mycommons = {<br />
{ "pidgin", "pidgin" },<br />
{ "OpenOffice", "soffice-dev" },<br />
{ "Graphic", "gimp" }<br />
}<br />
<br />
mymainmenu = awful.menu.new({ items = { <br />
{ "terminal", terminal },<br />
{ "icecat", "icecat" },<br />
{ "Editor", "gvim" },<br />
{ "File Manager", "pcmanfm" },<br />
{ "VirtualBox", "VirtualBox" },<br />
{ "Common App", mycommons, beautiful.awesome_icon },<br />
{ "awesome", myawesomemenu, beautiful.awesome_icon }<br />
}<br />
})<br />
}}<br />
<br />
===More Widgets in awesome===<br />
''Widgets in awesome are objects that you can add to any widget-box (statusbars and titlebars), they can provide various information about your system, and are useful for having access to this information, right from your window manager. Widgets are simple to use and offer a great deal of flexibility.'' -- Source [http://awesome.naquadah.org/wiki/Widgets_in_awesome Awesome Wiki: Widgets].<br />
<br />
There's a widely used widget library called '''Wicked''' (compatible with awesome versions '''prior to 3.4'''), that provides more widgets, like MPD widget, CPU usage, memory usage, etc. For more details see the [http://awesome.naquadah.org/wiki/Wicked Wicked page].<br />
<br />
As a replacement for Wicked in awesome v3.4 check '''[http://awesome.naquadah.org/wiki/Vicious Vicious]''', '''[http://awesome.naquadah.org/wiki/Obvious Obvious]''' and '''[http://awesome.naquadah.org/wiki/Bashets Bashets]'''. If you pick vicious, you should also take a good look at [http://git.sysphere.org/vicious/tree/README vicious documentation].<br />
<br />
===Transparency===<br />
Awesome has support for true transparency through xcompmgr. Note that you'll probably want the git version of xcompmgr, which is [https://aur.archlinux.org/packages.php?ID=16554 available in AUR]. <br />
<br />
Add this to your ~/.xinitrc:<br />
xcompmgr &<br />
See ''man xcompmgr'' or [[xcompmgr]] for more options.<br />
<br />
In awesome 3.4, window transparency can be set dynamically using signals. For example, your rc.lua could contain the following:<br />
<br />
client.add_signal("focus", function(c)<br />
c.border_color = beautiful.border_focus<br />
c.opacity = 1<br />
end)<br />
client.add_signal("unfocus", function(c)<br />
c.border_color = beautiful.border_normal<br />
c.opacity = 0.7<br />
end)<br />
'''If you got error messages about add_signal, using connect_signal insteaded.''' <br />
<br />
Note that if you are using conky, you must set it to create its own window instead of using the desktop. To do so, edit ~/.conkyrc to contain:<br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_type desktop<br />
<br />
Otherwise strange behavior may be observed, such as all windows becoming fully transparent. Note also that since conky will be creating a transparent window on your desktop, any actions defined in awesome's rc.lua for the desktop will not work where conky is.<br />
<br />
As of Awesome 3.1, there is built-in pseudo-transparency for wiboxes. To enable it, append 2 hexadecimal digits to the colors in your theme file (~/.config/awesome/themes/default, which is usually a copy of /usr/share/awesome/themes/default), like shown here:<br />
<br />
bg_normal = #000000AA<br />
<br />
where "AA" is the transparency value.<br />
<br />
To change transparency for the actual selected window by pressing Modkey + PageUp/PageDown you can also use tansset-df available through the community package repository and the following modification to your rc.lua:<br />
<br />
globalkeys = awful.util.table.join(<br />
-- your keybindings<br />
[...]<br />
awful.key({ modkey }, "Next", function (c)<br />
awful.util.spawn("transset-df --actual --inc 0.1")<br />
end),<br />
awful.key({ modkey }, "Prior", function (c)<br />
awful.util.spawn("transset-df --actual --dec 0.1")<br />
end),<br />
-- Your other key bindings<br />
[...]<br />
)<br />
<br />
==== ImageMagick ====<br />
You may have problems if you set your wallpaper with imagemagick's ''display'' command, it doesn't work well with xcompmgr. Please note that awsetbg may be using ''display'' if it doesn't have any other options. Installing habak, feh, hsetroot or whatever should fix the problem (''grep -A 1 wpsetters /usr/bin/awsetbg'' to see your options).<br />
<br />
===Autorun programs===<br />
''See also [https://awesome.naquadah.org/wiki/Autostart the Autostart page on the Awesome wiki].''<br />
<br />
awesome doesn't run programs set to autostart by the Freedesktop specification like GNOME or KDE. However, awesome does provide a few functions for starting programs (in addition to the Lua standard library function {{Ic|os.execute}}). To run the same programs on startup as GNOME or KDE, you can install [https://aur.archlinux.org/packages.php?ID=41099 dex] from the [[AUR]] and then run that in your rc.lua:<br />
<br />
os.execute"dex -a"<br />
<br />
If you just want to set up a list of apps for awesome to launch at startup, you can create a table of all the commands you want to spawn and loop through it:<br />
<br />
do<br />
local cmds = <br />
{ <br />
"swiftfox",<br />
"mutt",<br />
"consonance",<br />
"linux-fetion",<br />
"weechat-curses",<br />
--and so on...<br />
}<br />
<br />
for _,i in pairs(cmds) do<br />
awful.util.spawn(i)<br />
end<br />
end<br />
<br />
(You could also run calls to {{Ic|os.execute}} with commands ending in '{{Ic|&}}', but it's probably a better idea to stick to the proper spawn function.)<br />
<br />
To run a program only if it is not currently running, you can spawn it with a shell command that runs the program only if {{Ic|pgrep}} doesn't find a running process with the same name:<br />
function run_once(prg)<br />
awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")")<br />
end<br />
<br />
So, for example, to run {{Ic|parcellite}} only if there is not a {{Ic|parcellite}} process already running:<br />
<br />
run_once("parcellite")<br />
<br />
===Passing content to widgets with awesome-client===<br />
<br />
You can easily send text to an awesome widget. Just create a new widget:<br />
{{bc|<nowiki><br />
mywidget = widget({ type = "textbox", name = "mywidget" })<br />
mywidget.text = "initial text"<br />
</nowiki>}}<br />
To update the text from an external source, use awesome-client:<br />
{{bc|<nowiki> <br />
echo -e 'mywidget.text = "new text"' | awesome-client<br />
</nowiki>}}<br />
Don't forget to add the widget to your wibox.<br />
<br />
===Using a different panel with awesome===<br />
<br />
If you like awesome's lightweightness and functionality but do not like the way its default panel looks, you can install a different panel. Just install xfce4-panel by issuing:<br />
{{bc|<br />
sudo pacman -S xfce4-panel<br />
}}<br />
Of course any other panel will do as well. <br />
Then add it to autorun section of your rc.lua (how to do that is written elsewhere on this wiki). You can also comment out the section which creates wiboxes for each screen (starting from "mywibox[s] = awful.wibox({ position = "top", screen = s })" ) but it isn't necessary. Any way do not forget to check your rc.lua for errors by typing <br />
{{bc|<br />
awesome -k rc.lua<br />
}}<br />
Also you should change your "modkey+R" keybinding, in order to start some other application launcher instead of built in awesome. Xfrun4, bashrun, etc. Check the Application launchers section of [[Openbox_Themes_and_Apps#Application_launchers|Openbox]] article for examples. Don't forget to add<br />
{{bc|<nowiki><br />
properties = { floating = true } },<br />
{ rule = { instance = "$yourapplicationlauncher" },<br />
</nowiki>}}<br />
to your rc.lua.<br />
<br />
===Fix Java (GUI appears gray only)===<br />
Guide taken from [https://bbs.archlinux.org/viewtopic.php?pid=450870].<br />
#Install {{Pkg|wmname}} from community<br />
#Run the following command or add it to your {{ic|.xinitrc}}: {{bc|wmname LG3D}}<br />
<br />
===Prevent Nautilus from displaying the desktop (Gnome3)===<br />
Run dconf-editor. Navigate to org->background and uncheck "draw-background" as well as "show-desktop-icons" for good measure. That's it!<br />
<br />
Another option is moving /usr/bin/nautilus to a new location and replacing it with a script that runs 'nautilus --no-desktop' passing any arguments it receives along.<br />
<br />
#!/bin/sh<br />
/usr/bin/nautilus-real --no-desktop $@<br />
<br />
===Transitioning away from Gnome3===<br />
Run 'gnome-session-properties' and remove programs that you won't be needing anymore (e.g Bluetooth Manager, Login Sounds, etc).<br />
<br />
If you'd like to get rid of GDM, make sure that your rc.conf DAEMONS list includes "dbus" (and "cupsd" if you have a printer). It's advisable to get a different login manager (like [https://wiki.archlinux.org/index.php/SLiM SLiM]), but you can do things manually if you wish. That entails setting up your [https://wiki.archlinux.org/index.php/Udev .xinitrc properly] and installing something like devmon ([https://aur.archlinux.org/packages.php?ID=45842 AUR]).<br />
<br />
If you wan't to keep a few convenient systray applets and your GTK theme, append this to your rc.lua;<br />
function start_daemon(dae)<br />
daeCheck = os.execute("ps -eF | grep -v grep | grep -w " .. dae)<br />
if (daeCheck ~= 0) then<br />
os.execute(dae .. " &")<br />
end<br />
end<br />
<br />
procs = {"gnome-settings-daemon", "nm-applet", "kupfer", "gnome-sound-applet", "gnome-power-manager"}<br />
for k = 1, #procs do<br />
start_daemon(procs[k])<br />
end<br />
<br />
===Prevent the mouse scroll wheel from changing tags===<br />
In your rc.lua, change the Mouse Bindings section to the following;<br />
-- {{{ Mouse bindings<br />
root.buttons(awful.util.table.join(<br />
awful.button({ }, 3, function () mymainmenu:toggle() end)))<br />
-- }}}<br />
<br />
==Troubleshooting==<br />
<br />
===LibreOffice===<br />
If you encounter UI problems with libreoffice install libreoffice-gnome.<br />
<br />
===Mod4 key===<br />
<br />
The Mod4 is by default the '''Win key'''. If it's not mapped by default, for some reason, you can check the keycode of your Mod4 key with<br />
<br />
$ xev<br />
<br />
It should be 115 for the left one. Then add this to your ~/.xinitrc<br />
<br />
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"<br />
exec awesome<br />
<br />
The problem in this case is that some xorg installations recognize keycode 115, but incorrectly as the 'Select' key. The above command explictly remaps keycode 115 to the correct 'Super_L' key.<br />
<br />
====Mod4 key vs. IBM ThinkPad users====<br />
<br />
IBM ThinkPads do not come equipped with a Window key (although Lenovo have changed this tradition on their ThinkPads). As of writing, the Alt key is not used in command combinations by the default rc.lua (refer to the Awesome wiki for a table of commands), which allows it be used as a replacement for the Super/Mod4/Win key. To do this, edit your rc.lua and replace:<br />
<br />
modkey = "Mod4"<br />
<br />
by:<br />
<br />
modkey = "Mod1"<br />
<br />
Note: Awesome does a have a few commands that make use of Mod4 plus a single letter. Changing Mod4 to Mod1/Alt could cause overlaps for some key combinations. The small amount of instances where this happens can be changed in the rc.lua file.<br />
<br />
If you do not like to change the awesome standards, you might like to remap a key. For instance the caps lock key is rather useless (for me) adding the following contents to ~/.Xmodmap <br />
<br />
clear lock <br />
add mod4 = Caps_Lock<br />
<br />
and [[Extra Keyboard Keys in Xorg#Step 2: Testing|(re)load]] the file.<br />
This will change the caps lock key into the mod4 key and works nicely with the standard awesome settings. In addition, if needed, it provides the mod4 key to other X-programs as well.<br />
<br />
Not confirmed, but if recent updates of xorg related packages break mentioned remapping the second line can be replaced by (tested on a DasKeyboard with no left Super key):<br />
<br />
keysym Caps_Lock = Super_L Caps_Lock<br />
<br />
===Brasero===<br />
If Brasero doesn't detect your blank disks when started in Awesome, but works just fine when started in Gnome, try using<br />
$ dbus-launch brasero<br />
<br />
===Eclipse: cannot resize/move main window===<br />
If you get stuck and cannot move or resize the main window (using mod4 + left/right mouse button) edit the workbench.xml and set fullscreen/maximized to false (if set) and reduce the width and height to numbers smaller than your single screen desktop area.<br />
{{Note|workbench.xml can be found in: <eclipse_workspace>/.metadata/.plugins/org.eclipse.ui.workbench/ and the line to edit is <window height&#61;"xx" maximized&#61;"true" width&#61;"xx" x&#61;"xx" y&#61;"xx">.}}<br />
<br />
===YouTube: fullscreen appears in background===<br />
[https://bbs.archlinux.org/viewtopic.php?pid=1085494#p1085494] If YouTube videos appear underneath your web browser when in fullscreen mode, add this to your rc.lua<br />
<br />
{ rule = { instance = "plugin-container" },<br />
properties = { floating = true } },<br />
<br />
==External Links==<br />
* http://awesome.naquadah.org/wiki/FAQ - FAQ<br />
* http://www.lua.org/pil/ - Programming in Lua (first edition)<br />
* http://awesome.naquadah.org/ - The official awesome website<br />
* http://awesome.naquadah.org/wiki/Main_Page - the awesome wiki<br />
* http://www.penguinsightings.org/desktop/awesome/ - A review<br />
* http://compsoc.tardis.ed.ac.uk/wiki/AwesomeWM_guide - Awesome guide<br />
* https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=User:Fileunderwater&diff=208582User:Fileunderwater2012-06-14T11:48:22Z<p>Fileunderwater: Creating page</p>
<hr />
<div>Also active on the [http://wiki.archlinux.se Swedish wiki].</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=NTFS-3G&diff=203728NTFS-3G2012-06-05T11:15:37Z<p>Fileunderwater: Undo revision 203387 by DarkCerberus (talk) - package seems to be updated now</p>
<hr />
<div>[[Category:File systems]]<br />
{{i18n|NTFS-3G}}<br />
<br />
[http://www.tuxera.com/community/ntfs-3g-download/ NTFS-3G] is an open source implementation of Microsoft's NTFS file system that includes read and write support. Because it is considered to be easier to configure and developed write support earlier, users generally prefer NTFS-3G over {{Pkg|ntfsprogs}} ntfsmount. NTFS-3G developers use the FUSE file system to facilitate development and to help with portability. This document will describe how to setup NTFS-3G to work on your computer.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] the {{Pkg|ntfs-3g}} package from the [[Official Repositories|official repositories]].<br />
<br />
== Manual mounting ==<br />
<br />
Two options exist for manually mounting NTFS partitions. The traditional:<br />
# mount -t ntfs-3g /dev/<your-NTFS-partition> /{mnt,...}/<folder><br />
<br />
Mount type {{ic|ntfs-3g}} does not need to be explicitly specified in Arch. The {{ic|mount}} command by default will use {{ic|/sbin/mount.ntfs}} which is symlinked to {{ic|/bin/ntfs-3g}} after the {{Pkg|ntfs-3g}} package is installed.<br />
<br />
The second option is to call {{ic|ntfs-3g}} directly:<br />
# ntfs-3g /dev/<your-NTFS-partition> /<mount-location><br />
<br />
== Configuring == <br />
<br />
Your NTFS partition(s) can be setup to mount automatically, or pre-configured to be able to mount in a certain way when you would like them to be mounted. This configuration can be done in the static filesystem configuration ([[fstab]]) or by the use of udev rules.<br />
<br />
=== Default settings ===<br />
<br />
Using the default settings will mount the NTFS partition(s) at boot. With this method, '''if''' the parent folder that it is mounted upon has the proper user or group permissions, then that user or group will be able to read and write on that partition(s).<br />
<br />
Put this in {{ic|/etc/fstab}}:<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/<NTFS-part> /mnt/windows ntfs-3g defaults 0 0<br />
<br />
=== Allowing Group/User ===<br />
<br />
You can also tell {{ic|/etc/fstab}} (the NTFS-3G driver) other options like those who are allowed to access (read) the partition. For example, for you to allow people in the {{ic|users}} group to have access:<br />
<br />
/dev/<NTFS-part> /mnt/windows ntfs-3g gid=users,umask=0022 0 0<br />
<br />
By default, the ntfs-3g driver enable write support for root only. To enable user writing, use the {{ic|dmask}} parameter to enable user writing:<br />
<br />
/dev/<NTFS-part> /mnt/windows ntfs-3g gid=users,fmask=113,dmask=002 0 0<br />
<br />
If you are running on a single user machine, you may like to own the file system yourself:<br />
/dev/<NTFS-part> /mnt/windows ntfs-3g uid=USERNAME,gid=users 0 0<br />
<br />
=== Basic NTFS-3G options ===<br />
<br />
For most, the above settings should suffice. Here are a few other options that are general common options for various Linux filesystems. For a complete list, see [http://www.tuxera.com/community/ntfs-3g-manual/#6 this]<br />
<br />
;umask: umask is a built-in shell command which automatically sets file permissions on newly created files. For Arch Linux, the default umask for root and user is 0022. With 0022 new folders have the directory permissions of 755 and new files have permissions of 644. You can read more about umask permissions [http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html here].<br />
;noauto: If {{ic|noauto}} is set, NTFS entries in {{ic|/etc/fstab}} do not get mounted automatically at boot.<br />
;uid: The user id number. This allows a specific user to have full access to the partition. Your uid can be found with the {{ic|id}} command.<br />
;fmask and dmask: Like {{ic|umask}} but defining file and directory respectively individually.<br />
;locale: (deprecated as of 2009.1.1) - <s>some locales will need to specify their region for local characters to display properly.</s><br />
<br />
== Other configurations ==<br />
<br />
Some other configurations that might help you set up your NTFS partition.<br />
<br />
=== KDE 4 ===<br />
<br />
For [[KDE]] >= 4.4, right-click the Device Notifier applet and choose '''Device Notifier Settings''' then in '''Removable Devices''' select your partition and choose '''Automount on login'''.<br />
<br />
For this to work, it might be possible to [[Udev#Mount_internal_drives_as_a_normal_user|configure PolicyKit]] to allow passwordless mounting.<br />
<br />
=== NTFS-config ===<br />
<br />
{{AUR|ntfs-config}} is a program that may be able to help configure your NTFS partition(s) if other methods do not work.<br />
<br />
== Troubleshooting ==<br />
<br />
Some ideas for troubleshooting common problems.<br />
<br />
=== Damaged NTFS Filesystems ===<br />
<br />
If an NTFS filesystem has errors on it, NTFS-3G will mount it as read-only. To fix an NTFS filesystem, load Windows and run its disk checking program, chkdsk.<br />
Take in account that ntfsfix can only repair some errors. If it fails, chkdsk will probably succeed.<br />
<br />
To repair the file system without booting windows, [[pacman|install]] the {{Pkg|ntfsprogs}} package available in the [[Official Repositories|official repositories]].<br />
<br />
To fix the NTFS file system, the device must already be unmounted. For example, to fix an NTFS partition residing in {{ic|/dev/sda2}}:<br />
<br />
# umount /dev/sda2<br />
# ntfsfix /dev/sda2<br />
Mounting volume... OK<br />
Processing of $MFT and $MFTMirr completed successfully.<br />
NTFS volume version is 3.1.<br />
NTFS partition /dev/sda2 was processed successfully.<br />
# mount /dev/sda2<br />
<br />
If all went well, the volume will now be writable.<br />
<br />
=== Mount Failure ===<br />
<br />
If you cannot mount your NTFS partition even when following this guide, try to add the UUID section to your {{ic|/etc/fstab}} to all NTFS partitions.<br />
<br />
== Resources ==<br />
<br />
* [http://www.tuxera.com/community/ntfs-3g-manual/ Official NTFS-3G Manual]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=LaTeX&diff=203552LaTeX2012-06-03T18:55:39Z<p>Fileunderwater: Added vim-latex</p>
<hr />
<div>{{i18n|LaTeX}}<br />
[[fr:LaTeX]]<br />
<br />
{{Expansion}}<br />
[[Category:TeX]]<br />
<br />
[[Wikipedia:LaTeX|LaTeX]] is a popular markup language and document preparation system, often used in the sciences. The current implementation in Arch Linux is [[TeX Live]].<br />
<br />
== Installation ==<br />
For a standard LaTeX installation, [[Pacman|install]] the {{Pkg|texlive-most}} package group, which includes all of the [[TeX Live]] packages in the [[Official Repositories|official repositories]]. <br />
<br />
For internationalization support, install the {{Pkg|texlive-lang}} package, which provides various character sets and non-English features.<br />
<br />
=== Select packages (alternate) ===<br />
It is also possible to select the individual LaTeX packages you require. Install the {{Pkg|texlive-core}} package, which contains the LaTeX compiler. On its own, {{Pkg|texlive-core}} should be suitable for most needs.<br />
<br />
To compile a TeX file install the {{Pkg|texlive-bin}} package.<br />
<br />
== Editors and environments ==<br />
{{Wikipedia|Comparison of TeX editors}}<br />
<br />
While LaTeX can be written in a simple text editor, many people wish to edit LaTeX source in a specialized environment. The following editors, which use various toolkits, are all available in the [[Official Repositories|official repositories]] and can be installed with [[pacman]].<br />
<br />
'''GTK+'''<br />
{{note|[[GTK+]] applications run in both the [[GNOME]] and [[Xfce]] environments.}}<br />
<br />
* Gedit - Supports LaTeX syntax highlighting, it is included in GNOME.<br />
* [http://developer.berlios.de/projects/winefish/ Winefish] - A very lightweight LaTeX editing suite. It supports highlighting and code completion, compile-from-editor, among other things<br />
* {{pkg|Geany}} - An IDE that includes LaTeX syntax highlighting, building, and shows a list of environments/sections/labels in the sidebar.<br />
<br />
'''KDE'''<br />
* [http://kile.sourceforge.net/ Kile] - A user friendly TeX/LaTeX front-end for [[KDE]]<br />
* [http://www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language/ KtikZ] - GUI making diagrams with [http://pgf.sourceforge.net/ TikZ/PGF] easier.<br />
<br />
'''Other'''<br />
* [[Vim]] together with {{AUR|Vim-latexsuite|Vim-latex}} can be used as customizable LaTeX environment.<br />
* [http://www.xm1math.net/texmaker/ TeXMaker] and {{AUR|TeXWorks}} can be both downloaded from the [[Arch User Repository|AUR]].<br />
* [http://www.lyx.org/ LyX] - An advanced open-source [[Wikipedia:WYSIWYM|WYSIWYM]] document processor<br />
* [http://jabref.sourceforge.net/index.php JabRef] - Java GUI frontend for managing BibTeX and other bibliographies. If you have issues with certain features not working in JabRef (like the "Find" command), it may be an incompatibility with Java 7. Try installing Java 6 (i.e. {{pkg|openjdk6}}). This will uninstall {{pkg|jdk7-openjdk}} and {{pkg|jre7-openjdk}}, and all features in JabRef should now work.<br />
<br />
== Updating babelbib language definitions ==<br />
<br />
If you have the very specific problem of babelbib not having the latest language definitions that you need, and you don't want to recompile everything, you can get them manually from http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/ and put them in {{ic|/usr/share/texmf-dist/tex/latex/babelbib/}}. For example:<br />
<br />
{{bc|<br />
# cd /usr/share/texmf-dist/tex/latex/babelbib/ <br />
# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/romanian.bdf<br />
# wget [...all-other-language-files...]<br />
# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/babelbib.sty<br />
}}<br />
<br />
Afterwards, you need to run texhash to update the TeX database:<br />
<br />
{{bc|# texhash}}<br />
<br />
== See also ==<br />
* [[TeX Live]]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=List_of_applications/Science&diff=203550List of applications/Science2012-06-03T18:38:56Z<p>Fileunderwater: added the statistical MCMC sampler JAGS</p>
<hr />
<div><noinclude><br />
[[Category:Mathematics and science]]<br />
[[Category:Applications]]<br />
{{i18n|Common Applications/Science}}<br />
{{Common Applications navigation}}<br />
</noinclude><br />
== Science ==<br />
{{Note|1=For possibly more up to date selection of scientific applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=15&SeB=nd&SB=n&SO=a&PP=25 AUR 'science' category]}}<br />
<br />
=== Mathematics ===<br />
==== Calculator ====<br />
* {{App|Speedcrunch|feature-rich scientific calculator|http://speedcrunch.org|{{AUR|speedcrunch}}}}<br />
* {{App|ExtCalc|feature-rich scientific calculator|http://extcalc-linux.sourceforge.net/|{{AUR|extcalc}}}}<br />
* {{App|KAlgebra|calculator and 3D plot|http://kalgebra.berlios.de/|{{Pkg|kdeedu-kalgebra}}}}<br />
* {{App|Qalculate|calculator and equation solver with fault-tolerant parsing. Recognises constants and units|http://qalculate.sourceforge.net/|{{Pkg|libqalculate}}}}<br />
<br />
==== Computer Algebra System ====<br />
* {{App|Maxima|[[Wikipedia:Maple (software)|Maple]]/[[Wikipedia:Wolfram Mathematica|Mathematica]]-like program or its frontend [http://wxmaxima.sourceforge.net/wiki/index.php/Main_Page wXMaxima]|http://maxima.sourceforge.net/|{{Pkg|maxima}}}}<br />
* {{App|[[Sage]]|"Maple/Mathematica"-like program in python|http://www.sagemath.org/|{{AUR|sage-mathematics}}}}<br />
<br />
==== Scientific or Technical Computing ====<br />
* {{App|[[Octave]]|[[Matlab]]-like program|http://www.gnu.org/software/octave/ |{{Pkg|octave}}}}<br />
* {{App|Freemat|"Matlab"-like program|http://freemat.sourceforge.net/|{{Pkg|freemat}}}}<br />
* {{App|Scilab|"Matlab"-like program|http://www.scilab.org/|{{AUR|scilab}}}}<br />
* {{App|Euler|mathematical programming environment like MatLab or Octave|http://euler.sourceforge.net|{{AUR|Euler}}}}<br />
* {{App|Englab|cross-compile mathematical platform with a C like syntax|http://englab.bugfest.net|{{AUR|englab}}}}<br />
* {{App|Pylab|python modules for scientific calculations|http://www.scipy.org/PyLab|{{Pkg|python2-matplotlib}}}}<br />
<br />
==== Statistics ====<br />
* {{App|PSPP|free SPSS implementation (Graphical:PSPPire)|http://www.gnu.org/software/pspp/|{{AUR|pspp}}}}<br />
* {{App|[[R]]|software environment for statistical computing and graphics|http://cran.r-project.org/|{{Pkg|r}}}}<br />
* {{App|RKWard|frontend for the statistical language R|http://rkward.sourceforge.net/|{{AUR|rkward}}}}<br />
* {{App|JAGS|is Just Another Gibbs Sampler. It is a cross plattform program for analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation|http://mcmc-jags.sourceforge.net/|{{AUR|jags}}}}<br />
<br />
==== Data Evaluation ====<br />
* {{App|[[Wikipedia:Fityk|Fityk]]|non-linear fitting of curves|http://www.unipress.waw.pl/fityk/|{{AUR|fityk}}}}<br />
* {{App|[[Wikipedia:QtiPlot|QtiPlot]]|similar & semi-compatible with [[Wikipedia:Origin (software)|Origin]]|http://soft.proindependent.com/qtiplot.html|{{Pkg|qtiplot}}}}<br />
* {{App|SciDavis|similar to QtiPlot|http://scidavis.sourceforge.net/|{{AUR|scidavis}}}} <br />
* {{App|LabPlot|comparable to "OriginLab"|http://labplot.sourceforge.net/|{{AUR|labplot2}}}} <br />
* {{App|ROOT|data analysis program and library (originally for particle physics)|http://root.cern.ch/drupal/|{{Pkg|root}}}} <br />
* {{App|GnuPlot|commanine based plotting program|http://www.gnuplot.info/|{{Pkg|gnuplot}}}} <br />
* {{App|XmGrace|plotting program with GUI|http://plasma-gate.weizmann.ac.il/Grace/|{{Pkg|grace}}}} <br />
* {{App|Extrema|visualization and data analysis tool.(no longer in active development)|http://sourceforge.net/projects/extrema|{{AUR|extrema}}}}<br />
See also [[Common Applications#Spreadsheets]]<br />
<br />
=== Chemistry and Biology ===<br />
==== Computational Biology====<br />
* {{App|Biopython|Python package with tools for computational biology.|http://biopython.org/wiki/Biopython|{{AUR|biopython}}}}<br />
==== Molecule Viewer ====<br />
* {{App|[[Wikipedia:Avogadro_(software)|Avogadro]]|edit and view 3D molecule structures (also .pdb) and simulate|http://avogadro.openmolecules.net/wiki/Main_Page|{{Pkg|avogadro}}}} <br />
* {{App|Ballview|standalone molecular modeling and visualization application|http://www.ballview.org/|{{AUR|ball}}}}<br />
* {{App|[[Wikipedia:Ghemical|Ghemical]]|edit and view 3D molecule structures (also .pdb) and simulate|http://bioinformatics.org/ghemical/ghemical/index.html|{{Pkg|ghemical}}}} <br />
* {{App|Rasmol|view 3D molecule structures|http://www.rasmol.org/|{{AUR|rasmol}}}} <br />
* {{App|Pymol|view 3D molecule structures|http://pymol.sourceforge.net/|{{AUR|pymol}}}}<br />
<br />
==== Molecule Drawing ====<br />
* {{App|[[Wikipedia:BKchem|BKchem]]|practical and goodlooking skeletal formula molecule drawing program|http://bkchem.zirael.org/|{{AUR|bkchem}}}} <br />
* {{App|[[Wikipedia:XDrawChem|XDrawChem]]|extensive skeletal formula molecule drawing program (incl. spectroscopy prediction)|http://xdrawchem.sourceforge.net/|{{AUR|xdrawchem}}}} <br />
* {{App|EasyChem|simple skeletal formula molecule drawing program|http://easychem.sourceforge.net/|{{AUR|easychem}}}} <br />
* {{App|Chemtool|skeletal formula molecule drawing program|http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html|{{Pkg|chemtool}}}} <br />
* {{App|Gabedit|graphical user interface to computational chemistry packages like Gamess-US, Gaussian, Molcas, Molpro, MPQC, OpenMopac, Orca, PCGamess and hem |http://gabedit.sourceforge.net/|{{AUR|gabedit}}}}<br />
<br />
==== Periodic Table ====<br />
* {{App|[[Wikipedia:Kalzium|Kalzium]]|periodic table of the elements with molecule editor and equation solver from the [[KDE]] project|http://edu.kde.org/kalzium/|{{Pkg|kdeedu-kalzium}}}}<br />
* {{App|gElemental|periodic table of the elements and additional information|http://freshmeat.net/projects/gelemental|{{AUR|gelemental}}}} <br />
<br />
==== Biochemistry ====<br />
* {{App|[[wikipedia:Bioclipse|Bioclipse]]|Aims to be a complete biochemistry office suite.|http://www.bioclipse.net/|{{AUR?|bioclipse}}}} <br />
<br />
==== Molecular Modeling ====<br />
* {{App|[[Wikipedia:GROMACS|GROMACS]]|versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles|http://www.gromacs.org|{{AUR|gromacs}}}} <br />
* {{App|[[Wikipedia:Quantum ESPRESSO|Quantum Espresso]]|integrated suite of computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials (both norm-conserving and ultrasoft)|http://www.quantum-espresso.org/|{{AUR|quantum-espresso}}}}<br />
<br />
==== Image manipulation ====<br />
* {{App|[[Wikipedia:ImageJ|ImageJ]]|Java-based image processing and analysing program, that provides extensibility via plugins and macros. Widely used in microscopy (e.g. for cell counting).|http://rsb.info.nih.gov/ij|{{AUR|imagej}}}}<br />
<br />
=== Astronomy ===<br />
* {{App|[[Wikipedia:Cartes du Ciel|Cartes Du Ciel]]|aka 'Skychart' - Planetarium,Sky mapping & Telescope control|http://www.ap-i.net/skychart/start/|{{AUR|skychart}}}} <br />
* {{App|[[Wikipedia:Celestia|Celestia]]|space simulation software|http://www.shatters.net/celestia/|{{Pkg|celestia}}}}<br />
* [http://hennigbuam.de/georg/gimp.html: GIMP Plugins Astronomy]- GIMP plugins for astronomical images, overlay mode, darkness subtraction, merge images and others {{AUR|gimp-plugin-astronomy}}<br />
* {{App|[[Wikipedia:XEphem|Exphem]]|Ephemeris & Planetarium program|http://www.clearskyinstitute.com/xephem/xephem.html|{{AUR|xephem}}}}<br />
* {{App|[[Wikipedia:KStars|KStars]]|KDE desktop planetarium|http://edu.kde.org/kstars/|{{Pkg|kdeedu-kstars}}}}<br />
* {{App|StarPlot|3D starchart viewer|http://starplot.org/|{{AUR|starplot}}}}<br />
* {{App|[[Wikipedia:Stellarium (computer program)|Stellarium]]|beautiful 3D planetarium|http://www.stellarium.org/|{{Pkg|stellarium}}}}<br />
<br />
=== Physics ===<br />
==== Electronics ====<br />
* {{App|[[gEDA]]|electronic design automation tools|http://www.gpleda.org|{{Pkg|geda-gaf}}}}<br />
* {{App|[[Wikipedia:Quite Universal Circuit Simulator|Qucs]]|electronic circuit simulation|http://qucs.sourceforge.net/|{{Pkg|qucs}}}} <br />
* {{App|Oregano|electronic circuit simulation|https://gitorious.org/oregano|{{AUR|oregano}}}} <br />
* {{App|QElectroTech|draw advanced electrical circuits|http://qelectrotech.org/|{{AUR|qelectrotech}}}} <br />
* {{App|[[Wikipedia:KiCAD|KiCAD]]|design schematics for printed circuit boards|http://kicad.sourceforge.net/wiki/index.php/Main_Page|{{AUR|kicad}}}} <br />
* {{App|KSimus|logical circuits simulation|http://ksimus.berlios.de/|{{AUR|ksimus}}}} <br />
* {{App|KLogic|logical circuits simulation|http://www.a-rostin.de/|{{AUR|klogic}}}}<br />
<br />
==== Physics Simulation ====<br />
* {{App|Aster|simulation for civil and structural engineering|http://www.code-aster.org|{{AUR|aster}}}}<br />
* {{App|Step|physics Simulation Educative physics simulation (KDE)|http://edu.kde.org/step/|{{Pkg|kdeedu-step}}}}<br />
<br />
==== Unit Conversion ====<br />
* {{App|Convertall|convert between different physical units|http://convertall.bellz.org/|{{AUR|convertall}}}} <br />
* {{App|Gonvert|convert between different physical units|http://www.unihedron.com/projects/gonvert/|{{AUR|gonvert}}}} <br />
* {{App|Units|CLI Unit converter and calculator|http://www.gnu.org/s/units/|{{Pkg|units}}}}</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=List_of_applications/Science&diff=203517List of applications/Science2012-06-03T13:19:40Z<p>Fileunderwater: added Biopython</p>
<hr />
<div><noinclude><br />
[[Category:Mathematics and science]]<br />
[[Category:Applications]]<br />
{{i18n|Common Applications/Science}}<br />
{{Common Applications navigation}}<br />
</noinclude><br />
== Science ==<br />
{{Note|1=For possibly more up to date selection of scientific applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=15&SeB=nd&SB=n&SO=a&PP=25 AUR 'science' category]}}<br />
<br />
=== Mathematics ===<br />
==== Calculator ====<br />
* {{App|Speedcrunch|feature-rich scientific calculator|http://speedcrunch.org|{{AUR|speedcrunch}}}}<br />
* {{App|ExtCalc|feature-rich scientific calculator|http://extcalc-linux.sourceforge.net/|{{AUR|extcalc}}}}<br />
* {{App|KAlgebra|calculator and 3D plot|http://kalgebra.berlios.de/|{{Pkg|kdeedu-kalgebra}}}}<br />
* {{App|Qalculate|calculator and equation solver with fault-tolerant parsing. Recognises constants and units|http://qalculate.sourceforge.net/|{{Pkg|libqalculate}}}}<br />
<br />
==== Computer Algebra System ====<br />
* {{App|Maxima|[[Wikipedia:Maple (software)|Maple]]/[[Wikipedia:Wolfram Mathematica|Mathematica]]-like program or its frontend [http://wxmaxima.sourceforge.net/wiki/index.php/Main_Page wXMaxima]|http://maxima.sourceforge.net/|{{Pkg|maxima}}}}<br />
* {{App|[[Sage]]|"Maple/Mathematica"-like program in python|http://www.sagemath.org/|{{AUR|sage-mathematics}}}}<br />
<br />
==== Scientific or Technical Computing ====<br />
* {{App|[[Octave]]|[[Matlab]]-like program|http://www.gnu.org/software/octave/ |{{Pkg|octave}}}}<br />
* {{App|Freemat|"Matlab"-like program|http://freemat.sourceforge.net/|{{Pkg|freemat}}}}<br />
* {{App|Scilab|"Matlab"-like program|http://www.scilab.org/|{{AUR|scilab}}}}<br />
* {{App|Euler|mathematical programming environment like MatLab or Octave|http://euler.sourceforge.net|{{AUR|Euler}}}}<br />
* {{App|Englab|cross-compile mathematical platform with a C like syntax|http://englab.bugfest.net|{{AUR|englab}}}}<br />
* {{App|Pylab|python modules for scientific calculations|http://www.scipy.org/PyLab|{{Pkg|python2-matplotlib}}}}<br />
<br />
==== Statistics ====<br />
* {{App|PSPP|free SPSS implementation (Graphical:PSPPire)|http://www.gnu.org/software/pspp/|{{AUR|pspp}}}}<br />
* {{App|[[R]]|software environment for statistical computing and graphics|http://cran.r-project.org/|{{Pkg|r}}}}<br />
* {{App|RKWard|frontend for the statistical language R|http://rkward.sourceforge.net/|{{AUR|rkward}}}}<br />
<br />
==== Data Evaluation ====<br />
* {{App|[[Wikipedia:Fityk|Fityk]]|non-linear fitting of curves|http://www.unipress.waw.pl/fityk/|{{AUR|fityk}}}}<br />
* {{App|[[Wikipedia:QtiPlot|QtiPlot]]|similar & semi-compatible with [[Wikipedia:Origin (software)|Origin]]|http://soft.proindependent.com/qtiplot.html|{{Pkg|qtiplot}}}}<br />
* {{App|SciDavis|similar to QtiPlot|http://scidavis.sourceforge.net/|{{AUR|scidavis}}}} <br />
* {{App|LabPlot|comparable to "OriginLab"|http://labplot.sourceforge.net/|{{AUR|labplot2}}}} <br />
* {{App|ROOT|data analysis program and library (originally for particle physics)|http://root.cern.ch/drupal/|{{Pkg|root}}}} <br />
* {{App|GnuPlot|commanine based plotting program|http://www.gnuplot.info/|{{Pkg|gnuplot}}}} <br />
* {{App|XmGrace|plotting program with GUI|http://plasma-gate.weizmann.ac.il/Grace/|{{Pkg|grace}}}} <br />
* {{App|Extrema|visualization and data analysis tool.(no longer in active development)|http://sourceforge.net/projects/extrema|{{AUR|extrema}}}}<br />
See also [[Common Applications#Spreadsheets]]<br />
<br />
=== Chemistry and Biology ===<br />
==== Computational Biology====<br />
* {{App|Biopython|Python package with tools for computational biology.|http://biopython.org/wiki/Biopython|{{AUR|biopython}}}}<br />
==== Molecule Viewer ====<br />
* {{App|[[Wikipedia:Avogadro_(software)|Avogadro]]|edit and view 3D molecule structures (also .pdb) and simulate|http://avogadro.openmolecules.net/wiki/Main_Page|{{Pkg|avogadro}}}} <br />
* {{App|Ballview|standalone molecular modeling and visualization application|http://www.ballview.org/|{{AUR|ball}}}}<br />
* {{App|[[Wikipedia:Ghemical|Ghemical]]|edit and view 3D molecule structures (also .pdb) and simulate|http://bioinformatics.org/ghemical/ghemical/index.html|{{Pkg|ghemical}}}} <br />
* {{App|Rasmol|view 3D molecule structures|http://www.rasmol.org/|{{AUR|rasmol}}}} <br />
* {{App|Pymol|view 3D molecule structures|http://pymol.sourceforge.net/|{{AUR|pymol}}}}<br />
<br />
==== Molecule Drawing ====<br />
* {{App|[[Wikipedia:BKchem|BKchem]]|practical and goodlooking skeletal formula molecule drawing program|http://bkchem.zirael.org/|{{AUR|bkchem}}}} <br />
* {{App|[[Wikipedia:XDrawChem|XDrawChem]]|extensive skeletal formula molecule drawing program (incl. spectroscopy prediction)|http://xdrawchem.sourceforge.net/|{{AUR|xdrawchem}}}} <br />
* {{App|EasyChem|simple skeletal formula molecule drawing program|http://easychem.sourceforge.net/|{{AUR|easychem}}}} <br />
* {{App|Chemtool|skeletal formula molecule drawing program|http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html|{{Pkg|chemtool}}}} <br />
* {{App|Gabedit|graphical user interface to computational chemistry packages like Gamess-US, Gaussian, Molcas, Molpro, MPQC, OpenMopac, Orca, PCGamess and hem |http://gabedit.sourceforge.net/|{{AUR|gabedit}}}}<br />
<br />
==== Periodic Table ====<br />
* {{App|[[Wikipedia:Kalzium|Kalzium]]|periodic table of the elements with molecule editor and equation solver from the [[KDE]] project|http://edu.kde.org/kalzium/|{{Pkg|kdeedu-kalzium}}}}<br />
* {{App|gElemental|periodic table of the elements and additional information|http://freshmeat.net/projects/gelemental|{{AUR|gelemental}}}} <br />
<br />
==== Biochemistry ====<br />
* {{App|[[wikipedia:Bioclipse|Bioclipse]]|Aims to be a complete biochemistry office suite.|http://www.bioclipse.net/|{{AUR?|bioclipse}}}} <br />
<br />
==== Molecular Modeling ====<br />
* {{App|[[Wikipedia:GROMACS|GROMACS]]|versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles|http://www.gromacs.org|{{AUR|gromacs}}}} <br />
* {{App|[[Wikipedia:Quantum ESPRESSO|Quantum Espresso]]|integrated suite of computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials (both norm-conserving and ultrasoft)|http://www.quantum-espresso.org/|{{AUR|quantum-espresso}}}}<br />
<br />
==== Image manipulation ====<br />
* {{App|[[Wikipedia:ImageJ|ImageJ]]|Java-based image processing and analysing program, that provides extensibility via plugins and macros. Widely used in microscopy (e.g. for cell counting).|http://rsb.info.nih.gov/ij|{{AUR|imagej}}}}<br />
<br />
=== Astronomy ===<br />
* {{App|[[Wikipedia:Cartes du Ciel|Cartes Du Ciel]]|aka 'Skychart' - Planetarium,Sky mapping & Telescope control|http://www.ap-i.net/skychart/start/|{{AUR|skychart}}}} <br />
* {{App|[[Wikipedia:Celestia|Celestia]]|space simulation software|http://www.shatters.net/celestia/|{{Pkg|celestia}}}}<br />
* [http://hennigbuam.de/georg/gimp.html: GIMP Plugins Astronomy]- GIMP plugins for astronomical images, overlay mode, darkness subtraction, merge images and others {{AUR|gimp-plugin-astronomy}}<br />
* {{App|[[Wikipedia:XEphem|Exphem]]|Ephemeris & Planetarium program|http://www.clearskyinstitute.com/xephem/xephem.html|{{AUR|xephem}}}}<br />
* {{App|[[Wikipedia:KStars|KStars]]|KDE desktop planetarium|http://edu.kde.org/kstars/|{{Pkg|kdeedu-kstars}}}}<br />
* {{App|StarPlot|3D starchart viewer|http://starplot.org/|{{AUR|starplot}}}}<br />
* {{App|[[Wikipedia:Stellarium (computer program)|Stellarium]]|beautiful 3D planetarium|http://www.stellarium.org/|{{Pkg|stellarium}}}}<br />
<br />
=== Physics ===<br />
==== Electronics ====<br />
* {{App|[[gEDA]]|electronic design automation tools|http://www.gpleda.org|{{Pkg|geda-gaf}}}}<br />
* {{App|[[Wikipedia:Quite Universal Circuit Simulator|Qucs]]|electronic circuit simulation|http://qucs.sourceforge.net/|{{Pkg|qucs}}}} <br />
* {{App|Oregano|electronic circuit simulation|https://gitorious.org/oregano|{{AUR|oregano}}}} <br />
* {{App|QElectroTech|draw advanced electrical circuits|http://qelectrotech.org/|{{AUR|qelectrotech}}}} <br />
* {{App|[[Wikipedia:KiCAD|KiCAD]]|design schematics for printed circuit boards|http://kicad.sourceforge.net/wiki/index.php/Main_Page|{{AUR|kicad}}}} <br />
* {{App|KSimus|logical circuits simulation|http://ksimus.berlios.de/|{{AUR|ksimus}}}} <br />
* {{App|KLogic|logical circuits simulation|http://www.a-rostin.de/|{{AUR|klogic}}}}<br />
<br />
==== Physics Simulation ====<br />
* {{App|Aster|simulation for civil and structural engineering|http://www.code-aster.org|{{AUR|aster}}}}<br />
* {{App|Step|physics Simulation Educative physics simulation (KDE)|http://edu.kde.org/step/|{{Pkg|kdeedu-step}}}}<br />
<br />
==== Unit Conversion ====<br />
* {{App|Convertall|convert between different physical units|http://convertall.bellz.org/|{{AUR|convertall}}}} <br />
* {{App|Gonvert|convert between different physical units|http://www.unihedron.com/projects/gonvert/|{{AUR|gonvert}}}} <br />
* {{App|Units|CLI Unit converter and calculator|http://www.gnu.org/s/units/|{{Pkg|units}}}}</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Pacman&diff=203400Pacman2012-06-01T15:52:18Z<p>Fileunderwater: 'remote' packages can still come from repositories (as the example path implies).</p>
<hr />
<div>[[Category:Package management]]<br />
[[de:Pacman]]<br />
[[fr:Pacman]]<br />
[[ro:Pacman]]<br />
[[tr:pacman]]<br />
[[sv:Pacman]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|pacman is the Arch Linux [[Wikipedia:Package management system|package manager]]. Package managers are used to install, upgrade, and remove software. This article covers basic usage and troubleshooting tips.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Downgrading Packages}}<br />
{{Article summary wiki|Improve Pacman Performance}}<br />
{{Article summary wiki|pacman GUI Frontends}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ#Package Management}}<br />
{{Article summary wiki|Pacman-key}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
The '''[https://archlinux.org/pacman/ pacman]''' [[Wikipedia:Package management system|package manager]] is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use [[Arch Build System|build system]]. The goal of pacman is to make it possible to easily manage packages, whether they are from the [[Official Repositories|official Arch repositories]] or the user's own builds.<br />
<br />
pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies.<br />
<br />
pacman is written in the C programming language and uses the {{ic|.pkg.tar.xz}} package format.<br />
<br />
{{Tip|The official {{Pkg|pacman}} package also contains other useful tools, such as '''makepkg''', '''pactree''', '''vercmp''' and more. You can get the full list from {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Configuration ==<br />
<br />
pacman configuration is located in {{ic|/etc/pacman.conf}}. This is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in [https://archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read the man page or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
To skip upgrading a specific package, specify it as such:<br />
<br />
{{bc|<nowiki>IgnorePkg=linux</nowiki>}}<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
{{bc|<nowiki>IgnoreGroup=gnome</nowiki>}}<br />
<br />
==== Skip files from being installed to system ====<br />
<br />
To always skip installation of specific directories list them under {{Ic|NoExtract}}. For example, to avoid installation of [[systemd]] units use this:<br />
<br />
{{bc|<nowiki>NoExtract=usr/lib/systemd/system/*</nowiki>}}<br />
<br />
=== Repositories ===<br />
<br />
This section defines which repositories to use, as referred to in {{ic|pacman.conf}}. They can be stated here directly, or included from another file.<br />
<br />
All official repositories use the same {{ic|/etc/pacman.d/mirrorlist}} file which uses the {{ic|$repo}} variable, making it necessary to maintain only one list.<br />
<br />
The following is an example for the [[Official Repositories|official repositories]] that defers [[mirrors]] to {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
# If you want to run 32 bit applications on your x86_64 system,<br />
# enable the multilib repositories as required here.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Care should be taken when using the [testing] repository. It is in active development and updating may cause some packages to stop working. People who use the [testing] repository are encouraged to subscribe to the [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public arch-dev-public mailing list] for current information.}}<br />
<br />
=== Package security ===<br />
<br />
Pacman 4 supports signed packages, which adds an extra layer of security to the packages. To enable signature verification, take a look [[pacman-key|here]].<br />
<br />
== Usage ==<br />
<br />
What follows is just a small sample of the operations that pacman can perform. To read more examples, refer to [https://archlinux.org/pacman/pacman.8.html man pacman].<br />
<br />
===Installing packages===<br />
<br />
====Installing specific packages====<br />
To install a single package or list of packages (including dependencies), issue the following command:<br />
<br />
# pacman -S ''package_name1'' ''package_name2'' ...<br />
<br />
Sometimes there are multiple versions of a package in different repositories, e.g. [extra] and [testing]. To install the former version, the repository needs to be defined in front:<br />
<br />
# pacman -S extra/''package_name''<br />
<br />
====Installing package groups====<br />
Some packages belong to a group of packages that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
will install all the packages that belong to the {{ic|gnome}} group. To see what packages belong to the gnome group, run:<br />
<br />
# pacman -Sg gnome<br />
<br />
Also visit https://archlinux.org/groups/ to see what package groups are available.<br />
<br />
{{Note|If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the {{ic|--needed}} option.}}<br />
<br />
{{Warning|1=When installing packages, do '''not''' refresh the package list without [[#Upgrading packages|upgrading]] the system (i.e. {{ic|pacman -Sy ''package_name''}}); this can lead to dependency issues, see [[#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328].}}<br />
<br />
=== Removing packages ===<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
<br />
# pacman -R ''package_name''<br />
<br />
To remove a package and its dependencies which are not required by any other installed package:<br />
<br />
# pacman -Rs ''package_name''<br />
<br />
To remove a package, its dependencies and all the packages that depend on the target package:<br />
<br />
{{Warning|This operation is recursive, and must be used with care since it can remove many potentially needed packages.}}<br />
<br />
# pacman -Rsc ''package_name''<br />
<br />
To remove a package, which is required by another package, without removing the dependent package:<br />
<br />
# pacman -Rdd ''package_name''<br />
<br />
pacman saves important configuration files when removing certain applications and names them with the extension: {{ic|.pacsave}}. To prevent the creation of these backup files use the {{ic|-n}} option:<br />
<br />
# pacman -Rn ''package_name''<br />
<br />
{{Note|pacman will not remove configurations that the application itself creates (for example "dotfiles" in the home folder).}}<br />
<br />
===Upgrading packages===<br />
<br />
pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. This command can synchronize the repository databases ''and'' update the system's packages (excluding 'local' packages that are not in the configured repositories):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|Instead of immediately updating as soon as updates are available, users must recognize that due to the nature of Arch's rolling release approach, an update may have unforeseen consequences. This means that it is not wise to update if, for example, one is about to deliver an important presentation. Rather, update during free time and be prepared to deal with any problems that may arise.}}<br />
<br />
pacman is a powerful package management tool, but it does not attempt to handle all corner cases. Read [[The Arch Way]] if this causes confusion. Users must be vigilant and take responsibility for maintaining their own system. '''When performing a system update, it is essential that users read all information output by pacman and use common sense.''' If a user-modified configuration file needs to be upgraded for a new version of a package, a {{ic|.pacnew}} file will be created to avoid overwriting settings modified by the user. Pacman will prompt the user to merge them. These files require manual intervention from the user and it is good practice to handle them right after every package upgrade or removal. See [[Pacnew and Pacsave Files]] for more info.<br />
<br />
{{Tip|Remember that pacman's output is logged in {{ic|/var/log/pacman.log}}.}}<br />
<br />
Before upgrading, it is advisable to visit the [https://archlinux.org/ Arch Linux home page] to check the latest news (or subscribe to the RSS feed): when updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.<br />
<br />
If one encounters problems that cannot be solved by these instructions, make sure to search the forum. It is likely that others have encountered the same problem and have posted instructions for solving it.<br />
<br />
=== Querying package databases ===<br />
<br />
pacman queries the local package database with the {{ic|-Q}} flag; see:<br />
<br />
$ pacman -Q --help<br />
<br />
and queries the sync databases with the {{ic|-S}} flag; see:<br />
<br />
$ pacman -S --help<br />
<br />
pacman can search for packages in the database, searching both in packages' names and descriptions:<br />
<br />
$ pacman -Ss ''string1'' ''string2'' ...<br />
<br />
To search for already installed packages:<br />
<br />
$ pacman -Qs ''string1'' ''string2'' ...<br />
<br />
To display extensive information about a given package:<br />
<br />
$ pacman -Si ''package_name''<br />
<br />
For locally installed packages:<br />
<br />
$ pacman -Qi ''package_name''<br />
<br />
Passing two {{ic|-i}} flags will also display the list of backup files and their modification states:<br />
<br />
$ pacman -Qii ''package_name''<br />
<br />
To retrieve a list of the files installed by a package:<br />
<br />
$ pacman -Ql ''package_name''<br />
<br />
For packages not installed, use {{ic|pkgfile}} from [[pkgtools]] or {{ic|nosr}} from {{aur|nosr-git}} from [[AUR]].<br />
<br />
One can also query the database to know which package a file in the file system belongs to:<br />
<br />
$ pacman -Qo /path/to/a/file<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree ''package_name''<br />
<br />
To list all the packages depending on a package, use {{ic|whoneeds}} from [[pkgtools]]:<br />
<br />
$ whoneeds ''package_name''<br />
<br />
=== Additional commands ===<br />
<br />
Upgrade the system and install a list of packages (one-liner):<br />
<br />
# pacman -Syu ''package_name1'' ''package_name2'' ...<br />
<br />
Download a package without installing it:<br />
<br />
# pacman -Sw ''package_name''<br />
<br />
Install a 'local' package that is not from a repository:<br />
<br />
# pacman -U /path/to/package/package_name-version.pkg.tar.xz<br />
<br />
Install a 'remote' package (not from a repository stated in pacman's configuration files):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Clean the package cache of packages that are not currently installed ({{ic|/var/cache/pacman/pkg}}):<br />
<br />
{{Warning|Only do this if sure that the current versions of installed packages are stable and a [[Downgrading Packages|downgrade]] is not needed as {{ic|pacman -Sc}} removes all the old versions of installed packages.}}<br />
<br />
# pacman -Sc<br />
<br />
Clean the entire package cache:<br />
<br />
{{Warning|This clears the entire package cache. Doing this is a bad practice since it removes the ability to downgrade to the current set of packages in the case that an upgrade causes breakage.}}<br />
<br />
# pacman -Scc<br />
<br />
As an alternative to both the {{ic|-Sc}} and {{ic|-Scc}} switches, consider using {{AUR|Cacheclean}} from the [[AUR]]. This python script selectively cleans pacman's cache keeping x old version of each package therein.<br />
<br />
===Partial upgrades are unsupported===<br />
Arch Linux is a rolling release, and new [[Wikipedia:Library (computing)|library]] versions will be pushed to the repositories. The developers and trusted users will rebuild all the packages in the repositories that need to be rebuilt against the libraries. If the system has locally installed packages (such as [[Arch User Repository|AUR]] packages), users will need to rebuild them when their dependencies receive a [[Wikipedia:soname|soname]] bump.<br />
<br />
This means that partial upgrades are '''not supported'''. Do not use {{ic|pacman -Sy package}} or any equivalent such as {{ic|pacman -Sy}} and then {{ic|pacman -S package}}. Always upgrade before installing a package -- particularly if pacman has refreshed the sync repositories. Be very careful when using {{ic|IgnorePkg}} and {{ic|IgnoreGroup}} for the same reason.<br />
<br />
If a partial upgrade scenario has been created, and binaries are broken because they cannot find the libraries they are linked against, '''do not "fix" the problem simply by symlinking'''. Libraries receive [[Wikipedia:soname|soname]] bumps when they are '''not backwards compatible'''. A simple {{ic|pacman -Syu}} to a properly synced mirror will fix the issue as long as pacman is not broken.<br />
<br />
== Troubleshooting ==<br />
{{FAQ<br />
|question=An update to package XYZ broke my system!<br />
|answer=Arch Linux is a rolling-release cutting-edge distribution. Package updates are available as soon as they are deemed stable enough for general use. However, updates sometimes require user intervention: configuration files may need to be updated, optional dependencies may change, etc.<br />
<br />
The most important tip to remember is to not "blindly" update Arch systems. Always read the list of packages to be updated. Note whether "critical" packages are going to be updated ({{ic|linux}}, {{ic|xorg-server}}, and so on). If so, it is usually a good idea to check for any news at https://www.archlinux.org/ and scan recent forum posts to see if people are experiencing problems as a result of an update.<br />
<br />
If a package update is expected/known to cause problems, packagers will ensure that pacman displays an appropriate message when the package is updated. If experiencing trouble after an update, double-check pacman's output by looking at the log ({{ic|/var/log/pacman.log}}). <br />
<br />
At this point, '''only after ensuring there is no information available through pacman, there is no relative news on https://www.archlinux.org/, and there are no forum posts regarding the update''', consider seeking help on the forum, over [[IRC Channel|IRC]], or [[Downgrading Packages|downgrading the offending package]].}}<br />
<br />
{{FAQ<br />
|question=I know an update to package ABC was released, but pacman says my system is up to date!<br />
|answer=pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. <br />
<br />
The only options are be patient or use another mirror. [https://www.archlinux.org/mirrors/status/ MirrorStatus] can help you identify an up-to-date mirror.}}<br />
<br />
{{FAQ<br />
|question=I get an error when updating: "file exists in filesystem"!<br />
|answer=ASIDE: ''Taken from https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw. <br />
<br />
The issue is usually trivial to solve. A safe way is to first check if another package owns the file ({{ic|pacman -Qo /path/to/file}}). If the file is owned by another package, [[Reporting Bug Guidelines|file a bug report]]. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.<br />
<br />
If you had installed a program manually without using pacman or a frontend, you have to remove it and all its files and reinstall properly using pacman.<br />
<br />
Every installed package provides {{ic|/var/lib/pacman/local/$package-$version/files}} file that contains metadata about this package. If this file gets corrupted - is empty or missing - it results in "file exists in filesystem" errors when trying to update the package.<br />
Such an error usually concerns only one package and instead of manually renaming and later removing all the files that belong to the package in question, you can run {{ic|pacman -S --force $package}} to force pacman to overwrite these files.<br />
<br />
Do '''not''' run {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=I get an error when installing a package: "not found in sync db"<br />
|answer=Firstly, ensure the package actually exists (and watch out for typos!) If certain the package exists, your package list may be out-of-date or your repositories may be incorrectly configured. Try running {{ic|pacman -Syy}} to force a refresh of all package lists.}}<br />
<br />
{{FAQ<br />
|question=pacman is repeatedly upgrading the same package!<br />
|answer=This is due to duplicate entries in {{ic|/var/lib/pacman/local/}}, such as two {{ic|linux}} instances. {{ic|pacman -Qi}} outputs the correct version, but {{ic|pacman -Qu}} recognizes the old version and therefore will attempt to upgrade.<br />
<br />
Solution: delete the offending entry in {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman version 3.4 should display an error in case of duplicate entries, which should make this note obsolete.}}}}<br />
<br />
{{FAQ<br />
|question=pacman crashes during an upgrade!<br />
|answer=In the case that pacman crashes with a "database write" error whilst removing packages, and reinstalling or upgrading packages fails:<br />
#Boot using the Arch live CD<br />
#Mount your root filesystem<br />
#Update the pacman database via {{ic|pacman -Syy}}<br />
#Reinstall the broken package via {{ic|pacman -r /path/to/root -S package}}}}<br />
<br />
{{FAQ<br />
|question=I installed software using {{ic|make install}}; these files do not belong to any package!<br />
|answer=If receiving a "conflicting files" error, note that pacman will overwrite manually-installed software if supplied with the {{ic|-f}} switch ({{ic|pacman -Sf}}).<br />
<br />
See [[pacman Tips#Identify files not owned by any package]] for a script that searches the filesystem for ''disowned'' files.}}<br />
<br />
{{FAQ<br />
|question=I need a package with a specific file. How do I know what provides it?<br />
|answer=Install [[pkgtools]] which contains {{ic|pkgfile}} that uses a separate database with all files and their associated packages.}}<br />
<br />
{{FAQ<br />
|question=pacman is completely broken! How do I reinstall it?<br />
|answer=In the case that pacman is broken beyond repair, manually download the necessary packages ({{Pkg|openssl}}, {{Pkg|libarchive}}, and {{Pkg|pacman}}) and extract them to root. The pacman binary will be restored along with its default configuration file. Afterwards, reinstall these packages with pacman to maintain package database integrity. Additional information and an example (outdated) script that automates the process is available in [https://bbs.archlinux.org/viewtopic.php?id=95007 this] forum post.}}<br />
<br />
{{FAQ<br />
|question=After updating my system, I get a "unable to find root device" error after rebooting and my system will no longer boot.<br />
|answer=Most likely your initramfs got broken during a kernel update (improper use of pacman's {{ic|--force}} option can be a cause). Use the below procedure in order to restore it.<br />
<br />
Boot from a Arch live-cd. Once booted, run:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (your root partition)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (your /boot partition) #This step is not needed if you do not have a separate boot partition<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Afterwards, unmount and reboot.<br />
<br />
}}<br />
<br />
== See also ==<br />
* [[Common Applications/Utilities#Package management]]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Pacman&diff=203349Pacman2012-06-01T00:03:44Z<p>Fileunderwater: 'remote' refers to servers other than the official repos.</p>
<hr />
<div>[[Category:Package management]]<br />
[[de:Pacman]]<br />
[[fr:Pacman]]<br />
[[ro:Pacman]]<br />
[[tr:pacman]]<br />
[[sv:Pacman]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|pacman is the Arch Linux [[Wikipedia:Package management system|package manager]]. Package managers are used to install, upgrade, and remove software. This article covers basic usage and troubleshooting tips.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Downgrading Packages}}<br />
{{Article summary wiki|Improve Pacman Performance}}<br />
{{Article summary wiki|pacman GUI Frontends}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ#Package Management}}<br />
{{Article summary wiki|Pacman-key}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
The '''[https://archlinux.org/pacman/ pacman]''' [[Wikipedia:Package management system|package manager]] is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use [[Arch Build System|build system]]. The goal of pacman is to make it possible to easily manage packages, whether they are from the [[Official Repositories|official Arch repositories]] or the user's own builds.<br />
<br />
pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies.<br />
<br />
pacman is written in the C programming language and uses the {{ic|.pkg.tar.xz}} package format.<br />
<br />
{{Tip|The official {{Pkg|pacman}} package also contains other useful tools, such as '''makepkg''', '''pactree''', '''vercmp''' and more. You can get the full list from {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Configuration ==<br />
<br />
pacman configuration is located in {{ic|/etc/pacman.conf}}. This is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in [https://archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read the man page or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
To skip upgrading a specific package, specify it as such:<br />
<br />
{{bc|<nowiki>IgnorePkg=linux</nowiki>}}<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
{{bc|<nowiki>IgnoreGroup=gnome</nowiki>}}<br />
<br />
==== Skip files from being installed to system ====<br />
<br />
To always skip installation of specific directories list them under {{Ic|NoExtract}}. For example, to avoid installation of [[systemd]] units use this:<br />
<br />
{{bc|<nowiki>NoExtract=usr/lib/systemd/system/*</nowiki>}}<br />
<br />
=== Repositories ===<br />
<br />
This section defines which repositories to use, as referred to in {{ic|pacman.conf}}. They can be stated here directly, or included from another file.<br />
<br />
All official repositories use the same {{ic|/etc/pacman.d/mirrorlist}} file which uses the {{ic|$repo}} variable, making it necessary to maintain only one list.<br />
<br />
The following is an example for the [[Official Repositories|official repositories]] that defers [[mirrors]] to {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
# If you want to run 32 bit applications on your x86_64 system,<br />
# enable the multilib repositories as required here.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Care should be taken when using the [testing] repository. It is in active development and updating may cause some packages to stop working. People who use the [testing] repository are encouraged to subscribe to the [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public arch-dev-public mailing list] for current information.}}<br />
<br />
=== Package security ===<br />
<br />
Pacman 4 supports signed packages, which adds an extra layer of security to the packages. To enable signature verification, take a look [[pacman-key|here]].<br />
<br />
== Usage ==<br />
<br />
What follows is just a small sample of the operations that pacman can perform. To read more examples, refer to [https://archlinux.org/pacman/pacman.8.html man pacman].<br />
<br />
===Installing packages===<br />
<br />
====Installing specific packages====<br />
To install a single package or list of packages (including dependencies), issue the following command:<br />
<br />
# pacman -S ''package_name1'' ''package_name2'' ...<br />
<br />
Sometimes there are multiple versions of a package in different repositories, e.g. [extra] and [testing]. To install the former version, the repository needs to be defined in front:<br />
<br />
# pacman -S extra/''package_name''<br />
<br />
====Installing package groups====<br />
Some packages belong to a group of packages that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
will install all the packages that belong to the {{ic|gnome}} group. To see what packages belong to the gnome group, run:<br />
<br />
# pacman -Sg gnome<br />
<br />
Also visit https://archlinux.org/groups/ to see what package groups are available.<br />
<br />
{{Note|If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the {{ic|--needed}} option.}}<br />
<br />
{{Warning|1=When installing packages, do '''not''' refresh the package list without [[#Upgrading packages|upgrading]] the system (i.e. {{ic|pacman -Sy ''package_name''}}); this can lead to dependency issues, see [[#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328].}}<br />
<br />
=== Removing packages ===<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
<br />
# pacman -R ''package_name''<br />
<br />
To remove a package and its dependencies which are not required by any other installed package:<br />
<br />
# pacman -Rs ''package_name''<br />
<br />
To remove a package, its dependencies and all the packages that depend on the target package:<br />
<br />
{{Warning|This operation is recursive, and must be used with care since it can remove many potentially needed packages.}}<br />
<br />
# pacman -Rsc ''package_name''<br />
<br />
To remove a package, which is required by another package, without removing the dependent package:<br />
<br />
# pacman -Rdd ''package_name''<br />
<br />
pacman saves important configuration files when removing certain applications and names them with the extension: {{ic|.pacsave}}. To prevent the creation of these backup files use the {{ic|-n}} option:<br />
<br />
# pacman -Rn ''package_name''<br />
<br />
{{Note|pacman will not remove configurations that the application itself creates (for example "dotfiles" in the home folder).}}<br />
<br />
===Upgrading packages===<br />
<br />
pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. This command can synchronize the repository databases ''and'' update the system's packages (excluding 'local' packages that are not in the configured repositories):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|Instead of immediately updating as soon as updates are available, users must recognize that due to the nature of Arch's rolling release approach, an update may have unforeseen consequences. This means that it is not wise to update if, for example, one is about to deliver an important presentation. Rather, update during free time and be prepared to deal with any problems that may arise.}}<br />
<br />
pacman is a powerful package management tool, but it does not attempt to handle all corner cases. Read [[The Arch Way]] if this causes confusion. Users must be vigilant and take responsibility for maintaining their own system. '''When performing a system update, it is essential that users read all information output by pacman and use common sense.''' If a user-modified configuration file needs to be upgraded for a new version of a package, a {{ic|.pacnew}} file will be created to avoid overwriting settings modified by the user. Pacman will prompt the user to merge them. These files require manual intervention from the user and it is good practice to handle them right after every package upgrade or removal. See [[Pacnew and Pacsave Files]] for more info.<br />
<br />
{{Tip|Remember that pacman's output is logged in {{ic|/var/log/pacman.log}}.}}<br />
<br />
Before upgrading, it is advisable to visit the [https://archlinux.org/ Arch Linux home page] to check the latest news (or subscribe to the RSS feed): when updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.<br />
<br />
If one encounters problems that cannot be solved by these instructions, make sure to search the forum. It is likely that others have encountered the same problem and have posted instructions for solving it.<br />
<br />
=== Querying package databases ===<br />
<br />
pacman queries the local package database with the {{ic|-Q}} flag; see:<br />
<br />
$ pacman -Q --help<br />
<br />
and queries the sync databases with the {{ic|-S}} flag; see:<br />
<br />
$ pacman -S --help<br />
<br />
pacman can search for packages in the database, searching both in packages' names and descriptions:<br />
<br />
$ pacman -Ss ''string1'' ''string2'' ...<br />
<br />
To search for already installed packages:<br />
<br />
$ pacman -Qs ''string1'' ''string2'' ...<br />
<br />
To display extensive information about a given package:<br />
<br />
$ pacman -Si ''package_name''<br />
<br />
For locally installed packages:<br />
<br />
$ pacman -Qi ''package_name''<br />
<br />
Passing two {{ic|-i}} flags will also display the list of backup files and their modification states:<br />
<br />
$ pacman -Qii ''package_name''<br />
<br />
To retrieve a list of the files installed by a package:<br />
<br />
$ pacman -Ql ''package_name''<br />
<br />
For packages not installed, use {{ic|pkgfile}} from [[pkgtools]] or {{ic|nosr}} from {{aur|nosr-git}} from [[AUR]].<br />
<br />
One can also query the database to know which package a file in the file system belongs to:<br />
<br />
$ pacman -Qo /path/to/a/file<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree ''package_name''<br />
<br />
To list all the packages depending on a package, use {{ic|whoneeds}} from [[pkgtools]]:<br />
<br />
$ whoneeds ''package_name''<br />
<br />
=== Additional commands ===<br />
<br />
Upgrade the system and install a list of packages (one-liner):<br />
<br />
# pacman -Syu ''package_name1'' ''package_name2'' ...<br />
<br />
Download a package without installing it:<br />
<br />
# pacman -Sw ''package_name''<br />
<br />
Install a 'local' package that is not from a repository:<br />
<br />
# pacman -U /path/to/package/package_name-version.pkg.tar.xz<br />
<br />
Install a 'remote' package (not from an [[Official Repositories|official repository]]):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Clean the package cache of packages that are not currently installed ({{ic|/var/cache/pacman/pkg}}):<br />
<br />
{{Warning|Only do this if sure that the current versions of installed packages are stable and a [[Downgrading Packages|downgrade]] is not needed as {{ic|pacman -Sc}} removes all the old versions of installed packages.}}<br />
<br />
# pacman -Sc<br />
<br />
Clean the entire package cache:<br />
<br />
{{Warning|This clears the entire package cache. Doing this is a bad practice since it removes the ability to downgrade to the current set of packages in the case that an upgrade causes breakage.}}<br />
<br />
# pacman -Scc<br />
<br />
As an alternative to both the {{ic|-Sc}} and {{ic|-Scc}} switches, consider using {{AUR|Cacheclean}} from the [[AUR]]. This python script selectively cleans pacman's cache keeping x old version of each package therein.<br />
<br />
===Partial upgrades are unsupported===<br />
Arch Linux is a rolling release, and new [[Wikipedia:Library (computing)|library]] versions will be pushed to the repositories. The developers and trusted users will rebuild all the packages in the repositories that need to be rebuilt against the libraries. If the system has locally installed packages (such as [[Arch User Repository|AUR]] packages), users will need to rebuild them when their dependencies receive a [[Wikipedia:soname|soname]] bump.<br />
<br />
This means that partial upgrades are '''not supported'''. Do not use {{ic|pacman -Sy package}} or any equivalent such as {{ic|pacman -Sy}} and then {{ic|pacman -S package}}. Always upgrade before installing a package -- particularly if pacman has refreshed the sync repositories. Be very careful when using {{ic|IgnorePkg}} and {{ic|IgnoreGroup}} for the same reason.<br />
<br />
If a partial upgrade scenario has been created, and binaries are broken because they cannot find the libraries they are linked against, '''do not "fix" the problem simply by symlinking'''. Libraries receive [[Wikipedia:soname|soname]] bumps when they are '''not backwards compatible'''. A simple {{ic|pacman -Syu}} to a properly synced mirror will fix the issue as long as pacman is not broken.<br />
<br />
== Troubleshooting ==<br />
{{FAQ<br />
|question=An update to package XYZ broke my system!<br />
|answer=Arch Linux is a rolling-release cutting-edge distribution. Package updates are available as soon as they are deemed stable enough for general use. However, updates sometimes require user intervention: configuration files may need to be updated, optional dependencies may change, etc.<br />
<br />
The most important tip to remember is to not "blindly" update Arch systems. Always read the list of packages to be updated. Note whether "critical" packages are going to be updated ({{ic|linux}}, {{ic|xorg-server}}, and so on). If so, it is usually a good idea to check for any news at https://www.archlinux.org/ and scan recent forum posts to see if people are experiencing problems as a result of an update.<br />
<br />
If a package update is expected/known to cause problems, packagers will ensure that pacman displays an appropriate message when the package is updated. If experiencing trouble after an update, double-check pacman's output by looking at the log ({{ic|/var/log/pacman.log}}). <br />
<br />
At this point, '''only after ensuring there is no information available through pacman, there is no relative news on https://www.archlinux.org/, and there are no forum posts regarding the update''', consider seeking help on the forum, over [[IRC Channel|IRC]], or [[Downgrading Packages|downgrading the offending package]].}}<br />
<br />
{{FAQ<br />
|question=I know an update to package ABC was released, but pacman says my system is up to date!<br />
|answer=pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. <br />
<br />
The only options are be patient or use another mirror. [https://www.archlinux.org/mirrors/status/ MirrorStatus] can help you identify an up-to-date mirror.}}<br />
<br />
{{FAQ<br />
|question=I get an error when updating: "file exists in filesystem"!<br />
|answer=ASIDE: ''Taken from https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw. <br />
<br />
The issue is usually trivial to solve. A safe way is to first check if another package owns the file ({{ic|pacman -Qo /path/to/file}}). If the file is owned by another package, [[Reporting Bug Guidelines|file a bug report]]. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.<br />
<br />
If you had installed a program manually without using pacman or a frontend, you have to remove it and all its files and reinstall properly using pacman.<br />
<br />
Every installed package provides {{ic|/var/lib/pacman/local/$package-$version/files}} file that contains metadata about this package. If this file gets corrupted - is empty or missing - it results in "file exists in filesystem" errors when trying to update the package.<br />
Such an error usually concerns only one package and instead of manually renaming and later removing all the files that belong to the package in question, you can run {{ic|pacman -S --force $package}} to force pacman to overwrite these files.<br />
<br />
Do '''not''' run {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=I get an error when installing a package: "not found in sync db"<br />
|answer=Firstly, ensure the package actually exists (and watch out for typos!) If certain the package exists, your package list may be out-of-date or your repositories may be incorrectly configured. Try running {{ic|pacman -Syy}} to force a refresh of all package lists.}}<br />
<br />
{{FAQ<br />
|question=pacman is repeatedly upgrading the same package!<br />
|answer=This is due to duplicate entries in {{ic|/var/lib/pacman/local/}}, such as two {{ic|linux}} instances. {{ic|pacman -Qi}} outputs the correct version, but {{ic|pacman -Qu}} recognizes the old version and therefore will attempt to upgrade.<br />
<br />
Solution: delete the offending entry in {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman version 3.4 should display an error in case of duplicate entries, which should make this note obsolete.}}}}<br />
<br />
{{FAQ<br />
|question=pacman crashes during an upgrade!<br />
|answer=In the case that pacman crashes with a "database write" error whilst removing packages, and reinstalling or upgrading packages fails:<br />
#Boot using the Arch live CD<br />
#Mount your root filesystem<br />
#Update the pacman database via {{ic|pacman -Syy}}<br />
#Reinstall the broken package via {{ic|pacman -r /path/to/root -S package}}}}<br />
<br />
{{FAQ<br />
|question=I installed software using {{ic|make install}}; these files do not belong to any package!<br />
|answer=If receiving a "conflicting files" error, note that pacman will overwrite manually-installed software if supplied with the {{ic|-f}} switch ({{ic|pacman -Sf}}).<br />
<br />
See [[pacman Tips#Identify files not owned by any package]] for a script that searches the filesystem for ''disowned'' files.}}<br />
<br />
{{FAQ<br />
|question=I need a package with a specific file. How do I know what provides it?<br />
|answer=Install [[pkgtools]] which contains {{ic|pkgfile}} that uses a separate database with all files and their associated packages.}}<br />
<br />
{{FAQ<br />
|question=pacman is completely broken! How do I reinstall it?<br />
|answer=In the case that pacman is broken beyond repair, manually download the necessary packages ({{Pkg|openssl}}, {{Pkg|libarchive}}, and {{Pkg|pacman}}) and extract them to root. The pacman binary will be restored along with its default configuration file. Afterwards, reinstall these packages with pacman to maintain package database integrity. Additional information and an example (outdated) script that automates the process is available in [https://bbs.archlinux.org/viewtopic.php?id=95007 this] forum post.}}<br />
<br />
{{FAQ<br />
|question=After updating my system, I get a "unable to find root device" error after rebooting and my system will no longer boot.<br />
|answer=Most likely your initramfs got broken during a kernel update (improper use of pacman's {{ic|--force}} option can be a cause). Use the below procedure in order to restore it.<br />
<br />
Boot from a Arch live-cd. Once booted, run:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (your root partition)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (your /boot partition) #This step is not needed if you do not have a separate boot partition<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Afterwards, unmount and reboot.<br />
<br />
}}<br />
<br />
== See also ==<br />
* [[Common Applications/Utilities#Package management]]</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Pacman&diff=200204Pacman2012-05-04T14:27:17Z<p>Fileunderwater: rewrote to remove some ambiguity</p>
<hr />
<div>[[Category:Package management]]<br />
[[de:Pacman]]<br />
[[fr:Pacman]]<br />
[[ro:Pacman]]<br />
[[tr:pacman]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|pacman is the Arch Linux [[Wikipedia:Package management system|package manager]]. Package managers are used to install, upgrade, and remove software. This article covers basic usage and troubleshooting tips.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Downgrading Packages}}<br />
{{Article summary wiki|Improve Pacman Performance}}<br />
{{Article summary wiki|pacman GUI Frontends}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ#Package_Management}}<br />
{{Article summary wiki|Pacman-key}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
The '''[https://archlinux.org/pacman/ pacman]''' [[Wikipedia:Package management system|package manager]] is one of the main features of Arch Linux. It combines a simple binary package format with an easy-to-use build system (see [[makepkg]] and [[Arch Build System]]). The goal of pacman is to make it possible to easily manage packages, whether they are from the official Arch repositories or the user's own builds.<br />
<br />
pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies.<br />
<br />
pacman is written in the C programming language and uses the {{ic|.pkg.tar.xz}} package format.<br />
<br />
{{Tip|The official {{Pkg|pacman}} package also contains other useful tools, such as [[makepkg]], pactree, vercomp and more. You can get the full list from {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Configuration ==<br />
<br />
pacman configuration is located in {{ic|/etc/pacman.conf}}. This is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read the man page or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
To skip upgrading a specific package, specify it as such:<br />
<br />
{{bc|<nowiki>IgnorePkg=linux</nowiki>}}<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
{{bc|<nowiki>IgnoreGroup=gnome</nowiki>}}<br />
<br />
=== Repositories ===<br />
<br />
This section defines which repositories to use, as referred to in {{ic|pacman.conf}}. They can be stated here directly, or included from another file.<br />
<br />
All official repositories use the same {{ic|/etc/pacman.d/mirrorlist}} file which uses the {{ic|$repo}} variable, making it necessary to maintain only one list.<br />
<br />
The following is an example for the [[Official Repositories|official repositories]] that defers [[mirrors]] to {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
# If you want to run 32 bit applications on your x86_64 system,<br />
# enable the multilib repositories as required here.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Care should be taken when using the [testing] repository. It is in active development and updating may cause some packages to stop working. People who use the [testing] repository are encouraged to subscribe to the [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public arch-dev-public mailing list] for current information.}}<br />
<br />
=== Package security ===<br />
<br />
Pacman 4 supports signed packages, which adds an extra layer of security to the packages. To enable signature verification, take a look [[pacman-key|here]].<br />
<br />
== Usage ==<br />
<br />
What follows is just a small sample of the operations that pacman can perform. To read more examples, refer to [https://archlinux.org/pacman/pacman.8.html man pacman].<br />
<br />
===Installing packages===<br />
<br />
====Installing specific packages====<br />
To install a single package or list of packages (including dependencies), issue the following command:<br />
<br />
# pacman -S package_name1 package_name2 ...<br />
<br />
Sometimes there are multiple versions of a package in different repositories, e.g. [extra] and [testing]. To install the former version, the repository needs to be defined in front:<br />
<br />
# pacman -S extra/package_name<br />
<br />
====Installing package groups====<br />
Some packages belong to a group of packages that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
will install all the packages that belong to the {{ic|gnome}} group. To see what packages belong to the gnome group, run:<br />
<br />
# pacman -Sg gnome<br />
<br />
Also visit https://www.archlinux.org/groups/ to see what package groups are available.<br />
<br />
{{Note|If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the {{ic|--needed}} option.}}<br />
<br />
{{Warning|1=When installing packages, do '''not''' refresh the package list without [[#Upgrading packages|upgrading]] the system (i.e. {{ic|pacman -Sy package_name}}); this can lead to dependency issues, see [[#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328].}}<br />
<br />
=== Removing packages ===<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
<br />
# pacman -R package_name<br />
<br />
To remove a package and its dependencies which are not required by any other installed package:<br />
<br />
# pacman -Rs package_name<br />
<br />
To remove a package, its dependencies and all the packages that depend on the target package:<br />
<br />
{{Warning|This operation is recursive, and must be used with care since it can remove many potentially needed packages.}}<br />
<br />
# pacman -Rsc package_name<br />
<br />
To remove a package, which is required by another package, without removing the dependent package:<br />
<br />
# pacman -Rdd package_name<br />
<br />
pacman saves important configuration files when removing certain applications and names them with the extension: {{ic|.pacsave}}. To prevent the creation of these backup files use the {{ic|-n}} option:<br />
<br />
# pacman -Rn package_name<br />
<br />
{{Note|pacman will not remove configurations that the application itself creates (for example "dotfiles" in the home folder).}}<br />
<br />
===Upgrading packages===<br />
<br />
pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. This command can synchronize the repository databases ''and'' update the system's packages (except 'local' packages installed using the [[pacman#Additional commands|-U command]]):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|Instead of immediately updating as soon as updates are available, users must recognize that due to the nature of Arch's rolling release approach, an update may have unforeseen consequences. This means that it is not wise to update if, for example, one is about to deliver an important presentation. Rather, update during free time and be prepared to deal with any problems that may arise.}}<br />
<br />
pacman is a powerful package management tool, but it does not attempt to handle all corner cases. Read [[The Arch Way]] if this causes confusion. Users must be vigilant and take responsibility for maintaining their own system. '''When performing a system update, it is essential that users read all information output by pacman and use common sense.''' If a user-modified configuration file needs to be upgraded for a new version of a package, a {{ic|.pacnew}} file will be created to avoid overwriting settings modified by the user. Pacman will prompt the user to merge them. These files require manual intervention from the user and it is good practice to handle them right after every package upgrade or removal. See [[Pacnew and Pacsave Files]] for more info.<br />
<br />
{{Tip|Remember that pacman's output is logged in {{ic|/var/log/pacman.log}}.}}<br />
<br />
Before upgrading, it is advisable to visit the [https://www.archlinux.org/ Arch Linux home page] to check the latest news (or subscribe to the RSS feed): when updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.<br />
<br />
If one encounters problems that cannot be solved by these instructions, make sure to search the forum. It is likely that others have encountered the same problem and have posted instructions for solving it.<br />
<br />
=== Querying package databases ===<br />
<br />
pacman queries the local package database with the {{ic|-Q}} flag; see:<br />
<br />
$ pacman -Q --help<br />
<br />
and queries the sync databases with the {{ic|-S}} flag; see:<br />
<br />
$ pacman -S --help<br />
<br />
pacman can search for packages in the database, searching both in packages' names and descriptions:<br />
<br />
$ pacman -Ss string1 string2 ...<br />
<br />
To search for already installed packages:<br />
<br />
$ pacman -Qs string1 string2 ...<br />
<br />
To display extensive information about a given package:<br />
<br />
$ pacman -Si package_name<br />
<br />
For locally installed packages:<br />
<br />
$ pacman -Qi package_name<br />
<br />
Passing two {{ic|-i}} flags will also display the list of backup files and their modification states:<br />
<br />
$ pacman -Qii package_name<br />
<br />
To retrieve a list of the files installed by a package:<br />
<br />
$ pacman -Ql package_name<br />
<br />
For packages not installed, use {{ic|pkgfile}} from [[pkgtools]] or {{ic|nosr}} from {{aur|nosr-git}} from [[AUR]].<br />
<br />
One can also query the database to know which package a file in the file system belongs to:<br />
<br />
$ pacman -Qo /path/to/a/file<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree package_name<br />
<br />
To list all the packages depending on a package, use {{ic|whoneeds}} from [[pkgtools]]:<br />
<br />
$ whoneeds package_name<br />
<br />
=== Additional commands ===<br />
<br />
Upgrade the system and install a list of packages (one-liner):<br />
<br />
# pacman -Syu package_name1 package_name2 ...<br />
<br />
Download a package without installing it:<br />
<br />
# pacman -Sw package_name<br />
<br />
Install a 'local' package that is not from a repository:<br />
<br />
# pacman -U /path/to/package/package_name-version.pkg.tar.xz<br />
<br />
Install a 'remote' package (not from a repository):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Clean the package cache of packages that are not currently installed ({{ic|/var/cache/pacman/pkg}}):<br />
<br />
{{Warning|Only do this if sure that the current versions of installed packages are stable and a [[Downgrading Packages|downgrade]] is not needed as {{ic|pacman -Sc}} removes all the old versions of installed packages.}}<br />
<br />
# pacman -Sc<br />
<br />
Clean the entire package cache:<br />
<br />
{{Warning|This clears the entire package cache. Doing this is a bad practice since it removes the ability to downgrade to the current set of packages in the case that an upgrade causes breakage.}}<br />
<br />
# pacman -Scc<br />
<br />
As an alternative to both the {{ic|-Sc}} and {{ic|-Scc}} switches, consider using {{AUR|Cacheclean}} from the [[AUR]]. This python script selectively cleans pacman's cache keeping x old version of each package therein.<br />
<br />
===Partial upgrades are unsupported===<br />
Arch Linux is a rolling release, and new [[Wikipedia:Library (computing)|library]] versions will be pushed to the repositories. The developers and trusted users will rebuild all the packages in the repositories that need to be rebuilt against the libraries. If the system has locally installed packages (such as [[Arch User Repository|AUR]] packages), users will need to rebuild them when their dependencies receive a [[Wikipedia:soname|soname]] bump.<br />
<br />
This means that partial upgrades are '''not supported'''. Do not use {{ic|pacman -Sy package}} or any equivalent such as {{ic|pacman -Sy}} and then {{ic|pacman -S package}}. Always upgrade before installing a package -- particularly if pacman has refreshed the sync repositories. Be very careful when using {{ic|IgnorePkg}} and {{ic|IgnoreGroup}} for the same reason.<br />
<br />
If a partial upgrade scenario has been created, and binaries are broken because they cannot find the libraries they are linked against, '''do not "fix" the problem simply by symlinking'''. Libraries receive [[Wikipedia:soname|soname]] bumps when they are '''not backwards compatible'''. A simple {{ic|pacman -Syu}} to a properly synced mirror will fix the issue as long as pacman is not broken.<br />
<br />
== Troubleshooting ==<br />
{{FAQ<br />
|question=An update to package XYZ broke my system!<br />
|answer=Arch Linux is a rolling-release cutting-edge distribution. Package updates are available as soon as they are deemed stable enough for general use. However, updates sometimes require user intervention: configuration files may need to be updated, optional dependencies may change, etc.<br />
<br />
The most important tip to remember is to not "blindly" update Arch systems. Always read the list of packages to be updated. Note whether "critical" packages are going to be updated ({{ic|linux}}, {{ic|xorg-server}}, and so on). If so, it is usually a good idea to check for any news at https://www.archlinux.org/ and scan recent forum posts to see if people are experiencing problems as a result of an update.<br />
<br />
If a package update is expected/known to cause problems, packagers will ensure that pacman displays an appropriate message when the package is updated. If experiencing trouble after an update, double-check pacman's output by looking at the log ({{ic|/var/log/pacman.log}}). <br />
<br />
At this point, '''only after ensuring there is no information available through pacman, there is no relative news on https://www.archlinux.org/, and there are no forum posts regarding the update''', consider seeking help on the forum, over [[IRC Channel|IRC]], or [[Downgrading Packages|downgrading the offending package]].}}<br />
<br />
{{FAQ<br />
|question=I know an update to package ABC was released, but pacman says my system is up to date!<br />
|answer=pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. <br />
<br />
The only options are be patient or use another mirror. [https://www.archlinux.org/mirrors/status/ MirrorStatus] can help you identify an up-to-date mirror.}}<br />
<br />
{{FAQ<br />
|question=I get an error when updating: "file exists in filesystem"!<br />
|answer=ASIDE: ''Taken from https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw. <br />
<br />
The issue is usually trivial to solve. A safe way is to first check if another package owns the file ({{ic|pacman -Qo /path/to/file}}). If the file is owned by another package, [[Reporting Bug Guidelines|file a bug report]]. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.<br />
<br />
If you had installed a program manually without using pacman or a frontend, you have to remove it and all its files and reinstall properly using pacman.<br />
<br />
Every installed package provides {{ic|/var/lib/pacman/local/$package-$version/files}} file that contains metadata about this package. If this file gets corrupted - is empty or missing - it results in "file exists in filesystem" errors when trying to update the package.<br />
Such an error usually concerns only one package and instead of manually renaming and later removing all the files that belong to the package in question, you can run {{ic|pacman -S --force $package}} to force pacman to overwrite these files.<br />
<br />
Do '''not''' run {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=I get an error when installing a package: "not found in sync db"<br />
|answer=Firstly, ensure the package actually exists (and watch out for typos!) If certain the package exists, your package list may be out-of-date or your repositories may be incorrectly configured. Try running {{ic|pacman -Syy}} to force a refresh of all package lists.}}<br />
<br />
{{FAQ<br />
|question=pacman is repeatedly upgrading the same package!<br />
|answer=This is due to duplicate entries in {{ic|/var/lib/pacman/local/}}, such as two {{ic|linux}} instances. {{ic|pacman -Qi}} outputs the correct version, but {{ic|pacman -Qu}} recognizes the old version and therefore will attempt to upgrade.<br />
<br />
Solution: delete the offending entry in {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman version 3.4 should display an error in case of duplicate entries, which should make this note obsolete.}}}}<br />
<br />
{{FAQ<br />
|question=pacman crashes during an upgrade!<br />
|answer=In the case that pacman crashes with a "database write" error whilst removing packages, and reinstalling or upgrading packages fails:<br />
#Boot using the Arch live CD<br />
#Mount your root filesystem<br />
#Update the pacman database via {{ic|pacman -Syy}}<br />
#Reinstall the broken package via {{ic|pacman -r /path/to/root -S package}}}}<br />
<br />
{{FAQ<br />
|question=I installed software using {{ic|make install}}; these files do not belong to any package!<br />
|answer=If receiving a "conflicting files" error, note that pacman will overwrite manually-installed software if supplied with the {{ic|-f}} switch ({{ic|pacman -Sf}}).<br />
<br />
See [[pacman Tips#Identify files not owned by any package]] for a script that searches the filesystem for ''disowned'' files.}}<br />
<br />
{{FAQ<br />
|question=I need a package with a specific file. How do I know what provides it?<br />
|answer=Install [[pkgtools]] which contains {{ic|pkgfile}} that uses a separate database with all files and their associated packages.}}<br />
<br />
{{FAQ<br />
|question=pacman is completely broken! How do I reinstall it?<br />
|answer=In the case that pacman is broken beyond repair, manually download the necessary packages ({{Pkg|openssl}}, {{Pkg|libarchive}}, and {{Pkg|pacman}}) and extract them to root. The pacman binary will be restored along with its default configuration file. Afterwards, reinstall these packages with pacman to maintain package database integrity. Additional information and an example (outdated) script that automates the process is available in [https://bbs.archlinux.org/viewtopic.php?id=95007 this] forum post.}}<br />
<br />
{{FAQ<br />
|question=After updating my system, I get a "unable to find root device" error after rebooting and my system will no longer boot.<br />
|answer=Most likely your initramfs got broken during a kernel update (inproper use of pacman's {{ic|--force}} option can be a cause). Use the below procedure in order to restore it.<br />
<br />
Boot from a Arch live-cd. Once booted, run:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (your root partition)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (your /boot partition) #This step is not needed if you do not have a separate boot partition<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Afterwards, unmount and reboot.<br />
<br />
}}</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=Pacman&diff=200203Pacman2012-05-04T14:15:39Z<p>Fileunderwater: This is always true, right?</p>
<hr />
<div>[[Category:Package management]]<br />
[[de:Pacman]]<br />
[[fr:Pacman]]<br />
[[ro:Pacman]]<br />
[[tr:pacman]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|pacman is the Arch Linux [[Wikipedia:Package management system|package manager]]. Package managers are used to install, upgrade, and remove software. This article covers basic usage and troubleshooting tips.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Downgrading Packages}}<br />
{{Article summary wiki|Improve Pacman Performance}}<br />
{{Article summary wiki|pacman GUI Frontends}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ#Package_Management}}<br />
{{Article summary wiki|Pacman-key}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
The '''[https://archlinux.org/pacman/ pacman]''' [[Wikipedia:Package management system|package manager]] is one of the main features of Arch Linux. It combines a simple binary package format with an easy-to-use build system (see [[makepkg]] and [[Arch Build System]]). The goal of pacman is to make it possible to easily manage packages, whether they are from the official Arch repositories or the user's own builds.<br />
<br />
pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies.<br />
<br />
pacman is written in the C programming language and uses the {{ic|.pkg.tar.xz}} package format.<br />
<br />
{{Tip|The official {{Pkg|pacman}} package also contains other useful tools, such as [[makepkg]], pactree, vercomp and more. You can get the full list from {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Configuration ==<br />
<br />
pacman configuration is located in {{ic|/etc/pacman.conf}}. This is the place where the user configures the program to work in the desired manner. In-depth information about the configuration file can be found in [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read the man page or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
To skip upgrading a specific package, specify it as such:<br />
<br />
{{bc|<nowiki>IgnorePkg=linux</nowiki>}}<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
{{bc|<nowiki>IgnoreGroup=gnome</nowiki>}}<br />
<br />
=== Repositories ===<br />
<br />
This section defines which repositories to use, as referred to in {{ic|pacman.conf}}. They can be stated here directly, or included from another file.<br />
<br />
All official repositories use the same {{ic|/etc/pacman.d/mirrorlist}} file which uses the {{ic|$repo}} variable, making it necessary to maintain only one list.<br />
<br />
The following is an example for the [[Official Repositories|official repositories]] that defers [[mirrors]] to {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
# If you want to run 32 bit applications on your x86_64 system,<br />
# enable the multilib repositories as required here.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# An example of a custom package repository. See the pacman manpage for<br />
# tips on creating your own repositories.<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Care should be taken when using the [testing] repository. It is in active development and updating may cause some packages to stop working. People who use the [testing] repository are encouraged to subscribe to the [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public arch-dev-public mailing list] for current information.}}<br />
<br />
=== Package security ===<br />
<br />
Pacman 4 supports signed packages, which adds an extra layer of security to the packages. To enable signature verification, take a look [[pacman-key|here]].<br />
<br />
== Usage ==<br />
<br />
What follows is just a small sample of the operations that pacman can perform. To read more examples, refer to [https://archlinux.org/pacman/pacman.8.html man pacman].<br />
<br />
===Installing packages===<br />
<br />
====Installing specific packages====<br />
To install a single package or list of packages (including dependencies), issue the following command:<br />
<br />
# pacman -S package_name1 package_name2 ...<br />
<br />
Sometimes there are multiple versions of a package in different repositories, e.g. [extra] and [testing]. To install the former version, the repository needs to be defined in front:<br />
<br />
# pacman -S extra/package_name<br />
<br />
====Installing package groups====<br />
Some packages belong to a group of packages that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
will install all the packages that belong to the {{ic|gnome}} group. To see what packages belong to the gnome group, run:<br />
<br />
# pacman -Sg gnome<br />
<br />
Also visit https://www.archlinux.org/groups/ to see what package groups are available.<br />
<br />
{{Note|If a package in the list is already installed on the system, it will be reinstalled even if it is already up to date. This behavior can be overridden with the {{ic|--needed}} option.}}<br />
<br />
{{Warning|1=When installing packages, do '''not''' refresh the package list without [[#Upgrading packages|upgrading]] the system (i.e. {{ic|pacman -Sy package_name}}); this can lead to dependency issues, see [[#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328].}}<br />
<br />
=== Removing packages ===<br />
<br />
To remove a single package, leaving all of its dependencies installed:<br />
<br />
# pacman -R package_name<br />
<br />
To remove a package and its dependencies which are not required by any other installed package:<br />
<br />
# pacman -Rs package_name<br />
<br />
To remove a package, its dependencies and all the packages that depend on the target package:<br />
<br />
{{Warning|This operation is recursive, and must be used with care since it can remove many potentially needed packages.}}<br />
<br />
# pacman -Rsc package_name<br />
<br />
To remove a package, which is required by another package, without removing the dependent package:<br />
<br />
# pacman -Rdd package_name<br />
<br />
pacman saves important configuration files when removing certain applications and names them with the extension: {{ic|.pacsave}}. To prevent the creation of these backup files use the {{ic|-n}} option:<br />
<br />
# pacman -Rn package_name<br />
<br />
{{Note|pacman will not remove configurations that the application itself creates (for example "dotfiles" in the home folder).}}<br />
<br />
===Upgrading packages===<br />
<br />
pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date the system is. This command can synchronize the repository databases ''and'' update the system's packages (except [[pacman#Additional commands|locally]] installad packages):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|Instead of immediately updating as soon as updates are available, users must recognize that due to the nature of Arch's rolling release approach, an update may have unforeseen consequences. This means that it is not wise to update if, for example, one is about to deliver an important presentation. Rather, update during free time and be prepared to deal with any problems that may arise.}}<br />
<br />
pacman is a powerful package management tool, but it does not attempt to handle all corner cases. Read [[The Arch Way]] if this causes confusion. Users must be vigilant and take responsibility for maintaining their own system. '''When performing a system update, it is essential that users read all information output by pacman and use common sense.''' If a user-modified configuration file needs to be upgraded for a new version of a package, a {{ic|.pacnew}} file will be created to avoid overwriting settings modified by the user. Pacman will prompt the user to merge them. These files require manual intervention from the user and it is good practice to handle them right after every package upgrade or removal. See [[Pacnew and Pacsave Files]] for more info.<br />
<br />
{{Tip|Remember that pacman's output is logged in {{ic|/var/log/pacman.log}}.}}<br />
<br />
Before upgrading, it is advisable to visit the [https://www.archlinux.org/ Arch Linux home page] to check the latest news (or subscribe to the RSS feed): when updates require out-of-the-ordinary user intervention (more than what can be handled simply by following the instructions given by pacman), an appropriate news post will be made.<br />
<br />
If one encounters problems that cannot be solved by these instructions, make sure to search the forum. It is likely that others have encountered the same problem and have posted instructions for solving it.<br />
<br />
=== Querying package databases ===<br />
<br />
pacman queries the local package database with the {{ic|-Q}} flag; see:<br />
<br />
$ pacman -Q --help<br />
<br />
and queries the sync databases with the {{ic|-S}} flag; see:<br />
<br />
$ pacman -S --help<br />
<br />
pacman can search for packages in the database, searching both in packages' names and descriptions:<br />
<br />
$ pacman -Ss string1 string2 ...<br />
<br />
To search for already installed packages:<br />
<br />
$ pacman -Qs string1 string2 ...<br />
<br />
To display extensive information about a given package:<br />
<br />
$ pacman -Si package_name<br />
<br />
For locally installed packages:<br />
<br />
$ pacman -Qi package_name<br />
<br />
Passing two {{ic|-i}} flags will also display the list of backup files and their modification states:<br />
<br />
$ pacman -Qii package_name<br />
<br />
To retrieve a list of the files installed by a package:<br />
<br />
$ pacman -Ql package_name<br />
<br />
For packages not installed, use {{ic|pkgfile}} from [[pkgtools]] or {{ic|nosr}} from {{aur|nosr-git}} from [[AUR]].<br />
<br />
One can also query the database to know which package a file in the file system belongs to:<br />
<br />
$ pacman -Qo /path/to/a/file<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree package_name<br />
<br />
To list all the packages depending on a package, use {{ic|whoneeds}} from [[pkgtools]]:<br />
<br />
$ whoneeds package_name<br />
<br />
=== Additional commands ===<br />
<br />
Upgrade the system and install a list of packages (one-liner):<br />
<br />
# pacman -Syu package_name1 package_name2 ...<br />
<br />
Download a package without installing it:<br />
<br />
# pacman -Sw package_name<br />
<br />
Install a 'local' package that is not from a repository:<br />
<br />
# pacman -U /path/to/package/package_name-version.pkg.tar.xz<br />
<br />
Install a 'remote' package (not from a repository):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Clean the package cache of packages that are not currently installed ({{ic|/var/cache/pacman/pkg}}):<br />
<br />
{{Warning|Only do this if sure that the current versions of installed packages are stable and a [[Downgrading Packages|downgrade]] is not needed as {{ic|pacman -Sc}} removes all the old versions of installed packages.}}<br />
<br />
# pacman -Sc<br />
<br />
Clean the entire package cache:<br />
<br />
{{Warning|This clears the entire package cache. Doing this is a bad practice since it removes the ability to downgrade to the current set of packages in the case that an upgrade causes breakage.}}<br />
<br />
# pacman -Scc<br />
<br />
As an alternative to both the {{ic|-Sc}} and {{ic|-Scc}} switches, consider using {{AUR|Cacheclean}} from the [[AUR]]. This python script selectively cleans pacman's cache keeping x old version of each package therein.<br />
<br />
===Partial upgrades are unsupported===<br />
Arch Linux is a rolling release, and new [[Wikipedia:Library (computing)|library]] versions will be pushed to the repositories. The developers and trusted users will rebuild all the packages in the repositories that need to be rebuilt against the libraries. If the system has locally installed packages (such as [[Arch User Repository|AUR]] packages), users will need to rebuild them when their dependencies receive a [[Wikipedia:soname|soname]] bump.<br />
<br />
This means that partial upgrades are '''not supported'''. Do not use {{ic|pacman -Sy package}} or any equivalent such as {{ic|pacman -Sy}} and then {{ic|pacman -S package}}. Always upgrade before installing a package -- particularly if pacman has refreshed the sync repositories. Be very careful when using {{ic|IgnorePkg}} and {{ic|IgnoreGroup}} for the same reason.<br />
<br />
If a partial upgrade scenario has been created, and binaries are broken because they cannot find the libraries they are linked against, '''do not "fix" the problem simply by symlinking'''. Libraries receive [[Wikipedia:soname|soname]] bumps when they are '''not backwards compatible'''. A simple {{ic|pacman -Syu}} to a properly synced mirror will fix the issue as long as pacman is not broken.<br />
<br />
== Troubleshooting ==<br />
{{FAQ<br />
|question=An update to package XYZ broke my system!<br />
|answer=Arch Linux is a rolling-release cutting-edge distribution. Package updates are available as soon as they are deemed stable enough for general use. However, updates sometimes require user intervention: configuration files may need to be updated, optional dependencies may change, etc.<br />
<br />
The most important tip to remember is to not "blindly" update Arch systems. Always read the list of packages to be updated. Note whether "critical" packages are going to be updated ({{ic|linux}}, {{ic|xorg-server}}, and so on). If so, it is usually a good idea to check for any news at https://www.archlinux.org/ and scan recent forum posts to see if people are experiencing problems as a result of an update.<br />
<br />
If a package update is expected/known to cause problems, packagers will ensure that pacman displays an appropriate message when the package is updated. If experiencing trouble after an update, double-check pacman's output by looking at the log ({{ic|/var/log/pacman.log}}). <br />
<br />
At this point, '''only after ensuring there is no information available through pacman, there is no relative news on https://www.archlinux.org/, and there are no forum posts regarding the update''', consider seeking help on the forum, over [[IRC Channel|IRC]], or [[Downgrading Packages|downgrading the offending package]].}}<br />
<br />
{{FAQ<br />
|question=I know an update to package ABC was released, but pacman says my system is up to date!<br />
|answer=pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. <br />
<br />
The only options are be patient or use another mirror. [https://www.archlinux.org/mirrors/status/ MirrorStatus] can help you identify an up-to-date mirror.}}<br />
<br />
{{FAQ<br />
|question=I get an error when updating: "file exists in filesystem"!<br />
|answer=ASIDE: ''Taken from https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Why this is happening: pacman has detected a file conflict, and by design, will not overwrite files for you. This is a design feature, not a flaw. <br />
<br />
The issue is usually trivial to solve. A safe way is to first check if another package owns the file ({{ic|pacman -Qo /path/to/file}}). If the file is owned by another package, [[Reporting Bug Guidelines|file a bug report]]. If the file is not owned by another package, rename the file which 'exists in filesystem' and re-issue the update command. If all goes well, the file may then be removed.<br />
<br />
If you had installed a program manually without using pacman or a frontend, you have to remove it and all its files and reinstall properly using pacman.<br />
<br />
Every installed package provides {{ic|/var/lib/pacman/local/$package-$version/files}} file that contains metadata about this package. If this file gets corrupted - is empty or missing - it results in "file exists in filesystem" errors when trying to update the package.<br />
Such an error usually concerns only one package and instead of manually renaming and later removing all the files that belong to the package in question, you can run {{ic|pacman -S --force $package}} to force pacman to overwrite these files.<br />
<br />
Do '''not''' run {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=I get an error when installing a package: "not found in sync db"<br />
|answer=Firstly, ensure the package actually exists (and watch out for typos!) If certain the package exists, your package list may be out-of-date or your repositories may be incorrectly configured. Try running {{ic|pacman -Syy}} to force a refresh of all package lists.}}<br />
<br />
{{FAQ<br />
|question=pacman is repeatedly upgrading the same package!<br />
|answer=This is due to duplicate entries in {{ic|/var/lib/pacman/local/}}, such as two {{ic|linux}} instances. {{ic|pacman -Qi}} outputs the correct version, but {{ic|pacman -Qu}} recognizes the old version and therefore will attempt to upgrade.<br />
<br />
Solution: delete the offending entry in {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman version 3.4 should display an error in case of duplicate entries, which should make this note obsolete.}}}}<br />
<br />
{{FAQ<br />
|question=pacman crashes during an upgrade!<br />
|answer=In the case that pacman crashes with a "database write" error whilst removing packages, and reinstalling or upgrading packages fails:<br />
#Boot using the Arch live CD<br />
#Mount your root filesystem<br />
#Update the pacman database via {{ic|pacman -Syy}}<br />
#Reinstall the broken package via {{ic|pacman -r /path/to/root -S package}}}}<br />
<br />
{{FAQ<br />
|question=I installed software using {{ic|make install}}; these files do not belong to any package!<br />
|answer=If receiving a "conflicting files" error, note that pacman will overwrite manually-installed software if supplied with the {{ic|-f}} switch ({{ic|pacman -Sf}}).<br />
<br />
See [[pacman Tips#Identify files not owned by any package]] for a script that searches the filesystem for ''disowned'' files.}}<br />
<br />
{{FAQ<br />
|question=I need a package with a specific file. How do I know what provides it?<br />
|answer=Install [[pkgtools]] which contains {{ic|pkgfile}} that uses a separate database with all files and their associated packages.}}<br />
<br />
{{FAQ<br />
|question=pacman is completely broken! How do I reinstall it?<br />
|answer=In the case that pacman is broken beyond repair, manually download the necessary packages ({{Pkg|openssl}}, {{Pkg|libarchive}}, and {{Pkg|pacman}}) and extract them to root. The pacman binary will be restored along with its default configuration file. Afterwards, reinstall these packages with pacman to maintain package database integrity. Additional information and an example (outdated) script that automates the process is available in [https://bbs.archlinux.org/viewtopic.php?id=95007 this] forum post.}}<br />
<br />
{{FAQ<br />
|question=After updating my system, I get a "unable to find root device" error after rebooting and my system will no longer boot.<br />
|answer=Most likely your initramfs got broken during a kernel update (inproper use of pacman's {{ic|--force}} option can be a cause). Use the below procedure in order to restore it.<br />
<br />
Boot from a Arch live-cd. Once booted, run:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (your root partition)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (your /boot partition) #This step is not needed if you do not have a separate boot partition<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Afterwards, unmount and reboot.<br />
<br />
}}</div>Fileunderwaterhttps://wiki.archlinux.org/index.php?title=User_talk:Kynikos&diff=200187User talk:Kynikos2012-05-04T12:41:26Z<p>Fileunderwater: </p>
<hr />
<div>Feel free to leave here your comments on my edits or anything else you want to talk about: I'll reply as soon as I can!<br />
<br />
{{Note|Please, add new discussions at the bottom, and with a proper title: I'll take care of removing old discussions once they are exhausted.}}<br />
<br />
==Xyne-related page edits after Powerpill, Bauerbill... discontinuation==<br />
See [[User_talk:Kynikos/Xyne-related pages|Xyne-related page edits after Powerpill, Bauerbill... discontinuation]].<br />
<br />
==Thank you!==<br />
Thank you for your massive contribution in initiating -- and completing! -- [[Help:Style]]. This is something I have wanted to tackle for [https://bbs.archlinux.org/viewtopic.php?id=61033 years]! Well done! -- [[User:Pointone|pointone]] 14:23, 1 November 2011 (EDT)<br />
:In Italian on these occasions we say literally "praised by Caesar" :) I'm proud and eager to be helping the community of this amazing project, and to be working with other enthusiastic people like you! ^^ -- [[User:Kynikos|Kynikos]] 16:02, 1 November 2011 (EDT)<br />
<br />
== Thanks! ==<br />
Thanks for fixing the style on the [[Step By Step Debugging Guide]] page!<br />
--[[User:Trontonic|Trontonic]] 20:52, 6 January 2012 (EST)<br />
:Thank you for contributing :) Actually it'd require more fixes, for example the expansion of contractions, see [[Help:Style]] for more information.<br />
:By the way I've noticed that I put the article in the wrong category: it's somewhat fixed now, but if you're interested, in [[ArchWiki:Reports#System recovery category]] we're also talking about the possibility of merging [[Step By Step Debugging Guide]] with [[General Troubleshooting]].<br />
:-- [[User:Kynikos|Kynikos]] 07:29, 7 January 2012 (EST)<br />
<br />
== About [[Template:Filename]] => [[Template:ic]] ==<br />
<br />
Thanks for your contribution and your bot :) But i think the original [[Template:Filename]] has its advantage too. Although both template have the same display style now, they actually have different meanings. Filename and codes is different. Now it's very easy to replace filename with ic, but if we want to have a different styles of filename one day, it's rather difficult to find whether it means code or filename. --[[User:Skydiver|Skydiver]] 23:52, 13 February 2012 (EST)<br />
:Eheh you're quite late about this :) We discussed it a lot in [[Help talk:Style]] and [[Help talk:Style/Migration to new Code formatting templates]] (see their history). This is the direction where the wiki is headed, we can't cyclically call into question always the same things, otherwise there will never be any real improvement. Basically we just decided to keep it simple: Template:Filename wasn't used consistently anyway, and there were many cases of ambiguity, so now we're just distinguishing between inline and block code. -- [[User:Kynikos|Kynikos]] 07:29, 14 February 2012 (EST)<br />
::Haha~ yeah, i'm late. I didn't notice your notice before and right after i post here I found your bot have done all replacement and Template:Filename has been deleted ... --[[User:Skydiver|Skydiver]] 10:23, 14 February 2012 (EST)<br />
:BTW I see you're actually using Wiki Monkey yourself :D Honestly I didn't think somebody was using it except for me, so be advised that if you had installed version 1.6.1 or previous, it won't update automatically to 1.7.x because I've changed the path for configuration files (I won't break the update system anymore, I promise ^^ ). Also please report any bugs you find! -- [[User:Kynikos|Kynikos]] 09:12, 14 February 2012 (EST)<br />
::Yep, I found your Wiki Monkey very useful ^_^. I am using 1.7.0 now and find it useful when doing replaces. I'm trying to make a plugin that can automatically find articles w/o i18n template and add i18n template to them, but i've no idea how to do till now.--[[User:Skydiver|Skydiver]] 10:23, 14 February 2012 (EST)<br />
:::Good to hear that you like it, thanks! I've just released 1.7.2 (just bug fixes), however if you don't enable automatic updates as described in [[Wiki Monkey#Updates]] you will have to update manually; unfortunately automatic updates are disabled by default by Scriptish's design, there's nothing I can do about that :)<br />
:::If you want to fix the header of articles (including the i18n template), simply in editor pages, just write a js function that has the source text and the title as input arguments and the modified source as the return value, and I'll think of Wiki-Monkey-zing it ;)<br />
{{bc|function fixHeader(title, source) {<br />
//your code here<br />
return modSource;<br />
} }}<br />
:::Note that you won't probably be able to just add i18n without also recognizing categories and other stuff that goes at the top of the article.<br />
:::About doing that on all articles automatically, it's easy to adapt it also for What Links Here pages, since launching the bot from there is already implemented, however you'd more likely need to launch the bot recursively over all the articles under a category and its sub-categories, and that functionality still needs to be implemented. Another way to do that job, which I'd like even more, would be to make Wiki Monkey semi-automatically process the recent changes, suggesting automatic fixes to every article that is edited and letting the user decide whether to apply them or not. A recent changes helper is also in the todo list, but will require some time to develop it.<br />
:::-- [[User:Kynikos|Kynikos]] 13:14, 14 February 2012 (EST)<br />
<br />
== Template:Cmd Thanks ==<br />
<br />
Hey Kynikos thanks so much for getting me that [[User_talk:AskApache#Template:Cmd_2|template source]]! I spent many hours working on it and am really happy to have it back. Thank you. --[[User:AskApache|AskApache]] 11:21, 27 February 2012 (EST)<br />
: :) -- [[User:Kynikos|Kynikos]] 05:49, 28 February 2012 (EST)<br />
<br />
== html comments in page source ==<br />
<br />
Thank you for constant improvement of articles sources! Most of comments in source code of [[Common Applications]] and sub-articles were left by me. These comments were initially added to be later turned into proper categories etc. but due to lack of time I often forget about it. Please consider reorganizing entries instead of just removing comments - it sometimes require a bit of work to determine for example which version of Quake engine is used in every game. --[[User:AlexanderR|AlexanderR]] 05:38, 11 March 2012 (EDT)<br />
:Html comments are strongly discouraged right because they tend to be forgotten :P<br />
:The edits that removed potentially relevant comments are [https://wiki.archlinux.org/index.php?title=Common_Applications/Games/Emulators&diff=prev&oldid=188719] and [https://wiki.archlinux.org/index.php?title=Common_Applications/Games/Free&diff=prev&oldid=188723]: the only ways I can think of using those info are either creating subsections (=====PS1=====, =====PS2=====, =====Quake 1=====, ...) or adding those info in the descriptions of the appropriate app entries (I probably prefer the latter solution).<br />
:-- [[User:Kynikos|Kynikos]] 07:54, 11 March 2012 (EDT)<br />
<br />
==<s>Self-categorized categories</s>==<br />
''[moved to [[User talk:Kutyuli#Self-categorized categories]] -- [[User:Kynikos|Kynikos]] 22:02, 27 April 2012 (UTC)]''<br />
<br />
== Where should translations go? ==<br />
Hi! I'm wondering where the Archwiki team wants new translations to go? On the page [[ArchWiki Translation Team]] I get the feeling that translations should be placed under archlinux.org. At the same time there are national wikis as well, at different stages of development. In my case this is archlinux.se, which only contains a few articles, and is generally lacking links to the main Wiki from what I can see. What is the policy on where to put translations?<br />
<br />
On a secondary note - poorly developed regional wikis might work as a black hole for new users (turned off from arch due to lack of documentation) if they do not link to the main wiki for untranslated topics. Ideally they should cover the entire topic tree, and link to the anglish main wiki for untranslated articles. Granted, most potential new users that find a poor regional wiki probably continue searching and eventually find wiki.archlinux.org, but not necessarily all of them.</div>Fileunderwater