Frequently asked questions

From ArchWiki
(Redirected from Arch filesystem hierarchy)
Jump to: navigation, search



What is Arch Linux?

See the Arch Linux article.

Why would I not want to use Arch?

You may not want to use Arch, if:

  • you do not have the ability/time/desire for a 'do-it-yourself' GNU/Linux distribution.
  • you require support for an architecture other than x86_64 or i686.
  • you take a strong stand on using a distribution which only provides free software as defined by GNU.
  • you believe an operating system should configure itself, run out of the box, and include a complete default set of software and desktop environment on the installation media.
  • you do not want a rolling release GNU/Linux distribution.
  • you are happy with your current OS.

What architectures does Arch support?

Arch supports the i686 and x86_64 (sometimes called amd64) architectures.

Does Arch support ARM CPUs?

No, but the Arch Linux ARM project provides a port of Arch Linux to several ARM platforms. See [1].

Does Arch follow the FHS?

Arch Linux follows the file system hierarchy for operating systems using the systemd service manager. See file-hierarchy(7) for an explanation of each directory along with their designations. In particular, /bin, /sbin, and /usr/sbin are symbolic links to /usr/bin, and /lib (and /lib64 if applicable) are symbolic links to /usr/lib.

I am a complete GNU/Linux beginner. Should I use Arch?

If you are a beginner and want to use Arch, you must be willing to invest time into learning a new system, and accept that Arch is designed as a DIY (Do-It-Yourself) distribution; it is the user who assembles the system.

Before asking for help, do your own independent research by Googling, searching the forum and the superb documentation provided by the Arch Wiki. There is a reason these resources were made available to you in the first place. Many thousands of volunteered hours have been spent compiling this excellent information.

See also Arch terminology#RTFM and the Installation guide.

Is Arch designed to be used as a server? A desktop? A workstation?

Arch is not designed for any particular type of use. Rather, it is designed for a particular type of user. Arch targets competent users who enjoy its do-it-yourself nature, and who further exploit it to shape the system to fit their unique needs. Therefore, in the hands of its target user base, Arch can be used for virtually any purpose. Many use Arch on both their desktops and workstations. And of course, runs on Arch.

I really like Arch, except the development team needs to implement feature X

Get involved, contribute your code/solution to the community. If it is well regarded by the community and development team, perhaps it will be merged. The Arch community thrives on contribution and sharing of code and tools.

When will the new release be made available?

Arch Linux releases are simply a live environment for installation or rescue, which include the base group and a few other packages. The releases are issued usually in the first half of every month.

Is Arch Linux a stable distribution? Will I get frequent breakage?

It is the user who is ultimately responsible for the stability of his own rolling release system. The user decides when to upgrade, and merges necessary changes when required. If the user reaches out to the community for help, it is often provided in a timely manner. The difference between Arch and other distributions in this regard is that Arch is truly a 'do-it-yourself' distribution; complaints of breakage are misguided and unproductive, since upstream changes are not the responsibility of Arch devs.

See the System maintenance article for tips on how to make an Arch Linux system as stable as possible.

Arch needs more press (i.e. advertisement)

Arch gets plenty of press as it is. The goal of Arch Linux is not to be large; rather, organic, sustainable growth occurs naturally amongst the target user base.

Arch needs more developers

Possibly so. Feel free to volunteer your time! Visit the forums, IRC channels, and mailing lists, and see what needs to be done. Getting involved in the Community Contributions subforum is a good way to start.

Why is my internet so slow compared to other operating systems?

Is your network configured correctly? Have a look at the Network configuration article.

Also note that Arch Linux does not come with traffic shaping enabled. Thus, it is possible that if a program on it somehow utilizes your internet connection to the full – regardless if it's over P2P or classic client-server connections – other local ones will find it clogged, resulting in severe lags and timeouts. Relief can be provided by firewalls such as Shorewall or Vuurmuur; there are also static scripts for iproute2 (such as this derivative of Wondershaper), which allow shaping on the network layer.

