https://wiki.archlinux.org/api.php?action=feedcontributions&user=Shevket&feedformat=atomArchWiki - User contributions [en]2024-03-29T13:36:32ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Getting_and_installing_Arch&diff=542239Getting and installing Arch2018-09-20T11:14:43Z<p>Shevket: /* Verify signature */ run pacman-key as root</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ar:Category:Getting and installing Arch]]<br />
[[bg:Category:Getting and installing Arch]]<br />
[[cs:Category:Getting and installing Arch]]<br />
[[da:Category:Getting and installing Arch]]<br />
[[el:Category:Getting and installing Arch]]<br />
[[es:Category:Getting and installing Arch]]<br />
[[hr:Category:Getting and installing Arch]]<br />
[[id:Category:Getting and installing Arch]]<br />
[[it:Category:Getting and installing Arch]]<br />
[[ja:カテゴリ:Arch の入手とインストール]]<br />
[[ko:Category:Getting and installing Arch]]<br />
[[lt:Category:Getting and installing Arch]]<br />
[[nl:Category:Getting and installing Arch]]<br />
[[pl:Category:Getting and installing Arch]]<br />
[[pt:Category:Getting and installing Arch]]<br />
[[ru:Category:Getting and installing Arch]]<br />
[[sk:Category:Getting and installing Arch]]<br />
[[sr:Category:Getting and installing Arch]]<br />
[[th:Category:Getting and installing Arch]]<br />
[[tr:Category:Getting and installing Arch]]<br />
[[zh-hans:Category:Getting and installing Arch]]<br />
[[zh-hant:Category:Getting and installing Arch]]<br />
This category contains articles about Arch Linux releases, and downloading and installing Arch Linux. <br />
<br />
The installation media and their [[GnuPG]] signatures can be acquired from the [https://archlinux.org/download/ Download] page.<br />
<br />
== Verify signature ==<br />
<br />
It is recommended to verify the image signature before use, especially when downloading from an ''HTTP mirror'', where downloads are generally prone to be intercepted to [http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation serve malicious images]. <br />
<br />
On a system with [[GnuPG]] installed, do this by downloading the ''PGP signature'' (under ''Checksums'') to the ISO directory, and [[GnuPG#Verify a signature|verifying]] it with {{ic|gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify archlinux-<version>-x86_64.iso.sig}}.<br />
<br />
Alternatively, run {{ic|pacman-key -v archlinux-<version>-x86_64.iso.sig}} from an existing Arch Linux installation as root.<br />
<br />
{{Note|<br />
* The signature itself could be manipulated if it is downloaded from a mirror site, instead of from [https://archlinux.org/download/ archlinux.org] as above. In this case, ensure that the public key, which is used to decode the signature, is signed by another, trustworthy key. The {{ic|gpg}} command will output the fingerprint of the public key. <br />
* Another method to verify the authenticity of the signature is to ensure that the public key's fingerprint is identical to the key fingerprint of the [https://www.archlinux.org/people/developers/ Arch Linux developer] who signed the ISO-file. See [[Wikipedia:Public-key_cryptography]] for more information on the public-key process to authenticate keys.<br />
}}<br />
<br />
== Installation methods ==<br />
<br />
The table below offers an overview of the common ways to boot the installation media. As the installation process retrieves packages from a remote repository, these methods require an internet connection; see [[Offline installation of packages]] and [[Archiso#Installation without Internet access]] when none is available.<br />
<br />
{{Note|<br />
* Pointing the current boot device to a drive containing the Arch installation media is typically achieved by pressing a key during the [[w:Power-on self test|POST]] phase, as indicated on the splash screen. Refer to your motherboard's manual for details.<br />
* When the Arch menu appears, select ''Boot Arch Linux'' and press {{ic|Enter}} to enter the installation environment.<br />
* See [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] for a list of [[Kernel parameters#Configuration|boot parameters]], and [https://git.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64 packages.x86_64] for a list of included packages.<br />
}}<br />
<br />
{| class="wikitable"<br />
! Method<br />
! Articles<br />
! Conditions<br />
|-<br />
| Write the image on flash media or optical disc, then boot from it.<br />
|<br />
* [[USB flash installation media]]<br />
* [[Optical disc drive#Burning]]<br />
|<br />
* Installation on one, or a few machines at most<br />
* Obtain a directly bootable system<br />
|-<br />
| Mount the image on a server machine and have clients boot it over the network.<br />
|<br />
* [[PXE]]<br />
* [[Diskless system]]<br />
|<br />
* Client-server model<br />
* Wired (1Gbit+) network connection<br />
|-<br />
| Mount the image in a running Linux system and install Arch from a chroot environment.<br />
|<br />
* [[Install from existing Linux]]<br />
* [[Install from SSH]]<br />
|<br />
* Replace an existing system with reduced downtime<br />
* Install on the local machine, or a remote one via [[VNC]] or [[SSH]]<br />
|-<br />
| Set up a virtual machine and install Arch as a guest system.<br />
|<br />
* [[:Category:Hypervisors]]<br />
* [[Moving an existing install into (or out of) a virtual machine]]<br />
|<br />
* Operating system compatible with virtualization software<br />
* Obtain an isolated system for learning, testing or debugging<br />
|-<br />
| Install Arch next to a Windows installation.<br />
|<br />
* [[Dual boot with Windows]]<br />
|<br />
* Machine shared with Windows users<br />
* Allow to easily factory-reset a Windows-preinstalled device<br />
|}<br />
<br />
== See also ==<br />
* [https://projects.archlinux.org/archiso.git/tree/docs/README.transfer README.transfer]<br />
* [https://projects.archlinux.org/archiso.git/tree/docs/README.altbootmethods README.altbootmethods]</div>Shevkethttps://wiki.archlinux.org/index.php?title=Wayland&diff=540770Wayland2018-09-11T08:23:12Z<p>Shevket: /* Usage */ typo</p>
<hr />
<div>[[Category:Graphical user interfaces]]<br />
[[es:Wayland]]<br />
[[fr:Wayland]]<br />
[[ja:Wayland]]<br />
[[ru:Wayland]]<br />
[[zh-hans:Wayland]]<br />
{{Related articles start}}<br />
{{Related|KMS}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
[http://wayland.freedesktop.org/ Wayland] is a protocol for a [[wikipedia:Compositing window manager|compositing window manager]] to talk to its clients, as well as a library implementing the protocol. It is supported on some desktop environments like [[GNOME]] and [[KDE]]. There is also a compositor reference implementation called Weston. [https://wayland.freedesktop.org/xserver.html XWayland] implements a compatibility layer to seamlessly run legacy [[X11]] applications on Wayland.<br />
<br />
== Requirements ==<br />
<br />
Most Wayland compositors only work on systems using [[Kernel mode setting]].<br />
<br />
Wayland by itself does not provide a graphical environment; for this you also need a compositor such as [[#Weston]] or [[Sway]], or a desktop environment that includes a compositor like [[GNOME]] or [[KDE]].<br />
<br />
=== Buffer API support ===<br />
<br />
For the GPU driver and Wayland compositor to be compatible they must support the same buffer API. There are two main APIs: [[Wikipedia:Generic Buffer Management|GBM]] and [http://www.phoronix.com/scan.php?page=news_item&px=XDC2016-Device-Memory-API EGLStreams].<br />
<br />
{| class="wikitable"<br />
|-<br />
! Buffer API !! GPU driver support !! Wayland compositor support<br />
|-<br />
| GBM || All except [[NVIDIA]] || All<br />
|-<br />
| EGLStreams || [[NVIDIA]] || [[GNOME]], Grefsen, [[Sway]] ([https://sircmpwn.github.io/2017/10/26/Fuck-you-nvidia.html will be removed])<br />
|-<br />
|}<br />
<br />
== Weston ==<br />
<br />
Weston is the reference implementation of a Wayland compositor. <br />
<br />
=== Installation ===<br />
<br />
[[Install]] the {{Pkg|weston}} package.<br />
<br />
=== Usage ===<br />
<br />
{{tip|Super (windows key) can be changed, see [[#Configuration|weston.ini]]}}<br />
<br />
{| class="wikitable"<br />
|+ '''Keyboard Shortcuts'''<br />
!Cmd<br />
!Action<br />
|-<br />
|{{ic|Ctrl+Alt+Backspace}}<br />
|Quit Weston<br />
|-<br />
|{{ic|Super+Scroll}} (or {{ic|PageUp}}/{{ic|PageDown}})<br />
|Zoom in/out of desktop<br />
|-<br />
|{{ic|Super+Tab}}<br />
|Switch windows<br />
|-<br />
|{{ic|Super+LMB}}<br />
|Move Window<br />
|-<br />
|{{ic|Super+MMB}}<br />
|Rotate Window !<br />
|-<br />
|{{ic|Super+RMB}}<br />
|Resize Window <br />
|-<br />
|{{ic|Super+Alt+Scroll}}<br />
|Change window opacity<br />
|-<br />
|{{ic|Super+K}}<br />
|Force Kill Active Window<br />
|-<br />
|{{ic|Super+KeyUp/KeyDown}}<br />
|Switch Prev/Next Workspace<br />
|-<br />
|{{ic|Super+Shift+KeyUp/KeyDown}}<br />
|Grab Current Window and Switch Workspace<br />
|-<br />
|{{ic|Super+F'''''n'''''}}<br />
|Switch to Workspace '''''n'''''<br />
|-<br />
|{{ic|Super+S}}<br />
|Take a screenshot<br />
|-<br />
|{{ic|Super+R}}<br />
|Record a screencast.<br />
|}<br />
<br />
Now that once Wayland and its requirements are installed you should be ready to test it out. <br />
<br />
To launch Weston natively (from a TTY) or to run Weston inside a running X session:<br />
$ weston<br />
<br />
Then within Weston, you can run the demos. To launch a terminal emulator:<br />
$ weston-terminal<br />
<br />
To move flowers around the screen:<br />
$ weston-flower <br />
<br />
To display images:<br />
$ weston-image image1.jpg image2.jpg...<br />
<br />
=== Configuration ===<br />
<br />
Weston's outputs differ slightly from those of {{ic|xorg.conf}} Monitors:<br />
<br />
$ ls /sys/class/drm<br />
card0<br />
card0-VGA-1<br />
card1<br />
card1-DVI-I-1<br />
card1-HDMI-A-1<br />
card1-VGA-2<br />
<br />
{{ic|card0}} is the unused built-in video adapter. The add-on adapter {{ic|card1}} is cabled to one HDMI and one DVI monitor, so the output names are {{ic|HDMI-A-1}} and {{ic|DVI-I-1}}.<br />
<br />
Following is an example configuration file. See {{man|5|weston.ini}} for more.<br />
<br />
{{hc|~/.config/weston.ini|<nowiki><br />
[core]<br />
# xwayland support<br />
xwayland=true<br />
<br />
[libinput]<br />
enable_tap=true<br />
<br />
[shell]<br />
#background-image=/usr/share/backgrounds/gnome/Aqua.jpg<br />
background-type=scale-crop<br />
background-color=0xff000000<br />
#background-color=0xff002244<br />
#panel-color=0x90ff0000<br />
panel-color=0x00ffffff<br />
panel-position=bottom<br />
#clock-format=none<br />
#animation=zoom<br />
#startup-animation=none<br />
close-animation=none<br />
focus-animation=dim-layer<br />
#binding-modifier=ctrl<br />
num-workspaces=6<br />
locking=false<br />
<br />
# for cursor themes install xcursor-themes pkg from Extra<br />
#cursor-theme=whiteglass<br />
#cursor-size=24<br />
<br />
# tablet options<br />
#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png<br />
#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg<br />
#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg<br />
#animation=fade<br />
<br />
# for Laptop displays<br />
[output]<br />
name=LVDS1<br />
mode=preferred<br />
#mode=1680x1050<br />
#transform=90<br />
<br />
#[output]<br />
#name=VGA1<br />
# The following sets the mode with a modeline, you can get modelines for your preffered resolutions using the cvt utility<br />
#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync<br />
#transform=flipped<br />
<br />
#[output]<br />
#name=X1<br />
#mode=1024x768<br />
#transform=flipped-270<br />
<br />
# on screen keyboard input method<br />
#[input-method]<br />
#path=/usr/lib/weston/weston-keyboard<br />
<br />
[keyboard]<br />
keymap_rules=evdev<br />
#keymap_layout=us,de<br />
#keymap_variant=colemak,<br />
#keymap_options=grp:shifts_toggle<br />
#keymap_options=caps:ctrl_modifier,shift:both_capslock_cancel<br />
repeat-rate=30<br />
repeat-delay=300<br />
<br />
# keymap_options from /usr/share/X11/xkb/rules/base.lst<br />
#numlock-on=true<br />
<br />
[terminal]<br />
font=monospace<br />
font-size=18<br />
<br />
[launcher]<br />
icon=/usr/share/weston/icon_flower.png<br />
path=/usr/bin/weston-flower<br />
<br />
[launcher]<br />
icon=/usr/share/icons/gnome/32x32/apps/utilities-terminal.png<br />
path=/usr/bin/weston-terminal --shell=/usr/bin/bash<br />
<br />
[launcher]<br />
icon=/usr/share/icons/gnome/32x32/apps/utilities-terminal.png<br />
path=/usr/bin/gnome-terminal<br />
<br />
[launcher]<br />
icon=/usr/share/icons/hicolor/32x32/apps/firefox.png<br />
path=MOZ_GTK_TITLEBAR_DECORATION=client /usr/bin/firefox<br />
<br />
#[launcher]<br />
#icon=/usr/share/icons/Adwaita/32x32/apps/multimedia-volume-control.png<br />
#path=/usr/bin/st alsamixer -c0<br />
</nowiki><br />
}}<br />
<br />
Minimal {{ic|weston.ini}} :<br />
{{hc|~/.config/weston.ini|<nowiki><br />
[core]<br />
xwayland=true<br />
<br />
[keyboard]<br />
keymap_layout=gb<br />
<br />
[output]<br />
name=LVDS1<br />
mode=1680x1050<br />
transform=90<br />
<br />
[launcher]<br />
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png<br />
path=/usr/bin/weston-terminal<br />
<br />
[launcher]<br />
icon=/usr/share/icons/hicolor/24x24/apps/firefox.png<br />
path=/usr/bin/firefox<br />
<br />
</nowiki><br />
}}<br />
<br />
==== XWayland ====<br />
[[Install]] the {{Pkg|xorg-server-xwayland}} package.<br />
<br />
When you want to run an X application from within Weston, it spins up Xwayland to service the request. The following configuration is shown above:<br />
<br />
{{hc|~/.config/weston.ini|<br />
<nowiki>[core]<br />
xwayland=true</nowiki><br />
}}<br />
{{Note| if X is not already configured you may need to configure a keymap: [[Keyboard configuration in Xorg]]}}<br />
<br />
==== Screencast recording ====<br />
Weston has build-in screencast recording which can be started and stopped by pressing the {{ic|Super+r}} key combination. Screencasts are saved to the file {{ic|capture.wcap}} in the current working directory of Weston. <br />
<br />
The WCAP format is a lossless video format specific to Weston, which only records the difference in frames. To be able to play the recorded screencast, the WCAP file will need to be converted to a format which a media player can understand. First, convert the capture to the YUV pixel format:<br />
<br />
$ wcap-decode capture.wcap --yuv4mpeg2 > capture.y4m<br />
<br />
The YUV file can then be transcoded to other formats using [[FFmpeg]].<br />
<br />
==== High DPI displays ====<br />
<br />
For [[wikipedia:Retina_Display|Retina]] or [[HiDPI]] displays, use:<br />
<br />
{{hc|~/.config/weston.ini|<br />
<nowiki>[output]<br />
name=...<br />
scale=2</nowiki><br />
}}<br />
<br />
==== Shell font ====<br />
<br />
Weston uses the default sans-serif font for window title bars, clocks, etc. See [[Font configuration#Replace or set default fonts]] for instructions on how to change this font.<br />
<br />
=== Tips and tricks ===<br />
<br />
==== Window switching ====<br />
<br />
To switch windows with {{ic|Super+Space}} instead of {{ic|Super+Tab}} use the following patch:<br />
<br />
diff --git a/shell.c b/shell.c<br />
index b846e30..ffe5e48 100644<br />
--- a/shell.c<br />
+++ b/shell.c<br />
@@ -4457,7 +4457,7 @@ switcher_key(struct weston_keyboard_grab *grab,<br />
struct switcher *switcher = container_of(grab, struct switcher, grab);<br />
enum wl_keyboard_key_state state = state_w;<br />
<br />
- if (key == KEY_TAB && state == WL_KEYBOARD_KEY_STATE_PRESSED)<br />
+ if (key == KEY_SPACE && state == WL_KEYBOARD_KEY_STATE_PRESSED)<br />
switcher_next(switcher);<br />
}<br />
<br />
@@ -4949,7 +4949,7 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell)<br />
weston_compositor_add_button_binding(ec, BTN_MIDDLE, mod,<br />
rotate_binding, NULL);<br />
<br />
- weston_compositor_add_key_binding(ec, KEY_TAB, mod, switcher_binding,<br />
+ weston_compositor_add_key_binding(ec, KEY_SPACE, mod, switcher_binding,<br />
shell);<br />
weston_compositor_add_key_binding(ec, KEY_F9, mod, backlight_binding,<br />
ec);<br />
<br />
== GUI libraries ==<br />
<br />
See details on the [http://wayland.freedesktop.org/toolkits.html official website].<br />
<br />
=== GTK+ 3 ===<br />
<br />
The {{Pkg|gtk3}} package has the Wayland backend enabled. GTK+ will default to the Wayland backend, but it is possible to override it to Xwayland by modifying an environment variable: {{ic|GDK_BACKEND&#61;x11}}.<br />
<br />
=== Qt 5 ===<br />
To enable Wayland support in Qt 5, install the {{Pkg|qt5-wayland}} package.<br />
<br />
To run a Qt 5 app with the Wayland plugin, use {{ic|1=-platform wayland}} or set the {{ic|1=QT_QPA_PLATFORM=wayland-egl}} [[environment variable]].<br />
<br />
=== Clutter ===<br />
<br />
The Clutter toolkit has a Wayland backend that allows it to run as a Wayland client. The backend is enabled in the {{Pkg|clutter}} package.<br />
<br />
To run a Clutter app on Wayland, set {{ic|CLUTTER_BACKEND&#61;wayland}}.<br />
<br />
=== SDL2 ===<br />
<br />
To run a SDL2 application on Wayland, set {{ic|SDL_VIDEODRIVER&#61;wayland}}.<br />
<br />
=== GLFW ===<br />
<br />
To use GLFW with the Wayland backend, install the {{Pkg|glfw-wayland}} package (instead of {{Pkg|glfw-x11}}).<br />
<br />
=== GLEW ===<br />
<br />
To use GLEW with the Wayland backend, install the {{Pkg|glew-wayland}} package (instead of {{Pkg|glew}}).<br />
<br />
=== EFL ===<br />
<br />
EFL has complete Wayland support. <br />
To run a EFL application on Wayland, see Wayland [http://wayland.freedesktop.org/efl.html project page].<br />
<br />
== Compositors ==<br />
<br />
{| class="wikitable sortable"<br />
! Name<br />
! Type<br />
! Description<br />
|-<br />
| GNOME<br />
| Stacking<br />
| See [[GNOME#Starting]].<br />
|-<br />
| sway<br />
| Tiling<br />
| [[Sway]] is an i3-compatible window manager for Wayland. [https://github.com/SirCmpwn/sway GitHub]<br />
|-<br />
| Enlightenment<br />
| Stacking<br />
| [https://www.enlightenment.org/about-wayland More Info]<br />
|-<br />
| KDE Plasma<br />
| Stacking<br />
| See [[KDE#Starting Plasma]]<br />
|-<br />
| Orbment<br />
| Tiling<br />
| [https://github.com/Cloudef/orbment orbment] (previously loliwm) is an abandonned tiling WM for Wayland.<br />
|-<br />
| Velox<br />
| Tiling<br />
| [[Velox]] is a simple window manager based on swc. It is inspired by [[dwm]] and [[xmonad]].<br />
|-<br />
| Orbital<br />
| Stacking<br />
| [https://github.com/giucam/orbital Orbital] is a Wayland compositor and shell (more akin to a WM than a DE) using Qt5 and Weston. The goal of the project is to build a simple but flexible and good looking Wayland desktop.<br />
|-<br />
| Liri Shell<br />
| Stacking<br />
| [https://github.com/lirios/shell Liri Shell] is the desktop shell for [[Liri]], built using QtQuick and QtCompositor as a compositor for Wayland.<br />
|-<br />
| Maynard<br />
| ''(Unclear)''<br />
| [https://github.com/raspberrypi/maynard Maynard] is a desktop shell client for Weston based on GTK. It was based on weston-gtk-shell, a project by Tiago Vignatti. Not under development. [https://github.com/raspberrypi/maynard/issues/54#issuecomment-303422302][https://github.com/raspberrypi/maynard/issues/55#issuecomment-373808518]<br />
|-<br />
| Motorcar<br />
| ''(Unclear)''<br />
| [https://github.com/evil0sheep/motorcar Motorcar] is a Wayland compositor to explore 3D windowing using virtual reality.<br />
|-<br />
| Way Cooler<br />
| Tiling<br />
| {{AUR|way-cooler}} is a customizable (Lua config files) Wayland compositor written in Rust. Inspired by i3 and awesome.<br />
|-<br />
| Maze Compositor<br />
| Floating 3D<br />
| [https://github.com/capisce/mazecompositor Maze Compositor] is a 3D Qt based Wayland compositor<br />
|-<br />
| Grefsen<br />
| Floating<br />
| [https://github.com/ec1oud/grefsen Grefsen] is a Qt/Wayland compositor providing a minimal desktop environment.<br />
|-<br />
| Waymonad<br />
| Tiling<br />
| [https://github.com/waymonad/waymonad Waymonad] is a Wayland compositor based on ideas from and inspired by xmonad <br />
|}<br />
<br />
Some of installed wayland desktop clients might store information in {{ic|/usr/share/wayland-sessions/*.desktop}} files about how to start them in wayland.<br />
<br />
==Troubleshooting==<br />
<br />
<br />
=== Running graphical applications as root ===<br />
<br />
See [[Running GUI apps as root]].<br />
<br />
{{Style|Many of these subsections should go into a "Known issues" section (i.e., there is no solution currently). Additionally prepending a date is not needed.}}<br />
<br />
=== LLVM assertion failure ===<br />
If you get an LLVM assertion failure, you need to rebuild {{Pkg|mesa}} without Gallium LLVM until this problem is fixed. <br />
<br />
This may imply disabling some drivers which require LLVM.<br />
You may also try exporting the following, if having problems with hardware drivers: <br />
<br />
$ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so<br />
<br />
=== Slow motion, graphical glitches, and crashes ===<br />
Gnome-shell users may experience display issues when they switch to Wayland from X. One of the root cause might be the {{ic|1=CLUTTER_PAINT=disable-clipped-redraws:disable-culling}} set by yourself for Xorg-based gnome-shell. Just try to remove it from {{ic|/etc/environment}} or other rc files to see if everything goes back to normal.<br />
<br />
=== X11 on tty1, Wayland on tty2 ===<br />
(20161209) windows of GNOME applications end up on tty2 no matter where started ([https://bugzilla.gnome.org/show_bug.cgi?id=774775 GNOME issue 774775)]<br />
<br />
=== GNOME Wayland on tty1, Weston on tty2 ===<br />
(20170106) apps started on GNOME with WAYLAND_DISPLAY set to weston make it not respond any more ([https://bugs.freedesktop.org/show_bug.cgi?id=99489 Wayland issue 99489])<br />
<br />
=== weston-terminal ===<br />
(20161229) core dump when started on gnome<br />
<br />
=== liteide ===<br />
(20161229) [https://github.com/visualfc/liteide/issues/734 core dump]] on GNOME and Weston.<br />
<br />
=== screen recording ===<br />
Currently only {{AUR|green-recorder}} supports screen recording on Wayland (requires a GNOME session).<br />
<br />
=== remote display ===<br />
<br />
* (20180401) mutter has now remote desktop enabled at compile time, see https://wiki.gnome.org/Projects/Mutter/RemoteDesktop and {{AUR|gnome-remote-desktop}} for details.<br />
* (20161229) there was a merge of FreeRDP into Weston in 2013, enabled via a compile flag. The {{Pkg|weston}} package does not have it enabled.<br />
<br />
=== Input grabbing in games, remote desktop and VM windows ===<br />
<br />
In contrast to Xorg, Wayland does not allow exclusive input device grabbing, also known as active or explicit grab (e.g. [https://tronche.com/gui/x/xlib/input/XGrabKeyboard.html keyboard], [https://tronche.com/gui/x/xlib/input/XGrabPointer.html mouse]), instead, it depends on the Wayland compositor to pass keyboard shortcuts and confine the pointer device to the application window.<br />
<br />
This change in input grabbing breaks current applications' behavior, meaning:<br />
* Hotkey combinations and modifiers will be caught by the compositor and won't be sent to remote desktop and virtual machine windows.<br />
* The mouse pointer will not be restricted to the application's window which might cause a parallax effect where the location of the mouse pointer inside the window of the virtual machine or remote desktop is displaced from the host's mouse pointer.<br />
<br />
Wayland solves this by adding protocol extensions for Wayland and XWayland. Support for these extensions is needed to be added to the Wayland compositors. In the case of native Wayland clients, the used widget toolkits (e.g GTK, QT) needs to support these extensions or the applications themselves if no widget toolkit is being used. In the case of Xorg applications, no changes in the applications or widget toolkits are needed as the XWayland support is enough.<br />
<br />
These extensions are already included in {{pkg|wayland-protocols}}, and supported by {{pkg|xorg-server-xwayland}} 1.20.<br />
<br />
The related extensions are:<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml XWayland keyboard grabbing protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml Compositor shortcuts inhibit protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/relative-pointer/relative-pointer-unstable-v1.xml Relative pointer protocol]<br />
* [https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml Pointer constraints protocol]<br />
<br />
Supporting Wayland compositors:<br />
* Mutter, [[GNOME]]'s compositor [https://bugzilla.gnome.org/show_bug.cgi?id=783342 since release 3.28].<br />
<br />
Supporting widget toolkits:<br />
* GTK since release 3.22.18.<br />
<br />
==== wlroots input inhibitor protocol ====<br />
<br />
[https://github.com/swaywm/wlr-protocols/blob/master/unstable/wlr-input-inhibitor-unstable-v1.xml Input inhibitor] is a Wayland protocol which was defined the by developers of Sway and wlroots and is overlapping Wayland's {{ic|Compositor shortcuts inhibit}} protocol.<br/><br />
Sway and wlroots do not support the {{ic|Compositor shortcuts inhibit}} and {{ic|XWayland keyboard grabbing}} protocols, and it seems they are against adding support for the latter [https://github.com/swaywm/wlroots/pull/635#issuecomment-366385856] [https://github.com/swaywm/wlroots/issues/624#issuecomment-367276476].<br/><br />
No widget toolkit or application is known to support this protocol.<br />
<br />
== See also ==<br />
* [https://fedoraproject.org/wiki/How_to_debug_Wayland_problems Article about Wayland debugging on Fedora Wiki]<br />
* [[Cursor themes]]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=107499 Arch Linux forum discussion]<br />
* [http://wayland.freedesktop.org/docs/html/ Wayland documentation online]</div>Shevkethttps://wiki.archlinux.org/index.php?title=MathJax&diff=483811MathJax2017-08-04T21:06:26Z<p>Shevket: "path?config" everywhere</p>
<hr />
<div>[[ja:MathJax]]<br />
<br />
[https://www.mathjax.org MathJax] is a JavaScript display engine for mathematics that works in all browsers.<br />
It is able to parse [[Wikipedia:TeX|TeX]] input in html files to produce svg output, amongst other supported formats. The higher-level [[Jupyter| Jupyter notebook]] depends on MathJax and other modules for plotting, running interactive code, etc.<br />
<br />
MathJax can easily be embedded on any website to typeset your TeX.<br />
It is possible to quickly integrate MathJax with a distributed network service, see [https://www.mathjax.org/#docs here] for the currently available CDN.<br />
<br />
This article assumes you want a hard copy of MathJax on your system.<br />
<br />
== Installation and Configuration ==<br />
<br />
Install {{pkg|mathjax}} from the official repositories.<br />
<br />
=== Local Usage ===<br />
<br />
To have MathJax parse the TeX code in {{ic|~/equations.html}} and produce SVG output:<br />
<br />
<head><br />
...<br />
<script ="/usr/share/mathjax/MathJax.js?config=TeX-AMS_SVG"></script><br />
...<br />
</head><br />
<br />
Don't forget to include a configuration query string to tell MathJax about your desired i/o formats.<br />
<br />
You can also configure MathJax inline, see [http://docs.mathjax.org/en/latest/config-files.html#common-configurations here] for more details and configuration options.<br />
<br />
Your browser should now render the symbols at {{ic|file:///home/user/equations.html}}.<br />
<br />
Note that the TeX delimiters MathJax uses by default are {{ic| \( ... \) }} for inline math and <br />
{{ic| \[ ... \] }}, {{ic| $$ ... $$}} for outline math. <br />
<br />
=== Server Usage ===<br />
<br />
In order to serve your clients with MathJax processed documents, you need your scripts to access its main file:<br />
{{ic|/usr/share/mathjax/MathJax.js}}.<br />
<br />
Let us assume the server's root directory is set to {{ic|/srv/http/}}, creating symlinks will grant your scripts access to the installed package:<br />
<br />
$ cp -rs /usr/share/mathjax /srv/http/mathjax<br />
<br />
You can now have MathJax parse the TeX code in, say, {{ic|/srv/http/pages/equations.html}} by including in its head:<br />
<br />
<script src="../mathjax/MathJax.js?config=TeX-AMS_SVG"></script><br />
<br />
== Troubleshooting ==<br />
<br />
=== MathJax and Plotly ===<br />
<br />
If you are using {{ic|plotly.js}} as well, loading MathJax before Plotly might fail to render TeX code. Loading Plotly ''before'' MathJax should work. For example:<br />
<br />
<head><br />
<script src="path-to-plotly/plotly-latest.min.js"></script><br />
<script src="path-to-mathjax/MathJax.js?config=TeX-AMS_SVG"></script><br />
</head><br />
<br />
You may also try different MathJax output.<br />
<br />
=== TeX raw code visible while page is loading ===<br />
<br />
It can happen that MathJax takes some time to typeset and raw TeX code appears during the while, producing an unpleasant result.<br />
<br />
You can fix this by setting {{ic|visibility: hidden}} in some element's {{ic|css}} properties, and catch the event MathJax emits after typesetting is done to show it:<br />
<br />
MathJax.Hub.Queue( function () { <br />
document.getElementById("myID").visibility = "visible";<br />
});</div>Shevkethttps://wiki.archlinux.org/index.php?title=MathJax&diff=483810MathJax2017-08-04T21:04:19Z<p>Shevket: created page</p>
<hr />
<div>[[ja:MathJax]]<br />
<br />
[https://www.mathjax.org MathJax] is a JavaScript display engine for mathematics that works in all browsers.<br />
It is able to parse [[Wikipedia:TeX|TeX]] input in html files to produce svg output, amongst other supported formats. The higher-level [[Jupyter| Jupyter notebook]] depends on MathJax and other modules for plotting, running interactive code, etc.<br />
<br />
MathJax can easily be embedded on any website to typeset your TeX.<br />
It is possible to quickly integrate MathJax with a distributed network service, see [https://www.mathjax.org/#docs here] for the currently available CDN.<br />
<br />
This article assumes you want a hard copy of MathJax on your system.<br />
<br />
== Installation and Configuration ==<br />
<br />
Install {{pkg|mathjax}} from the official repositories.<br />
<br />
=== Local Usage ===<br />
<br />
To have MathJax parse the TeX code in {{ic|~/equations.html}} and produce SVG output:<br />
<br />
<head><br />
...<br />
<script ="/usr/share/mathjax/MathJax.js?config=TeX-AMS_SVG"></script><br />
...<br />
</head><br />
<br />
Don't forget to include a configuration query string to tell MathJax about your desired i/o formats.<br />
<br />
You can also configure MathJax inline, see [http://docs.mathjax.org/en/latest/config-files.html#common-configurations here] for more details and configuration options.<br />
<br />
Your browser should now render the symbols at {{ic|file:///home/user/equations.html}}.<br />
<br />
Note that the TeX delimiters MathJax uses by default are {{ic| \( ... \) }} for inline math and <br />
{{ic| \[ ... \] }}, {{ic| $$ ... $$}} for outline math. <br />
<br />
=== Server Usage ===<br />
<br />
In order to serve your clients with MathJax processed documents, you need your scripts to access its main file:<br />
{{ic|/usr/share/mathjax/MathJax.js}}.<br />
<br />
Let us assume the server's root directory is set to {{ic|/srv/http/}}, creating symlinks will grant your scripts access to the installed package:<br />
<br />
$ cp -rs /usr/share/mathjax /srv/http/mathjax<br />
<br />
You can now have MathJax parse the TeX code in, say, {{ic|/srv/http/pages/equations.html}} by including in its head:<br />
<br />
<script src="../mathjax/MathJax.js"></script><br />
<br />
== Troubleshooting ==<br />
<br />
=== MathJax and Plotly ===<br />
<br />
If you are using {{ic|plotly.js}} as well, loading MathJax before Plotly might fail to render TeX code. Loading Plotly ''before'' MathJax should work. For example:<br />
<br />
<head><br />
<script src="path-to-plotly/plotly-latest.min.js"></script><br />
<script src="path-to-mathjax/MathJax.js"></script><br />
</head><br />
<br />
You may also try different MathJax output.<br />
<br />
=== TeX raw code visible while page is loading ===<br />
<br />
It can happen that MathJax takes some time to typeset and raw TeX code appears during the while, producing an unpleasant result.<br />
<br />
You can fix this by setting {{ic|visibility: hidden}} in some element's {{ic|css}} properties, and catch the event MathJax emits after typesetting is done to show it:<br />
<br />
MathJax.Hub.Queue( function () { <br />
document.getElementById("myID").visibility = "visible";<br />
});</div>Shevkethttps://wiki.archlinux.org/index.php?title=MathJax&diff=483809MathJax2017-08-04T19:57:30Z<p>Shevket: Created page with "ja:MathJax [url=https://www.mathjax.org]MathJax[/url] is a JavaScript display engine for mathematics that works in all browsers. It is able to parse TeX input in html file..."</p>
<hr />
<div>[[ja:MathJax]]<br />
[url=https://www.mathjax.org]MathJax[/url] is a JavaScript display engine for mathematics that works in all browsers.<br />
It is able to parse TeX input in html files to produce svg output, amongst other supported formats.<br />
<br />
== Installation and Configuration ==<br />
<br />
Install {{pkg|mathjax}} from the official repositories.<br />
<br />
# pacman -S mathjax<br />
<br />
=== Local Usage ===<br />
<br />
To have MathJax parse the TeX code in {{ic|~/equations.html}} and produce SVG output:<br />
<br />
<head><br />
...<br />
<script ="/usr/share/mathjax/MathJax.js?config=TeX-AMS_SVG"></script><br />
...<br />
</head><br />
<br />
Don't forget to include a configuration query string to tell MathJax about your desired i/o formats.<br />
You can also configure MathJax inline, see [url=http://docs.mathjax.org/en/latest/config-files.html#common-configurations]here[/url] for more details.<br />
<br />
Your browser should now render the symbols at {{ic|file:///home/user/equations.html}}.<br />
<br />
=== Server Usage ===<br />
<br />
In order to serve your clients with MathJax processed documents, you need your scripts to access its main file:<br />
{{ic|/usr/share/mathjax/MathJax.js}}.<br />
<br />
Let us assume the server's root directory is set to {{ic|/srv/http/}}, creating symlinks will grant your scripts access to the installed package:<br />
<br />
$ cp -rs /usr/share/mathjax /srv/http/mathjax<br />
<br />
You can now have MathJax parse the TeX code in, say, {{ic|/srv/http/pages/equations.html}} by including in its head:<br />
<br />
<script src="../mathjax/MathJax.js"></script></div>Shevkethttps://wiki.archlinux.org/index.php?title=MongoDB&diff=483712MongoDB2017-08-03T10:07:33Z<p>Shevket: /* MongoDB won't start */ it does > it is</p>
<hr />
<div>[[Category:Database management systems]]<br />
[[ja:MongoDB]]<br />
[[zh-hans:MongoDB]]<br />
MongoDB (from hu'''mongo'''us) is an open source document-oriented database system developed and supported by [http://www.mongodb.com/ MongoDB Inc. (formerly 10gen)]. It is part of the NoSQL family of database systems. Instead of storing data in tables as is done in a "classical" relational database, MongoDB stores structured data as JSON-like documents with dynamic schemas (MongoDB calls the format [http://bsonspec.org/ BSON]), making the integration of data in certain types of applications easier and faster.<br />
<br />
== Installation ==<br />
<br />
Install {{Pkg|mongodb}} from [[official repositories]]. You may also wish to still {{Pkg|mongodb-tools}}, which provides tools such as {{ic|mongoimport}}, {{ic|mongoexport}}, {{ic|mongodump}}, {{ic|mongorestore}}, among others.<br />
<br />
[[Systemd#Using units|Start/Enable]] the {{ic|mongodb.service}} daemon.<br />
<br />
During the first startup of the mongodb service, it will [https://docs.mongodb.com/manual/faq/storage/#preallocated-data-files pre-allocate space], by creating large files (for its journal and other data). This step may take a while, during which the database shell is unavailable.<br />
<br />
== Usage ==<br />
<br />
To access the Database shell type in the terminal:<br />
<br />
$ mongo<br />
<br />
== Troubleshooting ==<br />
<br />
=== MongoDB won't start ===<br />
<br />
Check that there is at least 3GB space available for its journal files, otherwise mongodb can fail to start (without issuing a message to the user):<br />
<br />
$ df -h /var/lib/mongodb/<br />
<br />
Check if the mongod.lock lock file is empty or not:<br />
<br />
# ls -lisa /var/lib/mongodb<br />
<br />
If it is, stop {{ic|mongodb.service}}. Run a repair on the database, specifying the dbpath (/var/lib/mongodb/ is the default --dbpath in Arch Linux):<br />
<br />
# mongod --dbpath /var/lib/mongodb/ --repair<br />
<br />
Upon completion, the dbpath should contain the repaired data files and an empty mongod.lock file. <br />
<br />
{{Warning|In dire situations, you can remove the file, start the database using the possibly corrupt files, and attempt to recover data from the database. However, it is impossible to predict the state of the database in these situations. See [https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/ upstream document for detail].}}<br />
<br />
After running the repair as root, the files will be owned by the root user, whilst Arch Linux runs it under a different user. You will need to use chown to change the ownership of the files back to the correct user. See following link for further details: [http://earlz.net/view/2011/03/11/0015/mongodb-and-arch-linux Further reference]<br />
<br />
# chown -R mongodb: /var/{log,lib}/mongodb/<br />
<br />
=== MongoDB complains about transparent_hugepage Kernel Setting ===<br />
<br />
After starting the mongoDB, if you see some warnings about the transparent_hugepage you can permanently disable this System Setting by editing the following file (see [https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html FreeDesktop tmpfiles.d Manual]):<br />
<br />
{{hc|/etc/tmpfiles.d/local.conf|<nowiki><br />
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never<br />
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never<br />
</nowiki>}}<br />
<br />
If you want to disable only for this boot, you can use SysCtl or by simply echoing in the files like below:<br />
<br />
# echo never > /sys/kernel/mm/transparent_hugepage/enabled<br />
# echo never > /sys/kernel/mm/transparent_hugepage/defrag</div>Shevkethttps://wiki.archlinux.org/index.php?title=Pacman&diff=477699Pacman2017-05-18T14:52:11Z<p>Shevket: /* pacman crashes during an upgrade */ Running above commands without /proc mounted caused error during update and made system unbootable</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Package management]]<br />
[[ar:Pacman]]<br />
[[cs:Pacman]]<br />
[[da:Pacman]]<br />
[[de:Pacman]]<br />
[[el:Pacman]]<br />
[[es:Pacman]]<br />
[[fa:Pacman]]<br />
[[fr:Pacman]]<br />
[[id:Pacman]]<br />
[[it:Pacman]]<br />
[[ja:Pacman]]<br />
[[ko:Pacman]]<br />
[[nl:Pacman]]<br />
[[pl:Pacman]]<br />
[[pt:Pacman]]<br />
[[ro:Pacman]]<br />
[[ru:Pacman]]<br />
[[sr:Pacman]]<br />
[[sv:Pacman]]<br />
[[tr:pacman]]<br />
[[uk:Pacman]]<br />
[[zh-hans:Pacman]]<br />
[[zh-hant:Pacman]]<br />
{{Related articles start}}<br />
{{Related|Creating packages}}<br />
{{Related|Downgrading packages}}<br />
{{Related|pacman/Package signing}}<br />
{{Related|pacman/Pacnew and Pacsave}}<br />
{{Related|pacman/Restore local database}}<br />
{{Related|pacman/Rosetta}}<br />
{{Related|pacman/Tips and tricks}}<br />
{{Related|FAQ#Package management}}<br />
{{Related|System maintenance}}<br />
{{Related|Arch Build System}}<br />
{{Related|Official repositories}}<br />
{{Related|Arch User Repository}}<br />
{{Related articles end}}<br />
<br />
The [https://www.archlinux.org/pacman/ pacman] [[Wikipedia:Package manager|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]] 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 the user 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 ''.pkg.tar.xz'' package format.<br />
<br />
{{Tip|The {{Pkg|pacman}} package contains other useful tools such as [[makepkg]], '''pactree''', '''vercmp''', and [[checkupdates]]. Run {{ic|pacman -Qlq pacman <nowiki>|</nowiki> grep bin}} to see the full list.}}<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 {{man|8|pacman|url=https://www.archlinux.org/pacman/pacman.8.html#_examples}}.<br />
<br />
{{Tip|For those who have used other Linux distributions before, there is a helpful [[Pacman Rosetta]] article.}}<br />
<br />
=== Installing packages ===<br />
<br />
{{Note|Packages often have a series of [[PKGBUILD#optdepends|optional dependencies]] which are packages that provide additional functionality to the application, albeit not strictly required for running it. When installing a package, ''pacman'' will list its optional dependencies among the output messages, but they will not be found in {{ic|pacman.log}}: use the [[#Querying package databases|pacman -Si]] command to view the optional dependencies of a package, together with short descriptions of their functionality.}}<br />
<br />
{{Warning|1=When installing packages in Arch, avoid refreshing the package list without [[#Upgrading packages|upgrading the system]] (for example, when a [[#Packages cannot be retrieved on installation|package is no longer found]] in the official repositories). In practice, do '''not''' run {{ic|pacman -Sy ''package_name''}} instead of {{ic|pacman -Sy'''u''' ''package_name''}}, as this could lead to dependency issues. See [[System maintenance#Partial upgrades are unsupported]] and [https://bbs.archlinux.org/viewtopic.php?id=89328 BBS#89328].}}<br />
<br />
==== Installing specific packages ====<br />
<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 />
To install a list of packages with regex (see [https://bbs.archlinux.org/viewtopic.php?id=7179 this forum thread]):<br />
<br />
# pacman -S $(pacman -Ssq ''package_regex'')<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 />
To install a number of packages sharing similar patterns in their names -- not the entire group nor all matching packages; eg. {{Grp|plasma}}:<br />
<br />
# pacman -S plasma-{desktop,mediacenter,nm}<br />
<br />
Of course, that is not limited and can be expanded to however many levels needed:<br />
<br />
# pacman -S plasma-{workspace{,-wallpapers},pa}<br />
<br />
==== Installing package groups ====<br />
<br />
Some packages belong to a [[Creating_packages#Meta_packages_and_groups|group of packages]] that can all be installed simultaneously. For example, issuing the command:<br />
<br />
# pacman -S gnome<br />
<br />
will prompt you to select the packages from the {{Grp|gnome}} group that you wish to install.<br />
<br />
Sometimes a package group will contain a large amount of packages, and there may be only a few that you do or do not want to install. Instead of having to enter all the numbers except the ones you do not want, it is sometimes more convenient to select or exclude packages or ranges of packages with the following syntax:<br />
<br />
Enter a selection (default=all): 1-10 15<br />
<br />
which will select packages 1 through 10 and 15 for installation, or:<br />
<br />
Enter a selection (default=all): ^5-8 ^2<br />
<br />
which will select all packages except 5 through 8 and 2 for installation.<br />
<br />
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 />
=== 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: ''.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 />
{{Warning|<br />
*Users are expected to follow the guidance in the [[System maintenance#Upgrading the system]] section to upgrade their systems regularly and not blindly run the following command.<br />
*Arch only supports full system upgrades. See [[System maintenance#Partial upgrades are unsupported]] and [[#Installing packages]] for details.}}<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. The following command synchronizes the repository databases ''and'' updates the system's packages, excluding "local" packages that are not in the configured repositories:<br />
<br />
# pacman -Syu<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 />
Sometimes, {{Ic|-s}}'s builtin ERE can cause a lot of unwanted results, so it has to be limited to match the package name only; not the description nor any other field:<br />
<br />
$ pacman -Ss '^vim-'<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 [[pkgfile]].<br />
<br />
To verify the presence of the files installed by a package:<br />
<br />
$ pacman -Qk ''package_name''<br />
<br />
Passing the {{ic|k}} flag twice will perform a more thorough check.<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/file_name''<br />
<br />
To list all packages no longer required as dependencies (orphans):<br />
<br />
$ pacman -Qdt<br />
<br />
To list all packages explicitly installed and not required as dependencies:<br />
<br />
$ pacman -Qet<br />
<br />
To list a dependency tree of a package:<br />
<br />
$ pactree ''package_name''<br />
<br />
To list all the packages recursively depending on an ''installed'' package, use ''whoneeds'' from {{AUR|pkgtools}}:<br />
<br />
$ whoneeds ''package_name''<br />
<br />
or the reverse flag to ''pactree'':<br />
<br />
$ pactree -r ''package_name''<br />
<br />
See [[pacman tips]] for more examples.<br />
<br />
==== Database structure ====<br />
<br />
The pacman databases are normally located at {{ic|/var/lib/pacman/sync}}. For each repository specified in {{ic|/etc/pacman.conf}} there will be a corresponding database file located there. Database files are tar-gzipped archives containing one directory for each package, for example for the {{Pkg|which}} package:<br />
<br />
{{bc|<br />
% tree which-2.20-6 <br />
which-2.20-6<nowiki><br />
|-- depends<br />
`-- desc</nowiki><br />
}}<br />
<br />
The {{ic|depends}} file lists the packages this package depends on, while {{ic|desc}} has a description of the package such as the file size and the MD5 hash.<br />
<br />
=== Cleaning the package cache ===<br />
<br />
''pacman'' stores its downloaded packages in {{ic|/var/cache/pacman/pkg/}} and does not remove the old or uninstalled versions automatically, therefore it is necessary to deliberately clean up that folder periodically to prevent such folder to grow indefinitely in size.<br />
<br />
The built-in option to remove all the cached packages that are not currently installed is:<br />
<br />
# pacman -Sc<br />
<br />
{{Warning|<br />
* Only do this when certain that previous package versions are not required, for example for a later [[downgrade]]. {{ic|pacman -Sc}} only leaves the versions of packages which are ''currently installed'' available, older versions would have to be retrieved through other means, such as the [[Archive]].<br />
* It is possible to empty the cache folder fully with {{ic|pacman -Scc}}. In addition to the above, this also prevents from reinstalling a package directly ''from'' the cache folder in case of need, thus requiring a new download. It should be avoided unless there is an immediate need for disk space.<br />
}}<br />
<br />
Because of the above limitations, consider an alternative for more control over which packages, and how many, are deleted from the cache:<br />
<br />
The ''paccache'' script, provided by the {{Pkg|pacman}} package itself, deletes all cached versions of each package regardless of whether they're installed or not, except for the most recent 3, by default:<br />
<br />
# paccache -r<br />
<br />
{{Tip|1=You can create [[pacman hooks]] to run this automatically after every pacman transaction. See [https://bbs.archlinux.org/viewtopic.php?pid=1694743#p1694743 this thread] for examples.}}<br />
<br />
You can also define how many recent versions you want to keep:<br />
<br />
# paccache -rk 1<br />
<br />
To remove all cached versions of uninstalled packages, re-run ''paccache'' with:<br />
<br />
# paccache -ruk0<br />
<br />
See {{ic|paccache -h}} for more options.<br />
<br />
{{AUR|pkgcacheclean}} and {{AUR|pacleaner}} are two further alternatives.<br />
<br />
=== Additional commands ===<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 remote repository (e.g. the package is from the [[AUR]]):<br />
<br />
# pacman -U ''/path/to/package/package_name-version.pkg.tar.xz''<br />
<br />
To keep a copy of the local package in ''pacman'''s cache, use:<br />
<br />
# pacman -U file:///''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 />
To inhibit the {{ic|-S}}, {{ic|-U}} and {{ic|-R}} actions, {{ic|-p}} can be used.<br />
<br />
''pacman'' always lists packages to be installed or removed and asks for permission before it takes action.<br />
<br />
=== Installation reason ===<br />
<br />
The ''pacman'' database distinguishes the installed packages in two groups according to the reason why they were installed:<br />
<br />
* '''explicitly-installed''': the packages that were literally passed to a generic ''pacman'' {{ic|-S}} or {{ic|-U}} command;<br />
* '''dependencies''': the packages that, despite never (in general) having been passed to a ''pacman'' installation command, were implicitly installed because [[dependency|required]] by another package that was explicitly installed.<br />
<br />
When installing a package, it is possible to force its installation reason to ''dependency'' with:<br />
<br />
# pacman -S --asdeps ''package_name''<br />
<br />
When '''re'''installing a package, though, the current installation reason is preserved by default.<br />
<br />
The list of explicitly-installed packages can be shown with {{ic|pacman -Qe}}, while the complementary list of dependencies can be shown with {{ic|pacman -Qd}}.<br />
<br />
To change the installation reason of an already installed package, execute:<br />
<br />
# pacman -D --asdeps ''package_name''<br />
<br />
Use {{ic|--asexplicit}} to do the opposite operation.<br />
<br />
{{Tip|Installing optional dependencies with {{ic|--asdeps}} will cause it such that if you [[Pacman/Tips_and_tricks#Removing_unused_packages_.28orphans.29|remove orphans]], ''pacman'' will also remove leftover optional dependencies.}}<br />
<br />
=== Search for a package that contains a specific file ===<br />
<br />
Sync the files database:<br />
<br />
# pacman -Fy<br />
<br />
Search for a package containing a file, e.g.:<br />
<br />
# pacman -Fs pacman<br />
core/pacman 5.0.1-4<br />
usr/bin/pacman<br />
usr/share/bash-completion/completions/pacman<br />
extra/xscreensaver 5.36-1<br />
usr/lib/xscreensaver/pacman<br />
<br />
{{Tip|You can set a cron job or a systemd timer to sync the files database regularly.}}<br />
<br />
For advanced functionality install [[pkgfile]], which uses a separate database with all files and their associated packages.<br />
<br />
== Configuration ==<br />
<br />
''pacman'''s settings are 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 {{man|5|pacman.conf|url=https://www.archlinux.org/pacman/pacman.conf.5.html}}.<br />
<br />
=== General options ===<br />
<br />
General options are in the {{ic|[options]}} section. Read {{man|8|pacman|url=https://www.archlinux.org/pacman/pacman.8.html}} or look in the default {{ic|pacman.conf}} for information on what can be done here.<br />
<br />
==== Comparing versions before updating ====<br />
<br />
To see old and new versions of available packages, uncomment the "VerbosePkgLists" line in {{ic|/etc/pacman.conf}}. The output of {{ic|pacman -Syu}} will be like this:<br />
<br />
Package (6) Old Version New Version Net Change Download Size<br />
<br />
extra/libmariadbclient 10.1.9-4 10.1.10-1 0.03 MiB 4.35 MiB<br />
extra/libpng 1.6.19-1 1.6.20-1 0.00 MiB 0.23 MiB<br />
extra/mariadb 10.1.9-4 10.1.10-1 0.26 MiB 13.80 MiB<br />
<br />
==== Skip package from being upgraded ====<br />
<br />
{{Warning|Be careful in skipping packages, since [[partial upgrades]] are unsupported.}}<br />
<br />
To have a specific package skipped when [[#Upgrading packages|upgrading]] the system, specify it as such:<br />
<br />
IgnorePkg=linux<br />
<br />
For multiple packages use a space-separated list, or use additional {{ic|IgnorePkg}} lines. Also, glob patterns can be used. If you want to skip packages just once, you can also use the {{ic|--ignore}} option on the command-line - this time with a comma-separated list.<br />
<br />
It will still be possible to upgrade the ignored packages using {{ic|pacman -S}}: in this case ''pacman'' will remind you that the packages have been included in an {{ic|IgnorePkg}} statement.<br />
<br />
==== Skip package group from being upgraded ====<br />
<br />
{{Warning|Be careful in skipping package groups, since [[partial upgrades]] are unsupported.}}<br />
<br />
As with packages, skipping a whole package group is also possible:<br />
<br />
IgnoreGroup=gnome<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 />
NoExtract=usr/lib/systemd/system/*<br />
<br />
Later rules override previous ones, and you can negate a rule by prepending {{ic|!}}.<br />
<br />
{{Tip|''pacman'' issues warning messages about missing locales when updating a package for which locales have been cleared by ''localepurge'' or ''bleachbit''. Commenting the {{ic|CheckSpace}} option in {{ic|pacman.conf}} suppresses such warnings, but consider that the space-checking functionality will be disabled for all packages.}}<br />
<br />
==== Maintain several configuration files ====<br />
<br />
If you have several configuration files (e.g. main configuration and configuration with [[testing]] repository enabled) and would have to share options between configurations you may use {{ic|Include}} option declared in the configuration files, e.g.:<br />
<br />
Include = ''/path/to/common/settings''<br />
<br />
where {{ic|''/path/to/common/settings''}} file contains the same options for both configurations.<br />
<br />
==== Hooks ====<br />
<br />
''pacman'' can run pre- and post-transaction hooks from the {{ic|/usr/share/libalpm/hooks/}} directory; more directories can be specified with the {{ic|HookDir}} option in {{ic|pacman.conf}}, which defaults to {{ic|/etc/pacman.d/hooks}}. Hook file names must be suffixed with ''.hook''.<br />
<br />
For more information on alpm hooks, see {{man|5|alpm-hooks|url=https://www.archlinux.org/pacman/alpm-hooks.5.html}}.<br />
<br />
=== Repositories and mirrors ===<br />
<br />
Besides the special [[#General options|[options]]] section, each other {{ic|[section]}} in {{ic|pacman.conf}} defines a package repository to be used. A ''repository'' is a ''logical'' collection of packages, which are ''physically'' stored on one or more servers: for this reason each server is called a ''mirror'' for the repository.<br />
<br />
Repositories are distinguished between [[Official repositories|official]] and [[Unofficial user repositories|unofficial]]. The order of repositories in the configuration file matters; repositories listed first will take precedence over those listed later in the file when packages in two repositories have identical names, regardless of version number. In order to use a repository after adding it, you will need to [[#Upgrading packages|upgrade]] the whole system first.<br />
<br />
Each repository section allows defining the list of its mirrors directly or in a dedicated external file through the {{ic|Include}} directive: for example, the mirrors for the official repositories are included from {{ic|/etc/pacman.d/mirrorlist}}. See the [[Mirrors]] article for mirror configuration.<br />
<br />
==== Package security ====<br />
<br />
''pacman'' supports package signatures, which add an extra layer of security to the packages. The default configuration, {{ic|1=SigLevel = Required DatabaseOptional}}, enables signature verification for all the packages on a global level: this can be overridden by per-repository {{ic|SigLevel}} lines. For more details on package signing and signature verification, take a look at [[pacman-key]].<br />
<br />
== Troubleshooting ==<br />
<br />
=== "Failed to commit transaction (conflicting files)" error ===<br />
<br />
If you see the following error: [https://bbs.archlinux.org/viewtopic.php?id=56373]<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 problem 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, for example through {{ic|make install}}, you have to remove it and all its files and reinstall properly using ''pacman''. See also [[Pacman tips#Identify files not owned by any package]].<br />
<br />
Every installed package provides a {{ic|/var/lib/pacman/local/''$package-$version''/files}} file that contains metadata about this package. If this file gets corrupted, is empty or goes missing, it results in {{ic|file exists in filesystem}} errors when trying to update the package. Such an error usually concerns only one package. Instead of manually renaming and later removing all the files that belong to the package in question, you may exceptionally run {{ic|pacman -S --force $package}} to force ''pacman'' to overwrite these files.<br />
<br />
{{Warning|Take care when using the {{ic|--force}} switch (for example {{ic|pacman -Syu --force}}) as it can cause major problems if used improperly. It is highly recommended to only use this option when the Arch news instructs the user to do so.}}<br />
<br />
=== "Failed to commit transaction (invalid or corrupted package)" error ===<br />
<br />
Look for ''.part'' files (partially downloaded packages) in {{ic|/var/cache/pacman/pkg}} and remove them (often caused by usage of a custom {{ic|XferCommand}} in {{ic|pacman.conf}}).<br />
<br />
# find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;<br />
<br />
=== "Failed to init transaction (unable to lock database)" error ===<br />
<br />
When ''pacman'' is about to alter the package database, for example installing a package, it creates a lock file at {{ic|/var/lib/pacman/db.lck}}. This prevents another instance of ''pacman'' from trying to alter the package database at the same time.<br />
<br />
If ''pacman'' is interrupted while changing the database, this stale lock file can remain. If you are certain that no instances of ''pacman'' are running then delete the lock file:<br />
<br />
# rm /var/lib/pacman/db.lck<br />
<br />
=== Packages cannot be retrieved on installation ===<br />
<br />
This error manifests as {{ic|Not found in sync db}}, {{ic|Target not found}} or {{ic|Failed retrieving file}}.<br />
<br />
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 -Syyu}} to force a refresh of all package lists and upgrade.<br />
<br />
It could also be that the repository containing the package is not enabled on your system, e.g. the package could be in the ''multilib'' repository, but ''multilib'' is not enabled in your ''pacman.conf''.<br />
<br />
See also [[FAQ#Why is there only a single version of each shared library in the official repositories?]].<br />
<br />
=== Manually reinstalling pacman ===<br />
<br />
{{Warning|It is extremely easy to break your system even worse using this approach. Use this only as a last resort if the method from [[#pacman crashes during an upgrade]] is not an option.}}<br />
<br />
Even if ''pacman'' is terribly broken, you can fix it manually by downloading the latest packages and extracting them to the correct locations. The rough steps to perform are<br />
<br />
# Determine dependencies to install<br />
# Download each package from a mirror of your choice<br />
# Extract each package to root<br />
# Reinstall these packages with {{ic|pacman -Sf}} to update the package database accordingly<br />
# Do a full system upgrade<br />
<br />
If you have a healthy Arch system on hand, you can see the full list of dependencies with<br />
<br />
$ pacman -Q $(pactree -u pacman)<br />
<br />
but you may only need to update a few of them depending on your issue. An example of extracting a package is<br />
<br />
# tar -xvpwf ''package.tar.xz'' -C / --exclude .PKGINFO --exclude .INSTALL<br />
<br />
Note the use of the {{ic|w}} flag for interactive mode. Running non-interactively is very risky since you might end up overwriting an important file. Also take care to extract packages in the correct order (i.e. dependencies first). [https://bbs.archlinux.org/viewtopic.php?id=95007 This forum post] contains an example of this process where only a couple ''pacman'' dependencies are broken.<br />
<br />
=== pacman crashes during an upgrade ===<br />
<br />
In the case that ''pacman'' crashes with a "database write" error while removing packages, and reinstalling or upgrading packages fails thereafter, do the following:<br />
<br />
# Boot using the Arch installation media. Preferably use a recent media so that the ''pacman'' version matches/is newer than the system. <br />
# Mount the system's root filesystem, e.g. {{ic|mount /dev/sdaX /mnt}} as root, and check the mount has sufficient space with {{ic|df -h}}<br />
# Mount the proc and sysfs filesystems as well: {{ic|mount -t {proc,sysfs} /dev/sdaX {/mnt/proc, /mnt/sys} }} <br />
# If the system uses default database and directory locations, you can now update the system's pacman database and upgrade it via {{ic|1=pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Syyu}} as root. <br />
# After the upgrade, one way to double-check for not upgraded but still broken packages: {{ic|find /mnt/usr/lib -size 0}} <br />
# Followed by a re-install of any still broken package via {{ic|1=pacman --root /mnt --cachedir=/mnt/var/cache/pacman/pkg -S ''package''}}.<br />
<br />
=== "Unable to find root device" error after rebooting ===<br />
<br />
Most likely your initramfs got broken during a kernel update (improper use of ''pacman'''s {{ic|--force}} option can be a cause). You have two options; first, try the ''Fallback'' entry.<br />
<br />
{{Tip|In case you removed the ''Fallback'' entry, you can always press the {{ic|Tab}} key when the bootloader menu shows up (for Syslinux) or {{ic|e}} (for GRUB or systemd-boot), rename it {{ic|initramfs-linux-fallback.img}} and press {{ic|Enter}} or {{ic|b}} (depending on your bootloader) to boot with the new parameters.}}<br />
<br />
Once the system starts, run this command (for the stock {{Pkg|linux}} kernel) either from the console or from a terminal to rebuild the initramfs image:<br />
<br />
# mkinitcpio -p linux<br />
<br />
If that does not work, from a current Arch release (CD/DVD or USB stick), [[mount]] your root and boot partitions. Then [[chroot]] using ''arch-chroot'':<br />
<br />
# arch-chroot /mnt<br />
# pacman -Syu mkinitcpio systemd linux<br />
<br />
{{Note|<br />
* If you do not have a current release or if you only have some other "live" Linux distribution laying around, you can [[chroot]] using the old fashioned way. Obviously, there will be more typing than simply running the {{ic|arch-chroot}} script.<br />
* If ''pacman'' fails with {{ic|Could not resolve host}}, please [[Network_configuration#Check_the_connection|check your internet connection]].<br />
* If you cannot enter the arch-chroot or chroot environment but need to re-install packages you can use the command {{ic|pacman -r /mnt -Syu foo bar}} to use ''pacman'' on your root partition.}}<br />
<br />
Reinstalling the kernel (the {{Pkg|linux}} package) will automatically re-generate the initramfs image with {{ic|mkinitcpio -p linux}}. There is no need to do this separately.<br />
<br />
Afterwards, it is recommended that you run {{ic|exit}}, {{ic|umount /mnt/{boot,} }} and {{ic|reboot}}.<br />
<br />
=== Signature from "User <email@gmail.com>" is unknown trust, installation failed ===<br />
<br />
You can try to either:<br />
* update the known keys, i.e. {{ic|pacman-key --refresh-keys}}<br />
* manually upgrade {{Pkg|archlinux-keyring}} package first, i.e. {{ic|pacman -S archlinux-keyring}}<br />
* follow [[pacman-key#Resetting all the keys]]<br />
<br />
=== Request on importing PGP keys ===<br />
<br />
If [[Installation guide|installing]] Arch with an outdated ISO, you are likely prompted to import PGP keys. Agree to download the key to proceed. If you are unable to add the PGP key successfully, update the keyring or upgrade {{Pkg|archlinux-keyring}} (see [[#Signature from "User <email@gmail.com>" is unknown trust, installation failed|above]]).<br />
<br />
=== Signature from "User <email@archlinux.org>" is invalid, installation failed ===<br />
<br />
When the system time is faulty, signing keys are considered expired (or invalid) and signature checks on packages will fail with the following error:<br />
<br />
error: ''package'': signature from "User <email@archlinux.org>" is invalid<br />
error: failed to commit transaction (invalid or corrupted package (PGP signature))<br />
Errors occured, no packages were upgraded.<br />
<br />
Make sure to correct the [[time]], for example with {{ic|ntpd -qg}} run as root, and run {{ic|hwclock -w}} as root before subsequent installations or upgrades.<br />
<br />
=== "Warning: current locale is invalid; using default "C" locale" error ===<br />
<br />
As the error message says, your locale is not correctly configured. See [[Locale]].<br />
<br />
=== pacman does not honor proxy settings ===<br />
<br />
Make sure that the relevant environment variables ({{ic|$http_proxy}}, {{ic|$ftp_proxy}} etc.) are set up. If you use ''pacman'' with [[sudo]], you need to configure sudo to [[sudo#Environment variables|pass these environment variables to pacman]].<br />
<br />
=== How do I reinstall all packages, retaining information on whether something was explicitly installed or as a dependency? ===<br />
<br />
To reinstall all the native packages: {{ic|<nowiki>pacman -Qnq | pacman -S -</nowiki>}} (the {{ic|-S}} option preserves the installation reason by default).<br />
<br />
You will then need to reinstall all the foreign packages, which can be listed with {{ic|pacman -Qmq}}.<br />
<br />
=== "Cannot open shared object file" error ===<br />
<br />
It looks like previous ''pacman'' transaction removed or corrupted shared libraries needed for pacman itself.<br />
<br />
To recover from this situation you need to unpack required libraries to your filesystem manually. First find what package contains the missed library and then locate it in the ''pacman'' cache ({{ic|/var/cache/pacman/pkg/}}). Unpack required shared library to the filesystem. This will allow to run ''pacman''.<br />
<br />
Now you need to [[#Installing specific packages|reinstall]] the broken package. Note that you need to use {{ic|--force}} flag as you just unpacked system files and ''pacman'' does not know about it. ''pacman'' will correctly replace our shared library file with one from package.<br />
<br />
That's it. Update the rest of the system.<br />
<br />
=== Freeze of package downloads ===<br />
<br />
Some issues have been reported regarding network problems that prevent ''pacman'' from updating/synchronizing repositories. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] [https://bbs.archlinux.org/viewtopic.php?id&#61;65728] When installing Arch Linux natively, these issues have been resolved by replacing the default ''pacman'' file downloader with an alternative (see [[Improve pacman performance]] for more details). When installing Arch Linux as a guest OS in [[VirtualBox]], this issue has also been addressed by using ''Host interface'' instead of ''NAT'' in the machine properties.<br />
<br />
=== Failed retrieving file 'core.db' from mirror ===<br />
<br />
If you receive this error message with correct [[mirrors]], try setting a different [[Resolv.conf|name server]].<br />
<br />
== See also ==<br />
<br />
* [https://www.archlinux.org/pacman/ Pacman Home Page]<br />
* {{man|3|libalpm|url=https://www.archlinux.org/pacman/libalpm.3.html}}<br />
* {{man|8|pacman|url=https://www.archlinux.org/pacman/pacman.8.html}}<br />
* {{man|5|pacman.conf|url=https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
* {{man|8|repo-add|url=https://www.archlinux.org/pacman/repo-add.8.html}}</div>Shevket