Why is Arch using all my RAM?

Essentially, unused RAM is wasted RAM.

Many new users notice how the Linux kernel handles memory differently than they are used to. Since accessing data from RAM is much faster than from a storage drive, the kernel caches recently accessed data in memory. The cached data is only cleared when the system begins to run out of available memory and new data needs to be loaded.

We could distinguish the difference from free command:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           2.8G        1.1G        283M        224M        1.4G        1.2G
Swap:          3.0G        881M        2.1G

It is important to note the difference between "free" and "available" memory. In the above example, a laptop with 2.8G of total RAM appears to be using most of it, with only 283M as free memory. However, 1.4G of it is "buff/cache". There is still 1.2G available for starting new applications, without swapping. See man free(1) for detail. The result of all this? Performance!

See this wonderful article if your curiosity has been piqued! There's also a website dedicated to clearing this confusion:

Where did all my free space go?

The answer to this question depends on your system. There are some fine utilities that may help you find the answer.

Package management

In which package is X?

You can find out with pkgfile.

For example:

$ pkgfile file_name

I've found an error with Package X. What should I do?

First, you need to figure out if this error is something the Arch team can fix. Sometimes it's not (e.g. Firefox crashes may be the fault of the Mozilla team); this is called an upstream error. If it is an Arch problem, there is a series of steps you can take:

  1. Search the forums for information. See if anyone else has noticed it.
  2. Post a bug report with detailed information at
  3. If you'd like, write a forum post detailing the problem and the fact that you have reported it already. This will help prevent a lot of people from reporting the same error.

Arch packages need to use a unique naming convention. ".pkg.tar.gz" and ".pkg.tar.xz" are too long and/or confusing

This has been discussed on the Arch mailing list. Some proposed a .pac file extension. As far as is currently known, there is no plan to change the package extension. As Tobias Kieslich, one of the Arch devs, put it, "A package is a gzipped [xz] tarball! And it can be opened, investigated and manipulated by any tar-capable application. Moreover, the mime-type is automatically detected correctly by most applications."

Pacman needs a library so other applications can easily access package information

Pacman is a front-end to libalpm—the "Arch Linux Package Management" library—which allows alternative front-ends, like a GUI front-end, to be written.

Pacman needs feature X!

If you think an idea has merit, you may choose to discuss it on pacman-dev. Also check for existing feature requests.

However, the best way to get a feature added to pacman or Arch Linux is to implement it yourself. The patch or code may or may not be officially accepted, but perhaps others will appreciate, test and contribute to your effort.

What is the difference between all these repositories?

See Official repositories.

What is the difference between a repository and a mirror?

See pacman#Repositories and mirrors.

I just installed Package X. How do I start it?

If you're using a desktop environment like KDE or GNOME, the program should automatically show up in your menu. If you're trying to run the program from a terminal and do not know the binary name, use:

$ pacman -Qlq package_name | grep /usr/bin/

Why is there only a single version of each shared library in the official repositories?

Several distributions, such as Debian, have different versions of shared libraries packaged as different packages: libfoo1, libfoo2, libfoo3 and so on. In this way it is possible to have applications compiled against different versions of libfoo installed on the same system.

In case of a distribution like Arch, only the latest stable versions of packages are officially supported. By dropping support for outdated software, package maintainers are able to spend more time ensuring that the newest versions work as expected. As soon as a new version of a shared library becomes available from upstream, it is added to the repositories and affected packages are rebuilt to use the new version.

What if I run a full system upgrade and there will be an update for a shared library, but not for the apps that depend on it?

This scenario should not happen at all. Assuming an application called foobaz is in one of the official repositories and builds successfully against a new version of a shared library called libbaz, it will be updated along with libbaz. If, however, it doesn't build successfully, foobaz package will have a versioned dependency (e.g. libbaz 1.5), and will be removed by pacman during libbaz upgrade, due to a conflict.

If foobaz is a package that you built yourself and installed from AUR, you should try rebuilding foobaz against the new version of libbaz. If the build fails, report the bug to the foobaz developers.

Is it possible that there's a major kernel update in the repository, and that some of the driver packages haven't been updated?

No, it is not possible. Major kernel updates (e.g. linux 3.5.0-1 to linux 3.6.0-1) are always accompanied by rebuilds of all supported kernel driver packages. On the other hand, if you have an unsupported driver package installed on your system, such as catalystAUR, then a kernel update might break things for you if you do not rebuild it for the new kernel. Users are responsible for updating any unsupported driver packages that they have installed.

Does Arch use package signing?

Yes. Package signing has been implemented in pacman. See package signing for more information.

What to do before upgrading?

Before upgrading check the front page Arch news, Announcement lists, and optionally the forum and Mailing Lists, before hitting enter. Any special instructions will be posted there. See also System maintenance#Upgrading the system.

A package update was released, but pacman says the system is up to date

pacman mirrors are not synced immediately. It may take over 24 hours before an update is available to you. The only options are be patient or use another mirror. MirrorStatus can help you identify an up-to-date mirror.


Arch needs an installer. Maybe a GUI installer?

Since installation doesn't occur often (read the rest of this article to know more about what rolling release means), it is not a high priority for developers or users. The Installation guide has been fully updated to use the command-line method. If you're still interested in using an installer, consider using Archboot.

I installed Arch, and now I am at a shell! What now?

See General recommendations.

Which desktop environment or window manager should I use?

Since many are available to you, use the one you like the most to fit your needs. Have a look at the Desktop environment and Window manager articles.

What makes Arch unique amongst other "minimal" distributions?

See Arch compared to other distributions.


How do I determine if my processor is x86_64 compatible?

If your processor is x86_64 compatible, you will have the lm flag in /proc/cpuinfo. For example,

$ grep -w lm /proc/cpuinfo

Under Windows, using the freeware CPU-Z helps determine whether your CPU is 64-bit compatible. CPUs with AMD's instruction set "AMD64" or Intel's solution "EM64T" should be compatible with the x86_64 releases and binary packages.

Will I have all the packages from my 32-bit Arch?

Most official packages have 64-bit versions, though you may need to enable the multilib repository to run some 32-bit programs. Package Differences lists the few cases where the multilib packages differ from the native 32-bit versions.

The only exception is AUR packages that only have 'i686' listed, but even then they may work for 64-bit too. Just try adding 'x86_64' to the PKGBUILD.

As a last resort, you can always install a 32-bit system inside your 64-bit system.

Why 64-bit?

It is faster under most circumstances and as an added bonus also inherently more secure due to the nature of Address space layout randomization (ASLR) in combination with Position-independent code (PIC) and the NX Bit which is not available in the stock i686 kernel due to disabled PAE. If your computer has more than 4GB of RAM, only a 64-bit OS will be able to fully utilize it.

Programmers also increasingly tend to care less about 32-bit ("legacy") as "new" x86 CPUs typically support the 64-bit extensions.

There are many more reasons we could list here to tell you to avoid 32-bit, but between the kernel, userspace and individual programs it is simply not viable to list every last thing that 64-bit does much better these days.

Can I build 32-bit packages for i686 inside 64-bit Arch?

Yes. You can use the multilib repository with a makepkg config or install a 32-bit system inside your 64-bit system.

Can I switch from i686 to x86_64 without reinstalling?

No. All packages need to be reinstalled for the new architecture and configuration changes may be necessary. However, you do not need to repartition or reformat your hard drives during installation, so it is possible to migrate all of your old data. A forum thread has been created here which outlines steps taken to migrate an install from 32 to 64 bit without losing any configurations/settings/data using a large external hard drive.

However, you can also start the system with the 64-bit installation ISO, mount the disk, backup anything you may want to keep that is not a 32-bit binary (e.g: /home & /etc), and install.

You may also want to read about migrating between architectures.