https://wiki.archlinux.org/api.php?action=feedcontributions&user=Rvalles&feedformat=atomArchWiki - User contributions [en]2024-03-29T01:31:17ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Dnscrypt-proxy&diff=523926Dnscrypt-proxy2018-05-30T11:08:02Z<p>Rvalles: pdnsd config file missing semicolon</p>
<hr />
<div>[[Category:Domain Name System]]<br />
[[Category:Encryption]]<br />
[[es:DNSCrypt]]<br />
[[ja:DNSCrypt]]<br />
[[pt:DNSCrypt]]<br />
[[zh-hans:DNSCrypt]]<br />
[http://dnscrypt.info/ DNSCrypt] encrypts and authenticates DNS traffic between user and DNS resolver. While IP traffic itself is unchanged, it prevents local spoofing of DNS queries, ensuring DNS responses are sent by the server of choice. [https://www.reddit.com/r/sysadmin/comments/2hn435/dnssec_vs_dnscrypt/ckuhcbu]<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|dnscrypt-proxy}} package.<br />
<br />
== Configuration ==<br />
<br />
=== Startup ===<br />
The service can be started in two mutually exclusive ways (i.e. only one of the two may be enabled):<br />
* With the {{ic|.service}} file<br />
* Through the {{ic|.socket}} activation aka unix socket activation (which then starts the service on access of said socket).<br />
<br />
{{Note|For using the service directly, the {{ic|listen_addresses }} option in {{ic|/etc/dnscrypt-proxy/dnscrypt-proxy.toml}} has to be configured (e.g. {{ic|1=listen_addresses = ['127.0.0.1:53', '[::1]:53']}}). However, when using unix socket activation the option has to be the empty set (i.e. {{ic|1=listen_addresses = [ ]}}), as systemd is taking care of the socket configuration.}}<br />
<br />
=== Select resolver ===<br />
{{Note|By leaving {{ic|server_names}} commented out in the configuration file {{ic|/etc/dnscrypt-proxy/dnscrypt-proxy.toml}}, ''dnscrypt-proxy'' will choose the fastest server from the sources already configured under {{ic|[sources]}} [https://github.com/jedisct1/dnscrypt-proxy/wiki/Configuration#an-example-static-server-entry]. The lists will be downloaded, verified, and automatically updated. [https://github.com/jedisct1/dnscrypt-proxy/wiki/Configuration-Sources#what-is-the-point-of-these-lists]. Thus, configuring a specific set of servers is optional.}}<br />
<br />
Edit {{ic|/etc/dnscrypt-proxy/dnscrypt-proxy.toml}} and uncomment the {{ic|server_names}} variable, selecting one or more of the servers. For example, to use Cloudflare's servers:<br />
<br />
server_names = ['cloudflare', 'cloudflare-ipv6']<br />
<br />
{{Tip|<br />
* You can find the full list of resolvers on the [https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md upstream page], [https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md Github], or {{ic|/var/cache/dnscrypt-proxy/public-resolvers.md}}.<br />
* Users should look at the description for servers on the public resolvers list and take note of which validate [[DNSSEC]], do not log, and are uncensored. These requirements can be configured globally with the {{ic|require_dnssec}}, {{ic|require_nolog}}, {{ic|require_nofilter}} options.}}<br />
<br />
=== Disable any services bound to port 53 ===<br />
{{Tip|If using [[#Unbound]] as your local DNS cache this section can be ignored, as ''unbound'' runs on port 53 by default.}}<br />
To see if any programs are using port 53, run<br />
<br />
$ ss -lp 'sport = :domain'<br />
<br />
If the output contains more than the first line of column names, you need to disable whatever service is using port 53. One common culprit is {{ic|systemd-resolved.service}}, but other network managers may have analogous components. You are ready to proceed once the above command outputs nothing more than the following line:<br />
<br />
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port<br />
<br />
=== Modify resolv.conf ===<br />
<br />
{{Expansion|Explain what the options mean.}}<br />
<br />
Modify the [[resolv.conf]] file and replace the current set of resolver addresses with the address for ''localhost'' and options [https://github.com/jedisct1/dnscrypt-proxy/wiki/Installation-linux#step-4-change-the-system-dns-settings]:<br />
<br />
nameserver 127.0.0.1<br />
options edns0 single-request-reopen<br />
<br />
Other programs may overwrite this setting; see [[resolv.conf#Preserve DNS settings]] for details.<br />
<br />
=== Start systemd service ===<br />
<br />
Finally, [[Enable|start and enable]] the {{ic|dnscrypt-proxy.service}}.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Local DNS cache configuration ===<br />
<br />
{{Note|''dnscrypt'' can cache entries without relying on another program. This feature is enabled by default with the line {{ic|1=cache = true}} in your dnscrypt configuration file}}<br />
<br />
It is recommended to run DNSCrypt as a forwarder for a local DNS cache if not using ''dnscrypt's'' cache feature; otherwise, every single query will make a round-trip to the upstream resolver. Any local DNS caching program should work. In addition to setting up ''dnscrypt-proxy'', you must setup your local DNS cache program. <br />
<br />
==== Change port ====<br />
<br />
In order to forward queries from a local DNS cache, ''dnscrypt-proxy'' should listen on a port different from the default {{ic|53}}, since the DNS cache itself needs to listen on {{ic|53}} and query ''dnscrypt-proxy'' on a different port. Port number {{ic|53000}} is used as an example in this section. In this example, the port number is larger than 1024 so ''dnscrypt-proxy'' is not required to be run by root. [[Edit]] {{ic|dnscrypt-proxy.socket}} with the following contents:<br />
<br />
[Socket]<br />
ListenStream=<br />
ListenDatagram=<br />
ListenStream=127.0.0.1:53000<br />
ListenDatagram=127.0.0.1:53000<br />
<br />
When queries are forwarded from the local DNS cache to {{ic|53000}}, {{ic|dnscrypt-proxy.socket}} will start {{ic|dnscrypt-proxy.service}}.<br />
<br />
==== Example local DNS cache configurations====<br />
<br />
The following configurations should work with ''dnscrypt-proxy'' and assume that it is listening on port {{ic|53000}}.<br />
<br />
===== Unbound =====<br />
<br />
Configure [[Unbound]] to your liking (in particular, see [[Unbound#Local DNS server]]) and add the following lines to the end of the {{ic|server}} section in {{ic|/etc/unbound/unbound.conf}}:<br />
<br />
do-not-query-localhost: no<br />
forward-zone:<br />
name: "."<br />
forward-addr: 127.0.0.1@53000<br />
<br />
{{Tip|If you are setting up a server, add {{ic|interface: 0.0.0.0@53}} and {{ic|access-control: ''your-network''/''subnet-mask'' allow}} inside the {{ic|server:}} section so that the other computers can connect to the server. A client must be configured with {{ic|nameserver ''address-of-your-server''}} in {{ic|/etc/resolv.conf}}.}}<br />
<br />
[[Restart]] {{ic|unbound.service}} to apply the changes.<br />
<br />
===== dnsmasq =====<br />
<br />
Configure dnsmasq as a [[dnsmasq#DNS cache setup|local DNS cache]]. The basic configuration to work with DNSCrypt:<br />
<br />
{{hc|/etc/dnsmasq.conf|2=<br />
no-resolv<br />
server=127.0.0.1#53000<br />
listen-address=127.0.0.1<br />
}}<br />
<br />
If you configured DNSCrypt to use a resolver with enabled DNSSEC validation, make sure to enable it also in dnsmasq:<br />
<br />
{{hc|/etc/dnsmasq.conf|2=<br />
proxy-dnssec<br />
}}<br />
<br />
Restart {{ic|dnsmasq.service}} to apply the changes.<br />
<br />
===== pdnsd =====<br />
<br />
Install [[pdnsd]]. A basic configuration to work with DNSCrypt is:<br />
<br />
{{hc|/etc/pdnsd.conf|2=<br />
global {<br />
perm_cache = 1024;<br />
cache_dir = "/var/cache/pdnsd";<br />
run_as = "pdnsd";<br />
server_ip = 127.0.0.1;<br />
status_ctl = on;<br />
query_method = udp_tcp;<br />
min_ttl = 15m; # Retain cached entries at least 15 minutes.<br />
max_ttl = 1w; # One week.<br />
timeout = 10; # Global timeout option (10 seconds).<br />
neg_domain_pol = on;<br />
udpbufsize = 1024; # Upper limit on the size of UDP messages.<br />
}<br />
<br />
server {<br />
label = "dnscrypt-proxy";<br />
ip = 127.0.0.1;<br />
port = 53000;<br />
timeout = 4;<br />
proxy_only = on;<br />
}<br />
<br />
source {<br />
owner = localhost;<br />
file = "/etc/hosts";<br />
}<br />
}}<br />
<br />
Restart {{ic|pdnsd.service}} to apply the changes.<br />
<br />
=== Sandboxing ===<br />
<br />
[[Edit]] {{ic|dnscrypt-proxy.service}} to include the following lines:<br />
<br />
[Service]<br />
CapabilityBoundingSet=CAP_IPC_LOCK CAP_SETGID CAP_SETUID CAP_NET_BIND_SERVICE<br />
ProtectSystem=strict<br />
ProtectHome=true<br />
ProtectKernelTunables=true<br />
ProtectKernelModules=true<br />
ProtectControlGroups=true<br />
PrivateTmp=true<br />
PrivateDevices=true<br />
MemoryDenyWriteExecute=true<br />
NoNewPrivileges=true<br />
RestrictRealtime=true<br />
RestrictAddressFamilies=AF_INET AF_INET6<br />
SystemCallArchitectures=native<br />
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @ipc @module @mount @obsolete @raw-io<br />
<br />
See {{man|5|systemd.exec}} and [[Systemd#Sandboxing application environments]] for more information. Additionally see [https://github.com/jedisct1/dnscrypt-proxy/pull/601#issuecomment-284171727 upstream comments]{{Dead link|2018|01|08}}.<br />
<br />
=== Enable EDNS0 ===<br />
<br />
{{Expansion|Name the advantages/motivation for enabling this.}}<br />
<br />
[[wikipedia:Extension_mechanisms_for_DNS|Extension Mechanisms for DNS]] that, among other things, allows a client to specify how large a reply over UDP can be.<br />
<br />
Add the following line to your {{ic|/etc/resolv.conf}}:<br />
options edns0<br />
<br />
{{Out of date|dnscrypt-proxy2 uses different config file.}}<br />
<br />
You may also wish to append the following to {{ic|/etc/dnscrypt-proxy.conf}}:<br />
EDNSPayloadSize ''<bytes>''<br />
<br />
Where ''<bytes>'' is a number, the default size being '''1252''', with values up to '''4096''' bytes being purportedly safe. A value below or equal to '''512''' bytes will disable this mechanism, unless a client sends a packet with an OPT section providing a payload size.<br />
<br />
==== Test EDNS0 ====<br />
<br />
Make use of the [https://www.dns-oarc.net/oarc/services/replysizetest DNS Reply Size Test Server], use the ''drill'' command line tool to issue a TXT query for the name ''rs.dns-oarc.net'':<br />
$ drill rs.dns-oarc.net TXT<br />
<br />
With '''EDNS0''' supported, the "answer section" of the output should look similar to this:<br />
rst.x3827.rs.dns-oarc.net.<br />
rst.x4049.x3827.rs.dns-oarc.net.<br />
rst.x4055.x4049.x3827.rs.dns-oarc.net.<br />
"2a00:d880:3:1::a6c1:2e89 DNS reply size limit is at least 4055 bytes"<br />
"2a00:d880:3:1::a6c1:2e89 sent EDNS buffer size 4096"<br />
<br />
=== Redundant DNSCrypt providers ===<br />
<br />
{{Remove|Out of date and irrelevant since dnscrypt-proxy2 handles the configuration of multiple sources.}}<br />
<br />
To use several different dnscrypt providers, you may simply copy the original {{ic|dnscrypt-proxy.service}} and {{ic|dnscrypt-proxy.socket}}. Then in your new copy of the service change the command line parameters, either pointing to a new configuration file or naming a different resolver directly. From there change the port in the new copy of the socket. Lastly, update your local DNS cache program to point to new service's port. For example, with [[unbound]] the configuration file would look like if using ports {{ic|53000}} for the original socket and {{ic|53001}} for the new socket.<br />
<br />
{{hc|/etc/unbound/unbound.conf|<br />
do-not-query-localhost: no<br />
forward-zone:<br />
name: "."<br />
forward-addr: 127.0.0.1@53000<br />
forward-addr: 127.0.0.1@53001<br />
}}<br />
<br />
==== Create instanced systemd service ====<br />
<br />
An alternative option to copying the systemd service is to used an instanced service.<br />
<br />
===== Create systemd file =====<br />
<br />
First, create {{ic|/etc/systemd/system/dnscrypt-proxy@.service}} containing:<br />
<br />
[Unit]<br />
Description=DNSCrypt client proxy<br />
Documentation=man:dnscrypt-proxy(8)<br />
Requires=dnscrypt-proxy@%i.socket<br />
<br />
[Service]<br />
Type=notify<br />
NonBlocking=true<br />
ExecStart=/usr/bin/dnscrypt-proxy \<br />
--resolver-name=%i<br />
Restart=always<br />
<br />
This specifies an instanced systemd service that starts a dnscrypt-proxy using the service name specified after the @ symbol of a corresponding .socket file.<br />
<br />
===== Add dnscrypt-sockets =====<br />
<br />
To create multiple dnscrypt-proxy sockets, copy {{ic|/usr/lib/systemd/system/dnscrypt-proxy.socket}} to a new file, {{ic|/etc/systemd/system/dnscrypt-proxy@''short-name.here''.socket}}, replacing the socket instance name with one of the short names listed in [[#Select_resolver|{{ic|dnscrypt-resolvers.csv}}]] and [[#Change_port|change the port]]. Use a different port for each instance (53000, 53001, and so forth).<br />
<br />
===== Apply new systemd configuration =====<br />
<br />
Now we need to reload the systemd configuration.<br />
<br />
# systemctl daemon-reload<br />
<br />
Since we are replacing the default service with a different name, we need to explicitly [[stop]] and [[disable]] {{ic|dnscrypt-proxy.service}} and {{ic|dnscrypt-proxy.socket}}.<br />
<br />
Now [[start/enable]] the new service(s), e.g., {{ic|dnscrypt-proxy@dnscrypt.eu-nl}}, etc.<br />
<br />
Finally [[restart]] {{ic|unbound.service}}.</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Kernel&diff=440930Kernel2016-07-12T09:54:43Z<p>Rvalles: rtlinux</p>
<hr />
<div>[[Category:Kernel]]<br />
[[cs:Kernel Compilation]]<br />
[[es:Kernels]]<br />
[[fr:Noyaux Linux]]<br />
[[it:Kernels]]<br />
[[ja:カーネル]]<br />
[[ru:Kernels]]<br />
[[zh-CN:Kernels]]<br />
{{Related articles start}}<br />
{{Related|Kernel modules}}<br />
{{Related|Compile kernel module}}<br />
{{Related|Kernel Panics}}<br />
{{Related|Linux-ck}}<br />
{{Related|sysctl}}<br />
{{Related articles end}}<br />
<br />
According to [[Wikipedia:Kernel (computing)|Wikipedia]]:<br />
:The kernel is a computer program that constitutes the central core of a computer's operating system. It has complete control over everything that occurs in the system. As such, it is the first program loaded on startup, and then manages the remainder of the startup, as well as input/output requests from software, translating them into data processing instructions for the central processing unit. It is also responsible for managing memory, and for managing and communicating with computing peripherals, like printers, speakers, etc. The kernel is a fundamental part of a modern computer's operating system.<br />
<br />
There are various alternative kernels available for Arch Linux in addition to the mainline Linux kernel. This article lists some of the options available in the repositories with a brief description of each. There is also a description of patches that can be applied to the system's kernel. The article ends with an overview of custom kernel compilation with links to various methods.<br />
<br />
==Precompiled kernels==<br />
===Official packages===<br />
;{{Pkg|linux}}<br />
:The Linux kernel and modules from the [core] repository. Vanilla kernel with [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux a few patches applied].<br />
<br />
;{{Pkg|linux-lts}}<br />
:Long term support (LTS) Linux kernel and modules from the [core] repository.<br />
<br />
;{{Pkg|linux-grsec}}<br />
:The Linux Kernel and modules with [[Grsecurity Patchset]] and PaX patches for increased security.<br />
<br />
;{{Pkg|linux-zen}}<br />
:The [https://github.com/zen-kernel/zen-kernel ZEN Kernel] is the result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for every day systems.<br />
<br />
===AUR packages===<br />
<br />
Note for [[AUR]] packages, "pre-compiled" means the packages are (usually) maintained, tested and verified to be working. Some of the listed packages may also be available as binary packages via [[Unofficial repositories]]. <br />
<br />
;{{AUR|linux-aufs_friendly}}<br />
:The aufs-compatible linux kernel and modules, useful when using [[docker]].<br />
<br />
;{{AUR|linux-apparmor}}{{Broken package link|{{aur-mirror|linux-apparmor}}}}<br />
:Linux kernel with [[AppArmor]] capabilities enabled.<br />
<br />
;{{AUR|linux-bfs}}{{Broken package link|{{aur-mirror|linux-bfs}}}}<br />
:Linux kernel and modules with the [[Wikipedia:Brain_Fuck_Scheduler|Brain Fuck Scheduler]] (BFS) - created by Con Kolivas for desktop computers with fewer than 4096 cores, with BFQ I/O scheduler as optional.<br />
<br />
;{{AUR|linux-chromebook}}{{Broken package link|{{aur-mirror|linux-chromebook}}}}<br />
:The Linux kernel with patches added to support chromebook hardware.<br />
<br />
;{{AUR|linux-ck}}<br />
:Linux Kernel built with Con Kolivas' ck1 patchset.<br />
:Additional options which can be toggled on/off in the [[PKGBUILD]] include: BFQ scheduler, nconfig, localmodconfig and use running kernel's config.<br />
:These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The ck patches include BFS.<br />
:For further information and installation instructions, please read the [[linux-ck]] main article.<br />
<br />
;{{AUR|linux-eee-ck}}{{Broken package link|{{aur-mirror|linux-eee-ck}}}}<br />
:The Linux Kernel and modules for the Asus Eee PC 701, built with Con Kolivas' ck1 patchset.<br />
<br />
;{{AUR|linux-fbcondecor}}<br />
:The Linux Kernel and modules with [[Fbsplash|fbcondecor support]]. <br />
<br />
;{{AUR|linux-git}}<br />
:Linux kernel and modules built using sources from [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Linus Torvalds' Git repository].<br />
<br />
;{{AUR|linux-ice}}<br />
:The Linux Kernel and modules with gentoo-sources patchset and [[TuxOnIce]] support.<br />
<br />
;{{AUR|linux-libre}}, {{AUR|linux-libre-lts}}, {{AUR|linux-libre-grsec}}, {{AUR|linux-libre-rt}}, {{AUR|linux-libre-xen}}<br />
:The Linux Kernels without "binary blobs".<br />
<br />
;{{AUR|linux-lqx}}<br />
:[http://liquorix.net Liquorix] is a distro kernel replacement built using a Debian-targeted configuration and the ZEN kernel sources. Designed for desktop, multimedia, and gaming workloads, it is often used as a Debian Linux performance replacement kernel. Damentz, the maintainer of the Liquorix patchset, is a developer for the ZEN patchset as well.<br />
<br />
;{{AUR|linux-lts34}}{{Broken package link|{{aur-mirror|linux-lts34}}}}<br />
:The Linux 3.4 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts310}}<br />
:The Linux 3.10 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts312}}<br />
:The Linux 3.12 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-mainline}}<br />
:The Mainline Linux Kernel and modules.<br />
<br />
;{{AUR|linux-mptcp}}<br />
:The Linux Kernel and modules with [http://multipath-tcp.org/ Multipath TCP] support.<br />
<br />
;{{AUR|kernel-netbook}}{{Broken package link|{{aur-mirror|kernel-netbook}}}}<br />
:Static kernel for netbooks with Intel Atom N270/N280/N450/N550 such as the Eee PC with the add-on of external firmware ({{AUR|broadcom-wl}}) and patchset (BFS + TuxOnIce + BFQ optional) - Only Intel GPU<br />
<br />
;{{AUR|linux-pax}}<br />
:The Linux Kernel and modules with [[PaX]] patches for increased security.<br />
<br />
;{{AUR|linux-pf}}<br />
:Linux kernel and modules with the pf-kernel patch [-ck patchset (BFS included), TuxOnIce, BFQ] and aufs3.<br />
<br />
;{{AUR|linux-rt}}<br />
:Linux kernel with the realtime patch set. Improves latency and introduces hard realtime support. https://rt.wiki.kernel.org/<br />
<br />
;{{AUR|linux-tresor}}/{{AUR|linux-lts-tresor}}<br />
:The current/LTS Linux Kernel and modules with integrated [https://www1.informatik.uni-erlangen.de/tresor TRESOR]<br />
<br />
;{{AUR|linux-vfio}}/{{AUR|linux-vfio-lts}}<br />
:The Linux kernel and a few patches written by Alex Williamson (acs override and i915) to enable the ability to do PCI Passthrough with KVM on some machines.<br />
<br />
==Patches and Patchsets==<br />
<br />
There are lots of reasons to patch your kernel, the major ones are for performance or support for non-mainline features such as reiser4 file system support. Other reasons might include fun and to see how it is done and what the improvements are.<br />
<br />
However, it is important to note that the best way to increase the speed of your system is to first tailor your kernel to your system, especially the architecture and processor type. For this reason using pre-packaged versions of custom kernels with generic architecture settings is not recommended or really worth it. A further benefit is that you can reduce the size of your kernel (and therefore build time) by not including support for things you do not have or use. For example, you might start with the stock kernel config when a new kernel version is released and remove support for things like bluetooth, video4linux, 1000Mbit ethernet, etc.; functionality you know you will not require for your specific machine. Although this page is not about customizing your kernel config, it is recommended as a first step--before moving on to using a patchset once you have grasped the fundamentals involved.<br />
<br />
The config files for the Arch kernel packages can be used as a starting point. They are in the Arch package source files, for example [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux] linked from {{Pkg|linux}}. The config file of your currently running kernel may also be available in your file system at {{ic|/proc/config.gz}} if the {{ic|CONFIG_IKCONFIG_PROC}} kernel option is enabled.<br />
<br />
===How to install===<br />
<br />
The installation process of custom kernel packages relies on the Arch Build System (ABS). If you have not built any custom packages yet you may consult the following articles: [[Arch Build System]] and [[Creating packages]].<br />
<br />
If you have not actually patched or customized a kernel before it is not that hard and there are many PKGBUILDs on the forum for individual patchsets. However, you are advised to start from scratch with a bit of research on the benefits of each patchset, rather than just arbitrarily picking one. This way you will learn much more about what you are doing rather than just choosing a kernel at startup and then be left wondering what it actually does.<br />
<br />
See [[#Compilation]].<br />
<br />
{{note|Do not forget to change the boot options in your bootloader, e.g. [[GRUB]], to use the new kernel.}}<br />
<br />
===Major patchsets===<br />
<br />
First of all it is important to note that patchsets are developed by a variety of people. Some of these people are actually involved in the production of the linux kernel and others are hobbyists, which may reflect its level of reliability and stability.<br />
<br />
It is also worth noting that some patchsets are built on the back of other patchsets (which may or may not be reflected in the title of the patch). Patchsets (and kernel updates) can be released '''very''' frequently and often it is not worth keeping up with ALL of them; so, do not go crazy, unless you make it your hobby!<br />
<br />
You can search Google for more sets, but remember to use quotes ({{ic|"-nitro"}}, for example); otherwise, Google will deliberately '''NOT''' show the results you want!<br />
<br />
{{note|This section is for '''information only''' - clearly no guarantees of stability or reliability are implied by inclusion on this page.}}<br />
<br />
====-ck====<br />
[[Linux-ck]] contains patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://users.on.net/~ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.<br />
<br />
The -ck patches can be found at http://ck.kolivas.org/patches/<br />
<br />
====-rt====<br />
<br />
This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads. <br />
<br />
It further incorporates high resolution timers - a patch set, which is independently maintained.<br />
<br />
[as said from the [https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch Real-Time Linux Wiki]]<br />
<br />
patch at https://www.kernel.org/pub/linux/kernel/projects/rt/<br />
<br />
====-bld====<br />
{{Warning|This patch is in development.}}<br />
BLD is best described as a O(1) CPU picking technique. Which is done by reordering CPU runqueues based on runqueue loads. In other words, it keeps the scheduler aware of the load changes, which helps scheduler to keep runqueues in an order. This technique does not depend on scheduler ticks. The two most simple things in this technique are: load tracking and runqueue ordering; these are relatively simpler operations. Load tracking will be done whenever a load change happens on the system and based on this load change runqueue will be ordered. So, if we have an ordered runqueue from lowest to highest, then picking the less (or even busiest) runqueue is easy. Scheduler can pick the lowest runqueue without calculation and comparison at the time of placing a task in a runqueue. And while trying to distribute load at sched_exec and sched_fork our best choice is to pick the lowest busiest runqueue of the system. And in this way, system remains balanced without doing any load balancing. At the time of try_to_wake_up picking the idlest runqueue is topmost priority but it has been done as per domain basis to utilize CPU cache properly and it's an area where more concentration is requires.<br />
<br />
Google Code web page: https://code.google.com/p/bld/<br />
<br />
====-grsecurity====<br />
<br />
[[Grsecurity]] is a security focused patchset. It adds numerous security related features such as Role-Based Access Control and utilizes features of the PaX project. It can be used on a desktop but a public server would receive the greatest benefit. Some applications are incompatible with the additional security measures implemented by this patchset. If this occurs, consider using a lower security level.<br />
<br />
The -grsecurity patches can be found at https://grsecurity.net<br />
<br />
====Tiny-Patches====<br />
The goal of [http://elinux.org/Linux_Tiny Linux Tiny] is to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s.<br />
<br />
Patch releases against the mainstream Linux kernel have been discontinued. The developers chose to focus on a few patches and spend their time trying to get them merged into the mainline kernel.<br />
<br />
====-pf====<br />
{{AUR|linux-pf}} is yet another Linux kernel fork which provides you with a handful of awesome features not merged into mainline. It is based on neither existing Linux fork nor patchset, although some unofficial ports may be used if required patches have not been released officially.<br />
The most prominent patches of linux-pf are TuxOnIce, the CK patchset (most notably BFS), AUFS3, LinuxIMQ, l7 filter and BFQ.<br />
<br />
See [[linux-pf]] for more information.<br />
<br />
===Individual patches===<br />
<br />
These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset.<br />
<br />
====Reiser4====<br />
<br />
[[Reiser4]]<br />
<br />
====fbsplash====<br />
[[fbsplash]]<br />
<br />
== Compilation ==<br />
Arch Linux provides for several methods of kernel compilation.<br />
<br />
=== Using the Arch Build System ===<br />
Using the [[Arch Build System]] takes advantage of the high quality of the existing {{Pkg|linux}} [[PKGBUILD]] and the benefits of [[Wikipedia:Package management system|package management]]. The PKGBUILD is structured so that you can stop the build after the source is downloaded and configure the kernel.<br />
<br />
See [[Kernels/Arch Build System]].<br />
<br />
=== Traditional ===<br />
This involves manually downloading a source tarball, and compiling in your home directory as a normal user. Once configured, two installation methods are available; the traditional manual method, or with [[Makepkg]] + [[Pacman]].<br />
<br />
See [[Kernels/Traditional compilation]].<br />
<br />
== See also ==<br />
*[http://www.kroah.com/lkn/ O'Reilly - Linux Kernel in a Nutshell] (free ebook)</div>Rvalleshttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=421061List of applications/Internet2016-02-17T13:55:29Z<p>Rvalles: MPPE</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[cs:List of applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[ru:List of applications/Internet]]<br />
[[zh-cn:List of applications/Internet]]<br />
[[zh-tw:List of applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
{{Note|1=For possibly more up to date selection of applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=13&SeB=nd&SB=n&SO=a&PP=50 AUR 'network' category]}}<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, GTK and Dmenu clients are available.|https://01.org/connman|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|https://wiki.gnome.org/Projects/NetworkManager|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through [[udev]]. The service is available with ''systemd'' > 210.|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|https://launchpad.net/wicd|{{Pkg|wicd}}}}<br />
<br />
=== VPN clients ===<br />
<br />
* {{App|[[OpenConnect]]|Supports Cisco and Juniper VPNs.|http://www.infradead.org/openconnect/|{{pkg|openconnect}}}}<br />
* {{App|[[PPTPClient]]|To connect to PPTP VPNs, like Microsoft VPNs (MPPE).|http://pptpclient.sourceforge.net/|{{pkg|pptpclient}}}}<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [links -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images. It has javascript support too.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://repo.or.cz/w/conkeror.git/|{{AUR|conkeror-git}}}}<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|Seamonkey|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
<br />
====== Firefox forks ======<br />
<br />
{{Warning|The following browsers are third-party builds of Firefox. Please direct any support requests to their respective creators.}}<br />
<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|Web browser distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|[[Wikipedia:Mozilla Corporation software rebranded by the Debian project#Iceweasel|Iceweasel]]|Fork of Firefox developed by Debian Linux. The main difference is that it does not include any trademarked Mozilla artwork. See [http://web.glandium.org/blog/?p&#61;97 glandium] for more information on Iceweasel's existence.|https://wiki.debian.org/Iceweasel|{{AUR|iceweasel}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|Fork based on Firefox, using a Firefox 3+ interface through selective use of add-ons. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.|http://www.palemoon.org/|{{AUR|palemoon-bin}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|Brave|Web browser that blocks ads and trackers by default.|https://www.brave.com/|{{AUR|brave}}}}<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|http://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|Liri|A minimalistic material design web browser written for Papyros.|http://liriproject.me/browser|{{AUR|liri-browser}}}}<br />
* {{App|[[Opera]]|Highly customizable browser with focuses on an adherence to web rendering standards.|http://opera.com|{{Pkg|opera}}}}<br />
* {{App|Quill|A simple web browser that hopefully won't leave you asking "Why is the RAM gone?".|https://bitbucket.org/xiannox/quill|{{AUR|quill-git}}}}<br />
* {{App|Vivaldi|An advanced browser made with the power user in mind.|https://vivaldi.com/|{{AUR|vivaldi}}}}<br />
* {{App|Yandex.Browser|Combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://browser.yandex.ru/beta/|{{AUR|yandex-browser}}}}<br />
<br />
===== Webkit-based =====<br />
<br />
See also [[Wikipedia:Webkit]].<br />
<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://github.com/arora/arora|{{AUR|arora-git}}}}<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji-git}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{Pkg|luakit}}}}<br />
* {{App|Maxthon|A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://www.maxthon.cn/|{{AUR|maxthon-browser}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Otter-browser|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on WebKit core, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{Pkg|qutebrowser}}}}<br />
* {{App|[[wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Sb|Very lightweight WebKit-based browser that uses keybindings to perform most things the URL bar would usually do.|https://github.com/mutantturkey/sb/|{{AUR|sb-git}}{{Broken package link|{{aur-mirror|sb-git}}}}}}<br />
* {{App|SlimBoat|Fast, free secure and powerful web browser based on QtWebkit.|http://www.slimboat.com/|{{AUR|slimboat}}{{Broken package link|{{aur-mirror|slimboat}}}}}}<br />
* {{App|Surf|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] (formerly known as ''xxxterm'') |Webkit minimalist web browser with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{AUR|xombrero-git}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Abaco (web browser)|Abaco]]|Multi-page graphical web browser for the Plan 9 OS.|http://lab-fgb.com/abaco/|{{AUR|abaco}}{{Broken package link|{{aur-mirror|abaco}}}}}}<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]].|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt and KHTML, part of {{Grp|kdebase}}.|http://konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own custom rendering engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
<br />
=== File sharing ===<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[FtpFs#Fuseftp|fuseftp]]|FTP filesystem written in Perl, using [[Wikipedia:Filesystem in Userspace|FUSE]].|http://freshmeat.net/projects/fuseftp/|{{AUR|fuseftp}}{{Broken package link|{{aur-mirror|fuseftp}}}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|ncftp|A set of free application programs implementing FTP.|http://www.ncftp.com/|{{Pkg|ncftp}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
* {{App|[[bftpd]]|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|http://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
* {{App|Vuze Plus Extreme Mod|A modded version of the Vuze BitTorrent client with multiple spoofing capabilities.|http://www.sb-innovation.de/f41/vuze-extreme-mod-sb-innovation-5-6-1-3-a-32315/|{{AUR|vuze-extreme-mod}}}}<br />
<br />
==== Other P2P networks ====<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|Sendanywhere| GTK2 client for the cross platform P2P file sharing service, Sendanywhere. Allow users to send files of any type and size to other Android, iOS, and Desktop devices.|https://www.send-anywhere.com|{{AUR|sendanywhere}}}}<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|http://sourceforge.net/apps/mediawiki/sharelin|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
==== Video downloaders ====<br />
<br />
* {{App|youtube-dl|Download videos from YouTube and many other platforms.|http://rg3.github.io/youtube-dl|{{Pkg|youtube-dl}}}}<br />
* {{App|You-Get|Dumb downloader that scrapes the web.|https://you-get.org/|{{Pkg|you-get}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|http://patches.freeiz.com/alpine/|{{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|http://sourceforge.net/projects/s-nail/|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|[[nmh]]|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|http://supmua.org/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Balsa]]|Simple and light email client that is part of the Gnome project.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client used in GNOME by default. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|FossaMail|FossaMail is a Mozilla Thunderbird-based mail, news and chat client by the Pale Moon developers.|http://www.fossamail.org|{{AUR|fossamail-bin}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|N1|A new mail client, built on the modern web and designed to be extended.|https://www.nylas.com/N1/|{{AUR|n1}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://wiki.gnome.org/Projects/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari/|{{Pkg|polari}}}}<br />
* {{App|[[Wikipedia:Quassel IRC|Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client that works on both Linux and Windows.|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}<br />
* {{App|xmpp-client|A minimalist XMPP client with OTR support.|https://github.com/agl/xmpp-client|{{AUR|go-xmpp-client}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|Jabbim|Jabber client written in PyQt.|http://www.jabbim.com/|{{AUR|jabbim-svn}}{{Broken package link|{{aur-mirror|jabbim-svn}}}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing (since version 0.13).|http://psi-im.org/|{{Pkg|psi}} {{Pkg|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|http://psi-plus.com/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}{{Broken package link|{{aur-mirror|jabberd2}}}}}}<br />
* {{App|Openfire|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|see [[Tox]]}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|Carrier|Pidgin fork providing minor GUI enhancements (formerly FunPidgin).|http://funpidgin.sourceforge.net/|{{AUR|carrier}}{{Broken package link|{{aur-mirror|carrier}}}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|PyGTK instant messenger for the Windows Live Messenger network, also compatible with Jabber, Facebook and Google Talk.|http://emesene.org/|{{AUR|emesene}}{{Broken package link|{{aur-mirror|emesene}}}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|Galaxium Messenger|Messenger application designed for the GNOME desktop.|https://code.google.com/p/galaxium/|{{AUR|galaxium}}{{Broken package link|{{aur-mirror|galaxium}}}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim-stable}}{{Broken package link|{{aur-mirror|qutim-stable}}}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (software)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink-darcs}}{{Broken package link|{{aur-mirror|blink-darcs}}}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:QuteCom|QuteCom]]|Softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place (formerly Wengo Phone).|http://trac.qutecom.org/|{{AUR|qutecom}}{{Broken package link|{{aur-mirror|qutecom}}}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{Pkg|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:Ring_(software)|Ring]] |Open-source SIP/IAX2 compatible softphone with PulseAudio support (formerly known as SFLphone).|http://ring.cx/|{{AUR|ring-daemon}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://gitorious.org/gladstone|{{AUR|gladstone-drizztbsd-git}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
* {{App|Sipsak|Small command-line tool for developers and administrators of SIP applications.|http://sipsak.org/|{{AUR|sipsak}}{{Broken package link|{{aur-mirror|sipsak}}}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition applications]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{Pkg|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}.|http://kde.org/applications/internet/akregator/|{{Pkg|akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.| https://git.gnome.org/browse/blam|{{Pkg|blam}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.| http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://bitbucket.org/skunkos/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}{{Broken package link|{{aur-mirror|tickr}}}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal-bzr}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{aur|pan}}}}<br />
* {{app|[[Wikipedia:slrn|slrn]]|An open source text-based news client.|http://www.slrn.org/|{{pkg|slrn}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|[[Wikipedia:XPN_(newsreader)|XPN]]|A graphical newsreader use PyGTK.|http://xpn.altervista.org/index-en.html|{{aur|xpn}}{{Broken package link|{{aur-mirror|xpn}}}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{App|Nikola|A static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{AUR|python-nikola}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{Pkg|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux, currently [http://www.birdieapp.eu/2014/10/26/birdie-2-status.html under active development].|http://birdieapp.github.io/ |{{AUR|birdie}}{{Broken package link|{{aur-mirror|birdie}}}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|[[Wikipedia:Gwibber|Gwibber]]|GTK-based microblogging client with support for Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu.|http://gwibber.com/|{{AUR|gwibber}}{{Broken package link|{{aur-mirror|gwibber}}}}}}<br />
* {{App|[[Wikipedia:Hotot (program)|Hotot]]|Lightweight and open source microblogging client with support for Twitter and Identi.ca and integration with various image sharing services and URL shorteners [http://hotot.org/ (discontinued)].|http://hotot.org|{{AUR|hotot}}{{Broken package link|{{aur-mirror|hotot}}}}}}<br />
* {{App|Pino|Simple and fast client for Twitter and Identi.ca written in [[Wikipedia:Vala (programming language)|Vala]].|http://pino-app.appspot.com/|{{AUR|pino}}{{Broken package link|{{aur-mirror|pino}}}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}<br />
* {{App|Qwit|Cross-platform client for Twitter using the Qt toolkit.|http://code.google.com/p/qwit/|{{AUR|qwit}}{{Broken package link|{{aur-mirror|qwit}}}}}}<br />
* {{App|ttytter|Easily scriptable twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{Pkg|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|http://turpial.org.ve/|{{AUR|turpial-git}}}}<br />
* {{App|turses|Twitter client for the console based off {{AUR|tyrs}}{{Broken package link|{{aur-mirror|tyrs}}}} with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc).}}<br />
<br />
* {{App|codepad-git|A [http://www.codepad.org codepad.org] pastebin client written in python.|https://github.com/kevr/codepad|{{AUR|codepad-git}}{{Broken package link|{{aur-mirror|codepad-git}}}}}}<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|http://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|haste}}{{Broken package link|{{aur-mirror|haste}}}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{AUR|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse}}{{Broken package link|{{aur-mirror|paste-binouse}}}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|ruby-haste|Client for [http://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See the main article: [[Bitcoin]].<br />
<br />
* {{App|Armory|Bitcoin client with features such as support for multiple wallets, importing keys and backups.|https://github.com/etotheipi/BitcoinArmory|{{AUR|armory-git}}}}<br />
* {{App|[[Bitcoin]]|Official tool to manage Bitcoins, a P2P currency.|http://bitcoin.org/|{{Pkg|bitcoin-daemon}} {{Pkg|bitcoin-qt}}}}<br />
* {{App|Electrum|An easy to use Bitcoin client.|http://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|MultiBit|A lightweight Bitcoin desktop client powered by the BitCoinJ library.|https://multibit.org/|{{Pkg|multibit}}}}<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>Rvalleshttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=421060List of applications/Internet2016-02-17T13:53:34Z<p>Rvalles: prettier</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[cs:List of applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[ru:List of applications/Internet]]<br />
[[zh-cn:List of applications/Internet]]<br />
[[zh-tw:List of applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
{{Note|1=For possibly more up to date selection of applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=13&SeB=nd&SB=n&SO=a&PP=50 AUR 'network' category]}}<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, GTK and Dmenu clients are available.|https://01.org/connman|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|https://wiki.gnome.org/Projects/NetworkManager|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through [[udev]]. The service is available with ''systemd'' > 210.|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|https://launchpad.net/wicd|{{Pkg|wicd}}}}<br />
<br />
=== VPN clients ===<br />
<br />
* {{App|[[OpenConnect]]|Supports Cisco and Juniper VPNs.|http://www.infradead.org/openconnect/|{{pkg|openconnect}}}}<br />
* {{App|[[PPTPClient]]|To connect to PPTP VPNs, like Microsoft VPNs.|http://pptpclient.sourceforge.net/|{{pkg|pptpclient}}}}<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [links -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images. It has javascript support too.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://repo.or.cz/w/conkeror.git/|{{AUR|conkeror-git}}}}<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|Seamonkey|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
<br />
====== Firefox forks ======<br />
<br />
{{Warning|The following browsers are third-party builds of Firefox. Please direct any support requests to their respective creators.}}<br />
<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|Web browser distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|[[Wikipedia:Mozilla Corporation software rebranded by the Debian project#Iceweasel|Iceweasel]]|Fork of Firefox developed by Debian Linux. The main difference is that it does not include any trademarked Mozilla artwork. See [http://web.glandium.org/blog/?p&#61;97 glandium] for more information on Iceweasel's existence.|https://wiki.debian.org/Iceweasel|{{AUR|iceweasel}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|Fork based on Firefox, using a Firefox 3+ interface through selective use of add-ons. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.|http://www.palemoon.org/|{{AUR|palemoon-bin}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|Brave|Web browser that blocks ads and trackers by default.|https://www.brave.com/|{{AUR|brave}}}}<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|http://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|Liri|A minimalistic material design web browser written for Papyros.|http://liriproject.me/browser|{{AUR|liri-browser}}}}<br />
* {{App|[[Opera]]|Highly customizable browser with focuses on an adherence to web rendering standards.|http://opera.com|{{Pkg|opera}}}}<br />
* {{App|Quill|A simple web browser that hopefully won't leave you asking "Why is the RAM gone?".|https://bitbucket.org/xiannox/quill|{{AUR|quill-git}}}}<br />
* {{App|Vivaldi|An advanced browser made with the power user in mind.|https://vivaldi.com/|{{AUR|vivaldi}}}}<br />
* {{App|Yandex.Browser|Combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://browser.yandex.ru/beta/|{{AUR|yandex-browser}}}}<br />
<br />
===== Webkit-based =====<br />
<br />
See also [[Wikipedia:Webkit]].<br />
<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://github.com/arora/arora|{{AUR|arora-git}}}}<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji-git}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{Pkg|luakit}}}}<br />
* {{App|Maxthon|A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://www.maxthon.cn/|{{AUR|maxthon-browser}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Otter-browser|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on WebKit core, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{Pkg|qutebrowser}}}}<br />
* {{App|[[wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Sb|Very lightweight WebKit-based browser that uses keybindings to perform most things the URL bar would usually do.|https://github.com/mutantturkey/sb/|{{AUR|sb-git}}{{Broken package link|{{aur-mirror|sb-git}}}}}}<br />
* {{App|SlimBoat|Fast, free secure and powerful web browser based on QtWebkit.|http://www.slimboat.com/|{{AUR|slimboat}}{{Broken package link|{{aur-mirror|slimboat}}}}}}<br />
* {{App|Surf|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] (formerly known as ''xxxterm'') |Webkit minimalist web browser with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{AUR|xombrero-git}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Abaco (web browser)|Abaco]]|Multi-page graphical web browser for the Plan 9 OS.|http://lab-fgb.com/abaco/|{{AUR|abaco}}{{Broken package link|{{aur-mirror|abaco}}}}}}<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]].|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt and KHTML, part of {{Grp|kdebase}}.|http://konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own custom rendering engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
<br />
=== File sharing ===<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[FtpFs#Fuseftp|fuseftp]]|FTP filesystem written in Perl, using [[Wikipedia:Filesystem in Userspace|FUSE]].|http://freshmeat.net/projects/fuseftp/|{{AUR|fuseftp}}{{Broken package link|{{aur-mirror|fuseftp}}}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|ncftp|A set of free application programs implementing FTP.|http://www.ncftp.com/|{{Pkg|ncftp}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
* {{App|[[bftpd]]|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|http://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
* {{App|Vuze Plus Extreme Mod|A modded version of the Vuze BitTorrent client with multiple spoofing capabilities.|http://www.sb-innovation.de/f41/vuze-extreme-mod-sb-innovation-5-6-1-3-a-32315/|{{AUR|vuze-extreme-mod}}}}<br />
<br />
==== Other P2P networks ====<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|Sendanywhere| GTK2 client for the cross platform P2P file sharing service, Sendanywhere. Allow users to send files of any type and size to other Android, iOS, and Desktop devices.|https://www.send-anywhere.com|{{AUR|sendanywhere}}}}<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|http://sourceforge.net/apps/mediawiki/sharelin|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
==== Video downloaders ====<br />
<br />
* {{App|youtube-dl|Download videos from YouTube and many other platforms.|http://rg3.github.io/youtube-dl|{{Pkg|youtube-dl}}}}<br />
* {{App|You-Get|Dumb downloader that scrapes the web.|https://you-get.org/|{{Pkg|you-get}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|http://patches.freeiz.com/alpine/|{{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|http://sourceforge.net/projects/s-nail/|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|[[nmh]]|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|http://supmua.org/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Balsa]]|Simple and light email client that is part of the Gnome project.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client used in GNOME by default. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|FossaMail|FossaMail is a Mozilla Thunderbird-based mail, news and chat client by the Pale Moon developers.|http://www.fossamail.org|{{AUR|fossamail-bin}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|N1|A new mail client, built on the modern web and designed to be extended.|https://www.nylas.com/N1/|{{AUR|n1}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://wiki.gnome.org/Projects/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari/|{{Pkg|polari}}}}<br />
* {{App|[[Wikipedia:Quassel IRC|Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client that works on both Linux and Windows.|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}<br />
* {{App|xmpp-client|A minimalist XMPP client with OTR support.|https://github.com/agl/xmpp-client|{{AUR|go-xmpp-client}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|Jabbim|Jabber client written in PyQt.|http://www.jabbim.com/|{{AUR|jabbim-svn}}{{Broken package link|{{aur-mirror|jabbim-svn}}}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing (since version 0.13).|http://psi-im.org/|{{Pkg|psi}} {{Pkg|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|http://psi-plus.com/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}{{Broken package link|{{aur-mirror|jabberd2}}}}}}<br />
* {{App|Openfire|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|see [[Tox]]}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|Carrier|Pidgin fork providing minor GUI enhancements (formerly FunPidgin).|http://funpidgin.sourceforge.net/|{{AUR|carrier}}{{Broken package link|{{aur-mirror|carrier}}}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|PyGTK instant messenger for the Windows Live Messenger network, also compatible with Jabber, Facebook and Google Talk.|http://emesene.org/|{{AUR|emesene}}{{Broken package link|{{aur-mirror|emesene}}}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|Galaxium Messenger|Messenger application designed for the GNOME desktop.|https://code.google.com/p/galaxium/|{{AUR|galaxium}}{{Broken package link|{{aur-mirror|galaxium}}}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim-stable}}{{Broken package link|{{aur-mirror|qutim-stable}}}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (software)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink-darcs}}{{Broken package link|{{aur-mirror|blink-darcs}}}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:QuteCom|QuteCom]]|Softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place (formerly Wengo Phone).|http://trac.qutecom.org/|{{AUR|qutecom}}{{Broken package link|{{aur-mirror|qutecom}}}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{Pkg|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:Ring_(software)|Ring]] |Open-source SIP/IAX2 compatible softphone with PulseAudio support (formerly known as SFLphone).|http://ring.cx/|{{AUR|ring-daemon}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://gitorious.org/gladstone|{{AUR|gladstone-drizztbsd-git}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
* {{App|Sipsak|Small command-line tool for developers and administrators of SIP applications.|http://sipsak.org/|{{AUR|sipsak}}{{Broken package link|{{aur-mirror|sipsak}}}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition applications]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{Pkg|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}.|http://kde.org/applications/internet/akregator/|{{Pkg|akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.| https://git.gnome.org/browse/blam|{{Pkg|blam}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.| http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://bitbucket.org/skunkos/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}{{Broken package link|{{aur-mirror|tickr}}}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal-bzr}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{aur|pan}}}}<br />
* {{app|[[Wikipedia:slrn|slrn]]|An open source text-based news client.|http://www.slrn.org/|{{pkg|slrn}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|[[Wikipedia:XPN_(newsreader)|XPN]]|A graphical newsreader use PyGTK.|http://xpn.altervista.org/index-en.html|{{aur|xpn}}{{Broken package link|{{aur-mirror|xpn}}}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{App|Nikola|A static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{AUR|python-nikola}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{Pkg|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux, currently [http://www.birdieapp.eu/2014/10/26/birdie-2-status.html under active development].|http://birdieapp.github.io/ |{{AUR|birdie}}{{Broken package link|{{aur-mirror|birdie}}}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|[[Wikipedia:Gwibber|Gwibber]]|GTK-based microblogging client with support for Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu.|http://gwibber.com/|{{AUR|gwibber}}{{Broken package link|{{aur-mirror|gwibber}}}}}}<br />
* {{App|[[Wikipedia:Hotot (program)|Hotot]]|Lightweight and open source microblogging client with support for Twitter and Identi.ca and integration with various image sharing services and URL shorteners [http://hotot.org/ (discontinued)].|http://hotot.org|{{AUR|hotot}}{{Broken package link|{{aur-mirror|hotot}}}}}}<br />
* {{App|Pino|Simple and fast client for Twitter and Identi.ca written in [[Wikipedia:Vala (programming language)|Vala]].|http://pino-app.appspot.com/|{{AUR|pino}}{{Broken package link|{{aur-mirror|pino}}}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}<br />
* {{App|Qwit|Cross-platform client for Twitter using the Qt toolkit.|http://code.google.com/p/qwit/|{{AUR|qwit}}{{Broken package link|{{aur-mirror|qwit}}}}}}<br />
* {{App|ttytter|Easily scriptable twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{Pkg|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|http://turpial.org.ve/|{{AUR|turpial-git}}}}<br />
* {{App|turses|Twitter client for the console based off {{AUR|tyrs}}{{Broken package link|{{aur-mirror|tyrs}}}} with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc).}}<br />
<br />
* {{App|codepad-git|A [http://www.codepad.org codepad.org] pastebin client written in python.|https://github.com/kevr/codepad|{{AUR|codepad-git}}{{Broken package link|{{aur-mirror|codepad-git}}}}}}<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|http://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|haste}}{{Broken package link|{{aur-mirror|haste}}}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{AUR|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse}}{{Broken package link|{{aur-mirror|paste-binouse}}}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|ruby-haste|Client for [http://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See the main article: [[Bitcoin]].<br />
<br />
* {{App|Armory|Bitcoin client with features such as support for multiple wallets, importing keys and backups.|https://github.com/etotheipi/BitcoinArmory|{{AUR|armory-git}}}}<br />
* {{App|[[Bitcoin]]|Official tool to manage Bitcoins, a P2P currency.|http://bitcoin.org/|{{Pkg|bitcoin-daemon}} {{Pkg|bitcoin-qt}}}}<br />
* {{App|Electrum|An easy to use Bitcoin client.|http://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|MultiBit|A lightweight Bitcoin desktop client powered by the BitCoinJ library.|https://multibit.org/|{{Pkg|multibit}}}}<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:Pptpclient&diff=421058Talk:Pptpclient2016-02-17T13:47:45Z<p>Rvalles: Rvalles moved page Talk:Pptpclient to Talk:PPTPClient: upper/lowercase</p>
<hr />
<div>#REDIRECT [[Talk:PPTPClient]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:PPTP_Client&diff=421057Talk:PPTP Client2016-02-17T13:47:45Z<p>Rvalles: Rvalles moved page Talk:Pptpclient to Talk:PPTPClient: upper/lowercase</p>
<hr />
<div>I had to load the nf_conntrack_proto_gre and nf_conntrack_pptp kernel modules to connect to my PPTP/VPN server. This can be done with:<br />
"# modprobe nf_conntrack_proto_gre nf_conntrack_pptp"<br />
<br />
<br />
<br />
There must be an error in the Troubleshooting section:<br />
<br />
iptables -A ACCEPT ....<br />
it should be iptables -A INPUT ... or OUTPUT ...something like that but not ACCEPT</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Pptpclient&diff=421056Pptpclient2016-02-17T13:47:45Z<p>Rvalles: Rvalles moved page Pptpclient to PPTPClient: upper/lowercase</p>
<hr />
<div>#REDIRECT [[PPTPClient]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=PPTP_Client&diff=421055PPTP Client2016-02-17T13:47:45Z<p>Rvalles: Rvalles moved page Pptpclient to PPTPClient: upper/lowercase</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
[[zh-CN:Microsoft VPN client setup with pptpclient]]<br />
pptpclient is a program implementing the Microsoft PPTP protocol. As such, it can be used to connect to a Microsoft VPN network (or any PPTP-based VPN) provided by a school or workplace.<br />
<br />
== Installing PPTP Client ==<br />
<br />
Install {{Pkg|pptpclient}} from the [[official repositories]].<br />
<br />
== Configure ==<br />
<br />
To configure pptpclient you will need to collect the following information from your network administrator:<br />
<br />
* The IP address or hostname of the VPN server.<br />
* The username you will use to connect.<br />
* The password you will use to connect.<br />
* The authentication (Windows) domain name. This is not necessary for certain networks.<br />
<br />
You must also decide what to name the tunnel.<br />
<br />
=== Configure using ''pptpsetup'' ===<br />
<br />
You can configure and delete tunnels by running the ''pptpsetup'' tool as root. For example:<br />
<br />
pptpsetup --create my_tunnel --server vpn.example.com --username alice --password foo --encrypt<br />
pptpsetup --delete my_tunnel<br />
<br />
You can [[#Connect]] after a tunnel has been configured.<br />
<br />
=== Configure by hand ===<br />
<br />
You can also edit all necessary configuration files by hand, rather than relying on ''pptpsetup''.<br />
<br />
==== Edit The options File ====<br />
<br />
The {{ic|/etc/ppp/options}} file sets security options for your VPN client. If you have trouble connecting to your network, you may need to relax the options. At a minimum, this file should contain the options {{ic|lock}}, {{ic|noauth}}, {{ic|nobsdcomp}} and {{ic|nodeflate}}.<br />
<br />
{{hc|/etc/ppp/options|# Lock the port<br />
lock<br />
# We don't need the tunnel server to authenticate itself<br />
noauth<br />
# Turn off compression protocols we know won't be used<br />
nobsdcomp<br />
nodeflate<br />
# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2<br />
# (you may need to remove these refusals if the server is not using MPPE)<br />
refuse-pap<br />
refuse-eap<br />
refuse-chap<br />
refuse-mschap}}<br />
<br />
==== Edit The chap-secrets File ====<br />
<br />
The {{ic|/etc/ppp/chap-secrets}} file contains credentials for authenticating a tunnel. Make sure no one except root can read this file, as it contains sensitive information.<br />
chmod 0600 /etc/ppp/chap-secrets<br />
<br />
Edit the file. It has the following format:<br />
{{hc|/etc/ppp/chap-secrets|<DOMAIN>\\<USERNAME> PPTP <PASSWORD> *}}<br />
<br />
Replace each bracketed term with an appropriate value. Omit {{ic|<DOMAIN>\\}} if your connection does not require a domain.<br />
<br />
{{Note|Place your password in double quotation marks ({{ic|"}}) if it contains special characters such as {{ic|$}}.}}<br />
{{Warning|This file contains passwords in plain text. Guard it well!}}<br />
<br />
==== Name Your Tunnel ====<br />
<br />
The {{ic|/etc/ppp/peers/<TUNNEL>}} file contains tunnel-specific configuration options. {{ic|<TUNNEL>}} is the name you wish to use for your VPN connection. The file should look like this:<br />
{{hc|/etc/ppp/peers/<TUNNEL>|pty "pptp <SERVER> --nolaunchpppd"<br />
name <DOMAIN>\\<USERNAME><br />
remotename PPTP<br />
require-mppe-128<br />
file /etc/ppp/options<br />
ipparam <TUNNEL>}}<br />
<br />
Again, omit {{ic|<DOMAIN>\\}} if your connection does not require a domain. {{ic|<SERVER>}} is the remote address of the VPN server, {{ic|<DOMAIN>}} is the domain your user belongs to, {{ic|<USERNAME>}} is the name you will use to connect to the server, and {{ic|<TUNNEL>}} is the name of the connection.<br />
<br />
{{Note|{{ic|remotename PPTP}} is used to find {{ic|<PASSWORD>}} in the {{ic|/etc/ppp/chap-secrets}} File.}}<br />
{{Note|If you do not need MPPE support, you should remove the {{ic|require-mppe-128}} option from this file and from {{ic|/etc/ppp/options}}}}<br />
<br />
== Connect ==<br />
<br />
To make sure that everything is configured properly, as root execute:<br />
# pon <TUNNEL> debug dump logfd 2 nodetach<br />
<br />
If everything has been configured correctly, the {{ic|pon}} command should not terminate. Once you are satisfied that it has connected successfully, you can terminate the command.<br />
<br />
{{Note|As an additional verification you can run {{ic|ip addr show}} and ensure that a new device, {{ic|ppp0}}, is available.}}<br />
<br />
To connect to your VPN normally, simply execute:<br />
# pon <TUNNEL><br />
<br />
Where {{ic|<TUNNEL>}} is the name of the tunnel you established earlier. Note that this command should be run as root.<br />
<br />
=== Routing ===<br />
<br />
Once you have connected to your VPN, you should be able to interact with anything available on the VPN server. To access anything on the remote network, you need to add a new route to your routing table.<br />
<br />
{{Note|Depending on your configuration, you may need to re-add the routing information every time you connect to your VPN.}}<br />
<br />
For more information on how to add routes, you can read this article which has many more examples: [http://pptpclient.sourceforge.net/routing.phtml PPTP Routing Howto]<br />
<br />
==== Split Tunneling ====<br />
<br />
Packets with a destination of your VPN's network should be routed through the VPN interface (usually {{ic|ppp0}}). To do this, you create the route:<br />
# ip route add 192.168.10.0/24 dev ppp0<br />
<br />
This will route all the traffic with a destination of 192.168.10.* through your VPN's interface, ({{ic|ppp0}}).<br />
<br />
==== Route All Traffic ====<br />
<br />
It may be desirable to route ''all'' traffic through your VPN connection. You can do this by running:<br />
# ip route add default dev ppp0<br />
<br />
{{Note|Routing all traffic through the VPN may result in slower over all connection speed because your traffic will be routed through the remote VPN before being routed normally.}}<br />
<br />
==== Route All Traffic by /etc/ppp/ip-up.d ====<br />
<br />
{{Note|All scripts in {{ic|/etc/ppp/ip-up.d/}} will called when the VPN connection is established.}}<br />
<br />
{{hc|/etc/ppp/ip-up.d/01-routes.sh|<nowiki><br />
#!/bin/bash<br />
<br />
# This script is called with the following arguments:<br />
# Arg Name<br />
# $1 Interface name<br />
# $2 The tty<br />
# $3 The link speed<br />
# $4 Local IP number<br />
# $5 Peer IP number<br />
# $6 Optional ``ipparam'' value foo<br />
<br />
ip route add default via $4<br />
</nowiki>}}<br />
<br />
Make sure the script is executable.<br />
<br />
==== Split Tunneling based on port by /etc/ppp/ip-up.d ====<br />
<br />
{{Note|All scripts in {{ic|/etc/ppp/ip-up.d/}} will called when the VPN connection is established.}}<br />
<br />
{{hc|/etc/ppp/ip-up.d/01-routebyport.sh|<nowiki><br />
#!/bin/bash<br />
<br />
# This script is called with the following arguments:<br />
# Arg Name<br />
# $1 Interface name<br />
# $2 The tty<br />
# $3 The link speed<br />
# $4 Local IP number<br />
# $5 Peer IP number<br />
# $6 Optional ``ipparam'' value foo<br />
<br />
echo 0 > /proc/sys/net/ipv4/conf/$1/rp_filter<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_dynaddr<br />
<br />
ip route flush table vpn<br />
ip route add default via $5 dev $1 table vpn<br />
<br />
# forward only IRC ports over VPN<br />
iptables -t mangle -A OUTPUT -p tcp -m multiport --dports 6667,6697 -j MARK --set-mark 0x1<br />
iptables -t nat -A POSTROUTING -o $1 -j MASQUERADE<br />
<br />
ip rule add fwmark 0x1 pri 100 lookup vpn<br />
ip rule add from $4 pri 200 table vpn<br />
ip route flush cache<br />
</nowiki>}}<br />
<br />
Make sure the script is executable and that the vpn table is added to {{ic|/etc/iproute2/rt_tables}}<br />
<br />
201 vpn<br />
<br />
== Disconnect ==<br />
<br />
Execute the following to disconnect from a VPN:<br />
<br />
# poff <TUNNEL><br />
<br />
{{ic|<TUNNEL>}} is the name of your tunnel.<br />
<br />
== Making A VPN Daemon and Connecting On Boot==<br />
<br />
{{Out of date|recent changes to systemd. see https://wiki.archlinux.org/index.php/Systemd/Services}}<br />
<br />
You can create a simple daemon for your VPN connection by creating an appropriate {{ic|/etc/rc.d/*}} script:<br />
<br />
{{Note|As always, {{ic|<TUNNEL>}} is the name of your tunnel. {{ic|<ROUTING COMMAND>}} is the command you use to add the appropriate route to the routing table.}}<br />
<br />
{{Note|1=The ''stop'' functionality of this script '''will not work''' if the {{ic|updetach}} and {{ic|persist}} arguments are passed to {{ic|/usr/bin/pon}} when pon is started. The reason for this is that the {{ic|/usr/bin/poff}} script contains a bug when determining the PID of the specified {{ic|pppd}} process if arguments were passed to {{ic|pon}}.<br />
<br />
To resolve this issue, you can patch your {{ic|/usr/bin/poff}} file by making the following changes on line 93:<br />
{{bc|<nowiki>-PID=`ps axw | grep "[ /]pppd call $1 *\$" | awk '{print $1}'`<br />
+PID=`ps axw | grep "[ /]pppd call $1" | awk '{print $1}'`</nowiki>}}}}<br />
<br />
{{hc|/etc/rc.d/name-of-your-vpn|<nowiki><br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
DAEMON=<TUNNEL>-vpn<br />
ARGS=<br />
<br />
[ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON<br />
<br />
<br />
case "$1" in<br />
start)<br />
stat_busy "Starting $DAEMON"<br />
pon <TUNNEL> updetach persist &>/dev/null && <ROUTING COMMAND> &>/dev/null<br />
if [ $? = 0 ]; then<br />
add_daemon $DAEMON<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stopping $DAEMON"<br />
poff <TUNNEL> &>/dev/null<br />
if [ $? = 0 ]; then<br />
rm_daemon $DAEMON<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}" <br />
esac<br />
</nowiki>}}<br />
<br />
{{Note|We call {{ic|pon}} in the script with two additional arguments: {{ic|updetach}} and {{ic|persist}}. The argument {{ic|updetach}} makes pon block until the connection has been established. The other argument, {{ic|persist}}, makes the network automatically reconnect in the event of a failure. To connect at boot add @<TUNNEL>-vpn to the end of your {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}}.}}<br />
<br />
== Troubleshooting ==<br />
If client connections keep timing out, make sure that GRE is allowed through the client firewall. For iptables, the necessary command is:<br />
# iptables -A ACCEPT -p 47 -j ACCEPT<br />
<br />
If your client is timing out with "LCP: timeout sending Config-Requests", then you might not have the proper modules loaded:<br />
# modprobe nf_conntrack_pptp nf_conntrack_proto_gre<br />
<br />
== Remarks ==<br />
<br />
You can find more information about configuring pptpclient at their website: [http://pptpclient.sourceforge.net/ pptpclient website]. The contents of this article were adapted from their Ubuntu How-To which also provides some hints on how to do things such as connecting on boot. These examples should be easy to adapt into daemons or other scripts to help automate your configuration.<br />
<br />
== See also ==<br />
<br />
[[PPTP server]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=421054List of applications/Internet2016-02-17T13:47:18Z<p>Rvalles: VPN client list</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[cs:List of applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[ru:List of applications/Internet]]<br />
[[zh-cn:List of applications/Internet]]<br />
[[zh-tw:List of applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
{{Note|1=For possibly more up to date selection of applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=13&SeB=nd&SB=n&SO=a&PP=50 AUR 'network' category]}}<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, GTK and Dmenu clients are available.|https://01.org/connman|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|https://wiki.gnome.org/Projects/NetworkManager|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through [[udev]]. The service is available with ''systemd'' > 210.|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|https://launchpad.net/wicd|{{Pkg|wicd}}}}<br />
<br />
=== VPN clients ===<br />
<br />
*[[OpenConnect]]<br />
*[[PPTPClient]]<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [links -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images. It has javascript support too.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://repo.or.cz/w/conkeror.git/|{{AUR|conkeror-git}}}}<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|Seamonkey|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
<br />
====== Firefox forks ======<br />
<br />
{{Warning|The following browsers are third-party builds of Firefox. Please direct any support requests to their respective creators.}}<br />
<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|Web browser distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|[[Wikipedia:Mozilla Corporation software rebranded by the Debian project#Iceweasel|Iceweasel]]|Fork of Firefox developed by Debian Linux. The main difference is that it does not include any trademarked Mozilla artwork. See [http://web.glandium.org/blog/?p&#61;97 glandium] for more information on Iceweasel's existence.|https://wiki.debian.org/Iceweasel|{{AUR|iceweasel}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|Fork based on Firefox, using a Firefox 3+ interface through selective use of add-ons. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.|http://www.palemoon.org/|{{AUR|palemoon-bin}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|Brave|Web browser that blocks ads and trackers by default.|https://www.brave.com/|{{AUR|brave}}}}<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|http://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|Liri|A minimalistic material design web browser written for Papyros.|http://liriproject.me/browser|{{AUR|liri-browser}}}}<br />
* {{App|[[Opera]]|Highly customizable browser with focuses on an adherence to web rendering standards.|http://opera.com|{{Pkg|opera}}}}<br />
* {{App|Quill|A simple web browser that hopefully won't leave you asking "Why is the RAM gone?".|https://bitbucket.org/xiannox/quill|{{AUR|quill-git}}}}<br />
* {{App|Vivaldi|An advanced browser made with the power user in mind.|https://vivaldi.com/|{{AUR|vivaldi}}}}<br />
* {{App|Yandex.Browser|Combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://browser.yandex.ru/beta/|{{AUR|yandex-browser}}}}<br />
<br />
===== Webkit-based =====<br />
<br />
See also [[Wikipedia:Webkit]].<br />
<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://github.com/arora/arora|{{AUR|arora-git}}}}<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji-git}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{Pkg|luakit}}}}<br />
* {{App|Maxthon|A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://www.maxthon.cn/|{{AUR|maxthon-browser}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Otter-browser|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on WebKit core, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, [[vim]]-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{Pkg|qutebrowser}}}}<br />
* {{App|[[wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Sb|Very lightweight WebKit-based browser that uses keybindings to perform most things the URL bar would usually do.|https://github.com/mutantturkey/sb/|{{AUR|sb-git}}{{Broken package link|{{aur-mirror|sb-git}}}}}}<br />
* {{App|SlimBoat|Fast, free secure and powerful web browser based on QtWebkit.|http://www.slimboat.com/|{{AUR|slimboat}}{{Broken package link|{{aur-mirror|slimboat}}}}}}<br />
* {{App|Surf|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] (formerly known as ''xxxterm'') |Webkit minimalist web browser with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{AUR|xombrero-git}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Abaco (web browser)|Abaco]]|Multi-page graphical web browser for the Plan 9 OS.|http://lab-fgb.com/abaco/|{{AUR|abaco}}{{Broken package link|{{aur-mirror|abaco}}}}}}<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]].|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt and KHTML, part of {{Grp|kdebase}}.|http://konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own custom rendering engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
<br />
=== File sharing ===<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[FtpFs#Fuseftp|fuseftp]]|FTP filesystem written in Perl, using [[Wikipedia:Filesystem in Userspace|FUSE]].|http://freshmeat.net/projects/fuseftp/|{{AUR|fuseftp}}{{Broken package link|{{aur-mirror|fuseftp}}}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|ncftp|A set of free application programs implementing FTP.|http://www.ncftp.com/|{{Pkg|ncftp}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
* {{App|[[bftpd]]|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|Ctorrent|CTorrent is a BitTorrent client implemented in C++ to be lightweight and quick.|http://www.rahul.net/dholmes/ctorrent/|{{AUR|enhanced-ctorrent}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
* {{App|Vuze Plus Extreme Mod|A modded version of the Vuze BitTorrent client with multiple spoofing capabilities.|http://www.sb-innovation.de/f41/vuze-extreme-mod-sb-innovation-5-6-1-3-a-32315/|{{AUR|vuze-extreme-mod}}}}<br />
<br />
==== Other P2P networks ====<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|Sendanywhere| GTK2 client for the cross platform P2P file sharing service, Sendanywhere. Allow users to send files of any type and size to other Android, iOS, and Desktop devices.|https://www.send-anywhere.com|{{AUR|sendanywhere}}}}<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|http://sourceforge.net/apps/mediawiki/sharelin|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
==== Video downloaders ====<br />
<br />
* {{App|youtube-dl|Download videos from YouTube and many other platforms.|http://rg3.github.io/youtube-dl|{{Pkg|youtube-dl}}}}<br />
* {{App|You-Get|Dumb downloader that scrapes the web.|https://you-get.org/|{{Pkg|you-get}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|http://patches.freeiz.com/alpine/|{{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[S-nail]]|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]].|http://sourceforge.net/projects/s-nail/|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|[[nmh]]|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|http://supmua.org/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Balsa]]|Simple and light email client that is part of the Gnome project.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client used in GNOME by default. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Evolution|{{Pkg|evolution}}}}<br />
* {{App|FossaMail|FossaMail is a Mozilla Thunderbird-based mail, news and chat client by the Pale Moon developers.|http://www.fossamail.org|{{AUR|fossamail-bin}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|N1|A new mail client, built on the modern web and designed to be extended.|https://www.nylas.com/N1/|{{AUR|n1}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|included with {{Pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://wiki.gnome.org/Projects/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|Polari|Simple IRC client by the GNOME project.|https://wiki.gnome.org/Apps/Polari/|{{Pkg|polari}}}}<br />
* {{App|[[Wikipedia:Quassel IRC|Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client that works on both Linux and Windows.|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
* {{App|Poezio|XMPP client with IRC feeling|https://poez.io/|{{AUR|poezio}}}}<br />
* {{App|xmpp-client|A minimalist XMPP client with OTR support.|https://github.com/agl/xmpp-client|{{AUR|go-xmpp-client}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|Jabbim|Jabber client written in PyQt.|http://www.jabbim.com/|{{AUR|jabbim-svn}}{{Broken package link|{{aur-mirror|jabbim-svn}}}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing (since version 0.13).|http://psi-im.org/|{{Pkg|psi}} {{Pkg|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|http://psi-plus.com/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}{{Broken package link|{{aur-mirror|jabberd2}}}}}}<br />
* {{App|Openfire|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|see [[Tox]]}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|Carrier|Pidgin fork providing minor GUI enhancements (formerly FunPidgin).|http://funpidgin.sourceforge.net/|{{AUR|carrier}}{{Broken package link|{{aur-mirror|carrier}}}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|PyGTK instant messenger for the Windows Live Messenger network, also compatible with Jabber, Facebook and Google Talk.|http://emesene.org/|{{AUR|emesene}}{{Broken package link|{{aur-mirror|emesene}}}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|Galaxium Messenger|Messenger application designed for the GNOME desktop.|https://code.google.com/p/galaxium/|{{AUR|galaxium}}{{Broken package link|{{aur-mirror|galaxium}}}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim-stable}}{{Broken package link|{{aur-mirror|qutim-stable}}}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (software)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink-darcs}}{{Broken package link|{{aur-mirror|blink-darcs}}}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://wiki.gnome.org/Apps/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:QuteCom|QuteCom]]|Softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place (formerly Wengo Phone).|http://trac.qutecom.org/|{{AUR|qutecom}}{{Broken package link|{{aur-mirror|qutecom}}}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{Pkg|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:Ring_(software)|Ring]] |Open-source SIP/IAX2 compatible softphone with PulseAudio support (formerly known as SFLphone).|http://ring.cx/|{{AUR|ring-daemon}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://gitorious.org/gladstone|{{AUR|gladstone-drizztbsd-git}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
* {{App|Sipsak|Small command-line tool for developers and administrators of SIP applications.|http://sipsak.org/|{{AUR|sipsak}}{{Broken package link|{{aur-mirror|sipsak}}}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition applications]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{Pkg|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}.|http://kde.org/applications/internet/akregator/|{{Pkg|akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.| https://git.gnome.org/browse/blam|{{Pkg|blam}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.| http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://bitbucket.org/skunkos/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}{{Broken package link|{{aur-mirror|tickr}}}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal-bzr}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{aur|pan}}}}<br />
* {{app|[[Wikipedia:slrn|slrn]]|An open source text-based news client.|http://www.slrn.org/|{{pkg|slrn}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|[[Wikipedia:XPN_(newsreader)|XPN]]|A graphical newsreader use PyGTK.|http://xpn.altervista.org/index-en.html|{{aur|xpn}}{{Broken package link|{{aur-mirror|xpn}}}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{App|Nikola|A static site generator written in Python, with incremental rebuilds and multiple markup formats.|https://getnikola.com/|{{AUR|python-nikola}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{Pkg|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux, currently [http://www.birdieapp.eu/2014/10/26/birdie-2-status.html under active development].|http://birdieapp.github.io/ |{{AUR|birdie}}{{Broken package link|{{aur-mirror|birdie}}}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|[[Wikipedia:Gwibber|Gwibber]]|GTK-based microblogging client with support for Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu.|http://gwibber.com/|{{AUR|gwibber}}{{Broken package link|{{aur-mirror|gwibber}}}}}}<br />
* {{App|[[Wikipedia:Hotot (program)|Hotot]]|Lightweight and open source microblogging client with support for Twitter and Identi.ca and integration with various image sharing services and URL shorteners [http://hotot.org/ (discontinued)].|http://hotot.org|{{AUR|hotot}}{{Broken package link|{{aur-mirror|hotot}}}}}}<br />
* {{App|Pino|Simple and fast client for Twitter and Identi.ca written in [[Wikipedia:Vala (programming language)|Vala]].|http://pino-app.appspot.com/|{{AUR|pino}}{{Broken package link|{{aur-mirror|pino}}}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Pumpa|Pump.io client written in C++ and Qt.|https://pumpa.branchable.com/|{{AUR|pumpa-git}}}}<br />
* {{App|Qwit|Cross-platform client for Twitter using the Qt toolkit.|http://code.google.com/p/qwit/|{{AUR|qwit}}{{Broken package link|{{aur-mirror|qwit}}}}}}<br />
* {{App|ttytter|Easily scriptable twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{Pkg|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|http://turpial.org.ve/|{{AUR|turpial-git}}}}<br />
* {{App|turses|Twitter client for the console based off {{AUR|tyrs}}{{Broken package link|{{aur-mirror|tyrs}}}} with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc).}}<br />
<br />
* {{App|codepad-git|A [http://www.codepad.org codepad.org] pastebin client written in python.|https://github.com/kevr/codepad|{{AUR|codepad-git}}{{Broken package link|{{aur-mirror|codepad-git}}}}}}<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|http://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|haste}}{{Broken package link|{{aur-mirror|haste}}}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{AUR|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse}}{{Broken package link|{{aur-mirror|paste-binouse}}}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|ruby-haste|Client for [http://hastebin.com/ hastebin.com].|https://github.com/seejohnrun/haste-client|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See the main article: [[Bitcoin]].<br />
<br />
* {{App|Armory|Bitcoin client with features such as support for multiple wallets, importing keys and backups.|https://github.com/etotheipi/BitcoinArmory|{{AUR|armory-git}}}}<br />
* {{App|[[Bitcoin]]|Official tool to manage Bitcoins, a P2P currency.|http://bitcoin.org/|{{Pkg|bitcoin-daemon}} {{Pkg|bitcoin-qt}}}}<br />
* {{App|Electrum|An easy to use Bitcoin client.|http://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|MultiBit|A lightweight Bitcoin desktop client powered by the BitCoinJ library.|https://multibit.org/|{{Pkg|multibit}}}}<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:PPTP_VPN_client_setup_with_pptpclient&diff=421053Talk:PPTP VPN client setup with pptpclient2016-02-17T13:46:54Z<p>Rvalles: Rvalles moved page Talk:PPTP VPN client setup with pptpclient to Talk:Pptpclient: Added to Application List, renamed after the scheme other apps use (just app name)</p>
<hr />
<div>#REDIRECT [[Talk:Pptpclient]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:PPTP_Client&diff=421052Talk:PPTP Client2016-02-17T13:46:54Z<p>Rvalles: Rvalles moved page Talk:PPTP VPN client setup with pptpclient to Talk:Pptpclient: Added to Application List, renamed after the scheme other apps use (just app name)</p>
<hr />
<div>I had to load the nf_conntrack_proto_gre and nf_conntrack_pptp kernel modules to connect to my PPTP/VPN server. This can be done with:<br />
"# modprobe nf_conntrack_proto_gre nf_conntrack_pptp"<br />
<br />
<br />
<br />
There must be an error in the Troubleshooting section:<br />
<br />
iptables -A ACCEPT ....<br />
it should be iptables -A INPUT ... or OUTPUT ...something like that but not ACCEPT</div>Rvalleshttps://wiki.archlinux.org/index.php?title=PPTP_VPN_client_setup_with_pptpclient&diff=421051PPTP VPN client setup with pptpclient2016-02-17T13:46:53Z<p>Rvalles: Rvalles moved page PPTP VPN client setup with pptpclient to Pptpclient: Added to Application List, renamed after the scheme other apps use (just app name)</p>
<hr />
<div>#REDIRECT [[Pptpclient]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=PPTP_Client&diff=421050PPTP Client2016-02-17T13:46:53Z<p>Rvalles: Rvalles moved page PPTP VPN client setup with pptpclient to Pptpclient: Added to Application List, renamed after the scheme other apps use (just app name)</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
[[zh-CN:Microsoft VPN client setup with pptpclient]]<br />
pptpclient is a program implementing the Microsoft PPTP protocol. As such, it can be used to connect to a Microsoft VPN network (or any PPTP-based VPN) provided by a school or workplace.<br />
<br />
== Installing PPTP Client ==<br />
<br />
Install {{Pkg|pptpclient}} from the [[official repositories]].<br />
<br />
== Configure ==<br />
<br />
To configure pptpclient you will need to collect the following information from your network administrator:<br />
<br />
* The IP address or hostname of the VPN server.<br />
* The username you will use to connect.<br />
* The password you will use to connect.<br />
* The authentication (Windows) domain name. This is not necessary for certain networks.<br />
<br />
You must also decide what to name the tunnel.<br />
<br />
=== Configure using ''pptpsetup'' ===<br />
<br />
You can configure and delete tunnels by running the ''pptpsetup'' tool as root. For example:<br />
<br />
pptpsetup --create my_tunnel --server vpn.example.com --username alice --password foo --encrypt<br />
pptpsetup --delete my_tunnel<br />
<br />
You can [[#Connect]] after a tunnel has been configured.<br />
<br />
=== Configure by hand ===<br />
<br />
You can also edit all necessary configuration files by hand, rather than relying on ''pptpsetup''.<br />
<br />
==== Edit The options File ====<br />
<br />
The {{ic|/etc/ppp/options}} file sets security options for your VPN client. If you have trouble connecting to your network, you may need to relax the options. At a minimum, this file should contain the options {{ic|lock}}, {{ic|noauth}}, {{ic|nobsdcomp}} and {{ic|nodeflate}}.<br />
<br />
{{hc|/etc/ppp/options|# Lock the port<br />
lock<br />
# We don't need the tunnel server to authenticate itself<br />
noauth<br />
# Turn off compression protocols we know won't be used<br />
nobsdcomp<br />
nodeflate<br />
# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2<br />
# (you may need to remove these refusals if the server is not using MPPE)<br />
refuse-pap<br />
refuse-eap<br />
refuse-chap<br />
refuse-mschap}}<br />
<br />
==== Edit The chap-secrets File ====<br />
<br />
The {{ic|/etc/ppp/chap-secrets}} file contains credentials for authenticating a tunnel. Make sure no one except root can read this file, as it contains sensitive information.<br />
chmod 0600 /etc/ppp/chap-secrets<br />
<br />
Edit the file. It has the following format:<br />
{{hc|/etc/ppp/chap-secrets|<DOMAIN>\\<USERNAME> PPTP <PASSWORD> *}}<br />
<br />
Replace each bracketed term with an appropriate value. Omit {{ic|<DOMAIN>\\}} if your connection does not require a domain.<br />
<br />
{{Note|Place your password in double quotation marks ({{ic|"}}) if it contains special characters such as {{ic|$}}.}}<br />
{{Warning|This file contains passwords in plain text. Guard it well!}}<br />
<br />
==== Name Your Tunnel ====<br />
<br />
The {{ic|/etc/ppp/peers/<TUNNEL>}} file contains tunnel-specific configuration options. {{ic|<TUNNEL>}} is the name you wish to use for your VPN connection. The file should look like this:<br />
{{hc|/etc/ppp/peers/<TUNNEL>|pty "pptp <SERVER> --nolaunchpppd"<br />
name <DOMAIN>\\<USERNAME><br />
remotename PPTP<br />
require-mppe-128<br />
file /etc/ppp/options<br />
ipparam <TUNNEL>}}<br />
<br />
Again, omit {{ic|<DOMAIN>\\}} if your connection does not require a domain. {{ic|<SERVER>}} is the remote address of the VPN server, {{ic|<DOMAIN>}} is the domain your user belongs to, {{ic|<USERNAME>}} is the name you will use to connect to the server, and {{ic|<TUNNEL>}} is the name of the connection.<br />
<br />
{{Note|{{ic|remotename PPTP}} is used to find {{ic|<PASSWORD>}} in the {{ic|/etc/ppp/chap-secrets}} File.}}<br />
{{Note|If you do not need MPPE support, you should remove the {{ic|require-mppe-128}} option from this file and from {{ic|/etc/ppp/options}}}}<br />
<br />
== Connect ==<br />
<br />
To make sure that everything is configured properly, as root execute:<br />
# pon <TUNNEL> debug dump logfd 2 nodetach<br />
<br />
If everything has been configured correctly, the {{ic|pon}} command should not terminate. Once you are satisfied that it has connected successfully, you can terminate the command.<br />
<br />
{{Note|As an additional verification you can run {{ic|ip addr show}} and ensure that a new device, {{ic|ppp0}}, is available.}}<br />
<br />
To connect to your VPN normally, simply execute:<br />
# pon <TUNNEL><br />
<br />
Where {{ic|<TUNNEL>}} is the name of the tunnel you established earlier. Note that this command should be run as root.<br />
<br />
=== Routing ===<br />
<br />
Once you have connected to your VPN, you should be able to interact with anything available on the VPN server. To access anything on the remote network, you need to add a new route to your routing table.<br />
<br />
{{Note|Depending on your configuration, you may need to re-add the routing information every time you connect to your VPN.}}<br />
<br />
For more information on how to add routes, you can read this article which has many more examples: [http://pptpclient.sourceforge.net/routing.phtml PPTP Routing Howto]<br />
<br />
==== Split Tunneling ====<br />
<br />
Packets with a destination of your VPN's network should be routed through the VPN interface (usually {{ic|ppp0}}). To do this, you create the route:<br />
# ip route add 192.168.10.0/24 dev ppp0<br />
<br />
This will route all the traffic with a destination of 192.168.10.* through your VPN's interface, ({{ic|ppp0}}).<br />
<br />
==== Route All Traffic ====<br />
<br />
It may be desirable to route ''all'' traffic through your VPN connection. You can do this by running:<br />
# ip route add default dev ppp0<br />
<br />
{{Note|Routing all traffic through the VPN may result in slower over all connection speed because your traffic will be routed through the remote VPN before being routed normally.}}<br />
<br />
==== Route All Traffic by /etc/ppp/ip-up.d ====<br />
<br />
{{Note|All scripts in {{ic|/etc/ppp/ip-up.d/}} will called when the VPN connection is established.}}<br />
<br />
{{hc|/etc/ppp/ip-up.d/01-routes.sh|<nowiki><br />
#!/bin/bash<br />
<br />
# This script is called with the following arguments:<br />
# Arg Name<br />
# $1 Interface name<br />
# $2 The tty<br />
# $3 The link speed<br />
# $4 Local IP number<br />
# $5 Peer IP number<br />
# $6 Optional ``ipparam'' value foo<br />
<br />
ip route add default via $4<br />
</nowiki>}}<br />
<br />
Make sure the script is executable.<br />
<br />
==== Split Tunneling based on port by /etc/ppp/ip-up.d ====<br />
<br />
{{Note|All scripts in {{ic|/etc/ppp/ip-up.d/}} will called when the VPN connection is established.}}<br />
<br />
{{hc|/etc/ppp/ip-up.d/01-routebyport.sh|<nowiki><br />
#!/bin/bash<br />
<br />
# This script is called with the following arguments:<br />
# Arg Name<br />
# $1 Interface name<br />
# $2 The tty<br />
# $3 The link speed<br />
# $4 Local IP number<br />
# $5 Peer IP number<br />
# $6 Optional ``ipparam'' value foo<br />
<br />
echo 0 > /proc/sys/net/ipv4/conf/$1/rp_filter<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
echo 1 > /proc/sys/net/ipv4/ip_dynaddr<br />
<br />
ip route flush table vpn<br />
ip route add default via $5 dev $1 table vpn<br />
<br />
# forward only IRC ports over VPN<br />
iptables -t mangle -A OUTPUT -p tcp -m multiport --dports 6667,6697 -j MARK --set-mark 0x1<br />
iptables -t nat -A POSTROUTING -o $1 -j MASQUERADE<br />
<br />
ip rule add fwmark 0x1 pri 100 lookup vpn<br />
ip rule add from $4 pri 200 table vpn<br />
ip route flush cache<br />
</nowiki>}}<br />
<br />
Make sure the script is executable and that the vpn table is added to {{ic|/etc/iproute2/rt_tables}}<br />
<br />
201 vpn<br />
<br />
== Disconnect ==<br />
<br />
Execute the following to disconnect from a VPN:<br />
<br />
# poff <TUNNEL><br />
<br />
{{ic|<TUNNEL>}} is the name of your tunnel.<br />
<br />
== Making A VPN Daemon and Connecting On Boot==<br />
<br />
{{Out of date|recent changes to systemd. see https://wiki.archlinux.org/index.php/Systemd/Services}}<br />
<br />
You can create a simple daemon for your VPN connection by creating an appropriate {{ic|/etc/rc.d/*}} script:<br />
<br />
{{Note|As always, {{ic|<TUNNEL>}} is the name of your tunnel. {{ic|<ROUTING COMMAND>}} is the command you use to add the appropriate route to the routing table.}}<br />
<br />
{{Note|1=The ''stop'' functionality of this script '''will not work''' if the {{ic|updetach}} and {{ic|persist}} arguments are passed to {{ic|/usr/bin/pon}} when pon is started. The reason for this is that the {{ic|/usr/bin/poff}} script contains a bug when determining the PID of the specified {{ic|pppd}} process if arguments were passed to {{ic|pon}}.<br />
<br />
To resolve this issue, you can patch your {{ic|/usr/bin/poff}} file by making the following changes on line 93:<br />
{{bc|<nowiki>-PID=`ps axw | grep "[ /]pppd call $1 *\$" | awk '{print $1}'`<br />
+PID=`ps axw | grep "[ /]pppd call $1" | awk '{print $1}'`</nowiki>}}}}<br />
<br />
{{hc|/etc/rc.d/name-of-your-vpn|<nowiki><br />
#!/bin/bash<br />
<br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
<br />
DAEMON=<TUNNEL>-vpn<br />
ARGS=<br />
<br />
[ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON<br />
<br />
<br />
case "$1" in<br />
start)<br />
stat_busy "Starting $DAEMON"<br />
pon <TUNNEL> updetach persist &>/dev/null && <ROUTING COMMAND> &>/dev/null<br />
if [ $? = 0 ]; then<br />
add_daemon $DAEMON<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
;;<br />
stop)<br />
stat_busy "Stopping $DAEMON"<br />
poff <TUNNEL> &>/dev/null<br />
if [ $? = 0 ]; then<br />
rm_daemon $DAEMON<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
;;<br />
restart)<br />
$0 stop<br />
sleep 1<br />
$0 start<br />
;;<br />
*)<br />
echo "usage: $0 {start|stop|restart}" <br />
esac<br />
</nowiki>}}<br />
<br />
{{Note|We call {{ic|pon}} in the script with two additional arguments: {{ic|updetach}} and {{ic|persist}}. The argument {{ic|updetach}} makes pon block until the connection has been established. The other argument, {{ic|persist}}, makes the network automatically reconnect in the event of a failure. To connect at boot add @<TUNNEL>-vpn to the end of your {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}}.}}<br />
<br />
== Troubleshooting ==<br />
If client connections keep timing out, make sure that GRE is allowed through the client firewall. For iptables, the necessary command is:<br />
# iptables -A ACCEPT -p 47 -j ACCEPT<br />
<br />
If your client is timing out with "LCP: timeout sending Config-Requests", then you might not have the proper modules loaded:<br />
# modprobe nf_conntrack_pptp nf_conntrack_proto_gre<br />
<br />
== Remarks ==<br />
<br />
You can find more information about configuring pptpclient at their website: [http://pptpclient.sourceforge.net/ pptpclient website]. The contents of this article were adapted from their Ubuntu How-To which also provides some hints on how to do things such as connecting on boot. These examples should be easy to adapt into daemons or other scripts to help automate your configuration.<br />
<br />
== See also ==<br />
<br />
[[PPTP server]]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Pulse_Connect_Secure&diff=421049Pulse Connect Secure2016-02-17T13:42:21Z<p>Rvalles: Free Software method first.</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
{{Poor writing|Using first person, needs more [[Help:Style|style]] fixes.}}<br />
{{Accuracy|Low quality workarounds}}<br />
== Native Open Source support with OpenConnect ==<br />
<br />
The [http://www.infradead.org/openconnect/ OpenConnect] VPN client has recently added support for Juniper VPN, supporting both TCP and UDP data transports. See the [http://lists.infradead.org/pipermail/openconnect-devel/2015-January/002628.html initial announcement] on the mailing list for more details.<br />
<br />
To use, install {{Pkg|openconnect}} from the Archlinux respositories. If you want NetworkManager support, also install {{Pkg|networkmanager-openconnect}}, and restart NetworkManager.<br />
<br />
== Official Software Preferred installation method==<br />
(NOTE: In [http://kb.juniper.net/InfoCenter/index?page=content&id=KB20490&actp=RSS some cases], depending on your corporate policy configuration, you _must_ login through the browser. If this is the case, command-line tools (jnc, junipernc) will not work.)<br />
<br />
1) Go to your companys' VPN site, log in and download / install the juniper client. <br />
<br />
2) install {{AUR|jnc}} from the [[Arch User Repository]]. For 64-bit Arch, you will need to install 32-bit packages ([[Multilib]]), see [http://www.scc.kit.edu/scc/net/juniper-vpn/linux/ upstream website].<br />
<br />
3) Make a directory for the .config file:<br />
{{bc|$ mkdir -p ~/.juniper_networks/network_connect/config}}<br />
<br />
4) Copy and adapt this .config file in this directory:<br />
{{hc|~/.juniper_networks/network_connect/config/.config|<nowiki><br />
host=foo.bar.com<br />
user=username<br />
password=secret<br />
realm= realm with spaces<br />
cafile=/etc/ssl/bar-chain.pem<br />
certfile=</nowiki>}}<br />
<br />
; cafile: ca chain to verify the host certificate<br />
; certfile: host certificate in DER format. Cafile or certfile must be configured, you can download them from your VPN sign-in page (certificate information, export certificate).<br />
; realm: You can find out your realm by viewing the page source of your VPN sign-in page: just search for the word realm in it.<br />
<br />
5) Start / stop network connect:<br />
{{bc|$ jnc --nox}}<br />
for use without GUI. To stop the client, execute<br />
{{bc|$ jnc stop}}<br />
<br />
==64-bit Hack==<br />
This was the final fix after veritable hours of trying to make it work more properly, and it is very simple:<br />
<br />
1) Install {{AUR|bin32-jre}} from the AUR - make sure the PKGBUILD installs it to {{ic|/opt/bin32-jre}}, rather than {{ic|/opt/java}}, where it will conflict with the 64-bit JRE.<br />
<br />
2) Install {{AUR|jre}} from the AUR.<br />
<br />
3) Move the java binary to java.orig:<br />
{{bc|# mv /opt/java/jre/bin/java /opt/java/jre/bin/java.orig}}<br />
<br />
4) Create a bash script {{ic|java}} and make it executable:<br />
{{bc|# touch /opt/java/jre/bin/java<br />
# chmod 755 /opt/java/jre/bin/java}}<br />
<br />
5) Edit the bash script and you are done:<br />
{{hc|/opt/java/jre/bin/java|<nowiki><br />
#!/bin/bash<br />
if [ $3x = "NCx" ]<br />
then<br />
/opt/bin32-jre/jre/bin/java "$@"<br />
else<br />
/opt/java/jre/bin/java.orig "$@"<br />
fi</nowiki>}}<br />
<br />
Bear in mind, this is a terrible hack, and if you update JRE it will break and you will have to repeat a few steps. That said, it worked fantastically for me, with minimal setup if I need to hop on a VPN from another Arch PC.<br />
<br />
==Another installation method==<br />
<br />
Here is what I did to connect to the Juniper VPN at my company:<br />
<br />
References:<br />
[http://www.gentoo-wiki.info/HOWTO_Juniper_SSL_Network_Connect_VPN Gentoo Wiki Archives]<br />
<br />
#Get [https://www.archlinux.org/packages/search/?q=jre JRE]<br />
#Get the really old GCC libs<br />
##Either with [https://aur.archlinux.org/packages.php?ID=27768 gcc3] and [https://aur.archlinux.org/packages.php?ID=2299 gcc2]<br />
##If you are lazy like me or just cannot get it to produce the super-old libstdc++-libc6.2-2.so.3, just steal the whole lib-compat from gentoo with this PKGBUILD:<br />
# Contributor: Clement Siuchung Cheung <clement.cheung@umich.edu><br />
pkgname=lib-compat<br />
pkgver=1.4.1<br />
pkgrel=1<br />
pkgdesc="Gentoo lib compat for old programs only available in binary"<br />
arch=(x86)<br />
url="http://www.gentoo.org/"<br />
source=(ftp://ftp.ibiblio.org/pub/linux/distributions/gentoo/distfiles/${pkgname}-${pkgver}.tar.bz2)<br />
md5sums=('ec4a4528295b5879ad055e44c4a6d463')<br />
<br />
build() {<br />
cd $startdir/src/${pkgname}-${pkgver}/x86<br />
<br />
# Install /lib files<br />
mkdir -p $startdir/pkg/lib<br />
mv ld-linux.so.1* $startdir/pkg/lib<br />
<br />
# Install /usr/lib files<br />
mkdir -p $startdir/pkg/usr/lib<br />
mv *.so* $startdir/pkg/usr/lib<br />
<br />
# Fix files<br />
cd $startdir/pkg/usr/lib<br />
mv -f libstdc++-libc6.2-2.so.3 libstdc++-3-libc6.2-2-2.10.0.so<br />
ln -s libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.2-2.so.3<br />
mv -f libstdc++-libc6.1-1.so.2 libstdc++-2-libc6.1-1-2.9.0.so<br />
ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-1.so.2<br />
ln -s libstdc++.so.2.8.0 libstdc++.so.2.8<br />
ln -s libstdc++.so.2.7.2.8 libstdc++.so.2.7.2<br />
ln -s libg++.so.2.7.2.8 libg++.so.2.7.2<br />
rm -f libstdc++.so.2.9.dummy libstdc++.so.2.9.0<br />
rm -f libsmpeg-0.4.so.0.dummy<br />
}<br />
<br />
#Get the smelly old Motif libs<br />
##Install lesstif. Then symlink to fool the system that it is motif like they say in the Gentoo wiki.<br />
##Sadly I was not able to get it work through the openmotif route because our openmotif package is too new and will give you libXm.so.4 instead of libXm.so.3. Add your instructions here if you manage to get this work.<br />
#Get the su work. They use xterm to ask for root password to do the install. So do either of the following:<br />
##Install {{Pkg|xterm}}<br />
##Setup your user to be able to su without password (google for the instructions)<br />
#Do "sudo modprobe tun". You will need to do it every time before you connect. So you might want to setup the tun module to be autoloaded at start up to save you time and trouble.<br />
<br />
==Troubleshooting==<br />
<br />
There are many things that can go wrong. Please share your experience here if there is something non-obvious that wasted you weeks to track down so that others can save their time. ;-)<br />
<br />
===It keeps saying password incorrect===<br />
First of all, make sure the username and password is actually correct. ;-) Check caps lock, etc. If you swear it is correct and it still says incorrect, that means the POST request to the Juniper IVE box "somehow" failed.<br />
<br />
The [https://addons.mozilla.org/en-US/firefox/addon/966 Tamper Data] addon for Firefox can be used to debug. Try changing the fields in the headers.<br />
<br />
One thing that had me scratching my head for months is incorrect charset. Juniper IVE apparently does not support UTF-8. For some reasons, my "intl.charset.default" setting in "about:config" for Firefox is UTF-8, causing my POST request to have *ONLY* UTF-8 in the charset. Setting it to ISO-8859-1 fixes the problem. Also double check "intl.accept_charsets". You can have UTF-8, Chinese and European charsets all you want. But make sure you have ISO-8859-1 as fallback. Use the Tamper Data addon to make sure you really are accepting ISO-8859-1 in the HTTP header.<br />
<br />
Another thing is the useragent must be "Firefox", not "Bon Echo". You may need to change this under "general.useragent.extra.firefox" in about:config.<br />
<br />
===I can login but Network Connect will not launch===<br />
#Check your JRE<br />
#Go to ".juniper_networks/network_connect" in your home directory.<br />
#Check that ncsvc is setuid root. Fix it if not.<br />
#ldd ncsvc and see if there are any missing libraries<br />
#Follow instructions [http://www.juniperforum.com/index.php/topic,2043.0.html here] to run it from command line. Use the "-L 5" switch to log everything, use strace as root, etc. Peek at ncsvc.log and see if there is anything wrong.<br />
<br />
===Network Connect launched but the VPN does not work===<br />
Run "ip route" and see if the route is there. Network connect has a diagnosis tool in the GUI. You can also checks the logs (also available in the GUI).<br />
<br />
If it initially works but stops working later on, see caveat below.<br />
<br />
===Network Connect launched and a configuration error message is displayed===<br />
Check that you have net-tools installed.<br />
<br />
=== ncapp.error Failed to connect/authenticate with IVE.===<br />
See [http://ubuntuforums.org/showthread.php?p=12127450#post12127450 my post] on the ubuntu form. I was trying some of the several 'command-line' options and it turns out that in certain cases, policy will not permit it. It had to install both bin32-jre and bin32-firefox and authenticate through the browser.<br />
<br />
===Kernel 3.19 and ncsvc===<br />
<br />
Jupitern VPN does not support {{Pkg|linux}} 3.19. [[Downgrade]] to version 3.18, or [[install]] {{Pkg|linux-lts}}. [http://www.unixgr.com/juniper-ncsvc-and-linux-3-19/]<br />
<br />
==Caveats==<br />
/etc/resolv.conf will get overwritten every once in a while by DHCPCD so your VPN will stop working eventually. If that happens, just restart Network Connect. There is no known solution to the problem but I do find a discussion on Redhat bugs website about this. We need to somehow teach DHCPCD the concept of merging configs and being a good neighbor...<br />
<br />
Until then, restart the connection every once in a while, save /etc/resolv.conf somewhere or somehow whip up some super-clever script yourself to restore the VPN settings every time your DHCP lease is renewed.<br />
<br />
==Alternative Method==<br />
<br />
Another method to get Juniper VPN to work for 64 bit Arch linux is suggested for your reference. I use this method to connect to my university's vpn network. <br />
<br />
The key reference:<br />
http://wireless.siu.edu/install-ubuntu-64.htm<br />
<br />
Basics<br />
<br />
The key issue is that 64 bit java plugin do not work with the Juniper software. (firefox, sun java jre)<br />
<br />
One way to do it is to install an alternative version of java and link the java plugin for the firefox manually. This saves us from the trouble of having to deal with the chroot environment as suggested in other sites. <br />
<br />
These are the steps I follow:<br />
<br />
I have firefox and sun java jre installed. I assume the system is 64 bit Arch linux. <br />
<br />
1.) install xterm:<br />
<br />
pacman -S xterm<br />
<br />
2.) install a custom 64 bit java<br />
<br />
go to http://www.java.com/en/download<br />
select the Linux x64 verson<br />
<br />
Decide on a location for the installation, extract the binary and put it in the desired location, and make the binary executable with<br />
chmod +x << binary >>. <br />
<br />
Finally run it to install java. <br />
<br />
3.) install the customized 32 bit java<br />
<br />
again, go to http://www.java.com/en/download<br />
this time, select Linux(self-extracting) option<br />
<br />
Extract the new binary to the same location created above, make it executable, and run the binary. It will ask you whether you want to replace the files to 32 bit, '''Type "A" to overwrite all the 64-bit files with the 32-bit ones.'''<br />
<br />
4.) link the library<br />
<br />
the relevant library for firefox is libnpjp2.so, to link it, <br />
<br />
ln -s << location of java you installed above >>/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/libnpjp2.so<br />
<br />
The newest firefox 5 does look at /usr/lib/mozilla/plugins for plugins, instead of the ~/.mozilla/plugins in the previous versions.<br />
<br />
==Yet Another Method using the Mad Scientist's "msjnc" script==<br />
<br />
Follow instructions here: http://mad-scientist.us/juniper.html<br />
<br />
For arch, you must [[install]] {{Pkg|gtk2-perl}}, {{Pkg|glib-perl}} and {{Pkg|unzip}}.<br />
<br />
=== Special instructions for 64-bit users ===<br />
[[Multilib#Enabling|Enable multilib]].<br />
<br />
[[Install]] {{Pkg|lib32-zlib}}, {{Pkg|net-tools}}, {{Pkg|glib-perl}}, {{Pkg|perl-libwww}} and {{Pkg|gtk2-perl}}.<br />
<br />
Access the the Juniper VPN website you need to use. Log in and allow the installation to attempt and fail (due to non-32 bit java). I get the following error:<br />
{{bc|Setup failed.<br />
Please install 32 bit Java and update alternatives links using update-alternatives command.<br />
For more details, refer KB article KB25230}}<br />
<br />
You should now have the file {{ic|~/.juniper_networks/ncLinuxApp.jar}} present.<br />
<br />
However, if {{ic|ncLinuxApp.jar}} is not downloaded, manually get it from {{ic|https://server/dana-cached/nc/ncLinuxApp.jar}} (note: you need to log in first).<br />
<br />
Download the msjnc script, make it executable, and put it in your path.<br />
{{bc|$ wget -q -O /tmp/msjnc https://raw.github.com/madscientist/msjnc/master/msjnc<br />
$ chmod 755 /tmp/msjnc<br />
# cp /tmp/msjnc /usr/bin}}<br />
<br />
==== Automatic installation of ncsvc using msjnc ====<br />
<br />
The first time you launch msjnc (before ncsvc is installed), it will extract {{ic|ncLinuxApp.jar}} and prompt for your password in order to install the service. This requires sudo to be configured to allow all commands to your user.<br />
<br />
After the service is installed to {{ic|~/.juniper_networks/network_connect/ncsvc}} with suid, create a profile and connect!<br />
<br />
==== Manual installation of msjnc ====<br />
<br />
Create these directories:<br />
{{bc|$ mkdir -p ~/.juniper_networks/network_connect<br />
$ mkdir -p ~/.juniper_networks/tmp}}<br />
<br />
Extract the software:<br />
{{bc|$ unzip ~/.juniper_networks/ncLinuxApp.jar -d ~/.juniper_networks/tmp}}<br />
<br />
Copy NC.jar to the network_connect directory:<br />
{{bc|$ cp ~/.juniper_networks/tmp/NC.jar ~/.juniper_networks/network_connect}}<br />
<br />
Install the service:<br />
{{bc|$ sh ~/.juniper_networks/tmp/installNC.sh ~/.juniper_networks/network_connect}}<br />
<br />
Launch msjnc, create a profile, and connect!<br />
<br />
==== Note regarding Server/URL ====<br />
For the Server/URL, you may have to provide the URL that processes the login form rather than the login page itself. For example, my company's login form is on {{ic|/dana-na/auth/url_0/welcome.cgi}} but the form is actually processed by {{ic|/dana-na/auth/url_0/login.cgi}}. You may have to inspect the html of the login page to find the form's action attribute.<br />
<br />
== Yet another alternative using jvpn script (support 64bits and host checker) ==<br />
<br />
Jvpn perl script establishes a Juniper VPN connection and supports the below features:<br />
* connection using Host Checker<br />
* automatic download of the required Juniper java and daemon files (ncsvc) when run under su/sudo<br />
https://github.com/samm-git/jvpn<br />
<br />
=== Installation ===<br />
<br />
1. [[Install]] the perl dependencies {{Pkg|perl-term-readkey}} and {{Pkg|perl-lwp-protocol-https}}<br />
<br />
2. Choose whether to run jvpn with (easiest method) or without sudo and run the below steps accordingly <br />
<br />
'''If running the script with sudo:'''<br />
<br />
2.1- Run the command<br />
{{bc|<nowiki># curl -L https://github.com/samm-git/jvpn/archive/v0.7.0.tar.gz | tar xz</nowiki>}}<br />
The command creates a file {{ic|jvpn-0.7.0}} in current directory<br />
<br />
'''If running the script without sudo:'''<br />
<br />
2.1 Use your regular web browser (no need for a 32-bit java) to connect to the VPN website and download the appropriate software.<br />
The files downloaded will be located in {{ic|~/.juniper_networks/network_connect/}} (even if the VPN connection actually fails).<br />
This step is considered more complex because you have to have a functional java plugin in your browser (configured wit appropriate security settings).<br />
During installation of Network Connect, the browser will request a root password to set the setuid flag on ncsvc (Juniper daemon).<br />
<br />
2.2 Install jvpn into the folder with command<br />
{{bc|$ cd ~/.juniper_networks/network_connect<br />
$ curl -L https://github.com/samm-git/jvpn/archive/v0.7.0.tar.gz | tar xz --strip-components=1}}<br />
<br />
3. Edit {{ic|jvpn.ini}} (directions included in the file)<br />
<br />
=== Run ===<br />
<br />
'''If running the script with sudo:'''<br />
<br />
Simply run the commands:<br />
<pre>su<br />
./jvpn.pl</pre><br />
On first run, the script will download all the necessary files<br />
<br />
'''If running the script without sudo:'''<br />
<br />
Simply run the commands:<br />
<pre><br />
cd ~/.juniper_networks/network_connect<br />
./jvpn.pl<br />
</pre></div>Rvalleshttps://wiki.archlinux.org/index.php?title=Steam&diff=417713Steam2016-01-28T18:24:26Z<p>Rvalles: /* Steam runtime issues */ Move warning above the command.</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam]]<br />
[[ru:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Related articles start}}<br />
{{Related|Steam/Wine}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Steam (software)|Wikipedia]]:<br />
: ''Steam is a digital distribution, digital rights management, multiplayer and communications platform developed by Valve Corporation. It is used to distribute games and related media online, from small independent developers to larger software houses.''<br />
<br />
[http://store.steampowered.com/about/ Steam] is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.<br />
<br />
== Installation ==<br />
<br />
{{Note|<br />
* Arch Linux is '''not''' [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].<br />
* Because the Steam client is a 32-bit application, you will need to enable the [[multilib]] repository if you have a 64-bit system. It may also make sense to install {{Grp|multilib-devel}} to provide some important multilib libraries.<br />
}}<br />
<br />
To install Steam, [[install]] the {{Pkg|steam}} package. If you have a 64-bit system, enable the [[multilib]] repository first.<br />
<br />
Steam is not supported on this distribution. As such some fixes are needed on the users part to get things functioning properly:<br />
<br />
*Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or [[#Text is corrupt or missing|the fonts provided by Steam]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
*'''If you have a 64-bit system, you will need to install [[Xorg#Driver installation|the 32-bit version of your graphics driver]] (the package in the ''Multilib Package'' column) to run 32-bit games'''.<br />
<br />
*If you have a 64-bit system, you will need to install {{pkg|lib32-alsa-plugins}} to enable sound in 32-bit games.<br />
<br />
*Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed in [[Steam/Game-specific troubleshooting]] are installed.<br />
<br />
== Starting Steam ==<br />
<br />
=== Big Picture Mode (with a Display Manager) ===<br />
<br />
To start Steam in Big Picture Mode from a Display Manager (such as LightDM), create a {{ic|/usr/share/xsessions/steam-big-picture.desktop}} file with the following content:<br />
<br />
{{hc|/usr/share/xsessions/steam-big-picture.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=Steam Big Picture Mode<br />
Comment=Start Steam in Big Picture Mode<br />
Exec=/usr/bin/steam -bigpicture<br />
TryExec=/usr/bin/steam<br />
Icon=<br />
Type=Application</nowiki>}}<br />
<br />
Alternatively, under Steam > Settings > Interface, check 'Start Steam in Big Picture Mode' and start Steam normally. This can behave slightly better with certain window managers than the command line option.<br />
<br />
=== Silent Mode ===<br />
<br />
If your steam main window is showing at startup, you can add the {{ic|-silent}} parameter to your startup command to hide the window:<br />
/usr/bin/steam -silent %U<br />
<br />
alternatively, you can edit the following desktop file, and manually add the parameter:<br />
<br />
{{hc|~/.config/autostart/steam.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=Steam<br />
Comment=Application for managing and playing games on Steam<br />
Exec=/usr/bin/steam -silent %U<br />
Icon=steam<br />
Terminal=false<br />
Type=Application<br />
Categories=Network;FileTransfer;Game;<br />
MimeType=x-scheme-handler/steam;<br />
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;<br />
...</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
=== Steam runtime issues ===<br />
<br />
[https://github.com/ValveSoftware/steam-runtime/issues/13 Upstream GitHub issue tracker]<br />
<br />
Steam ships with its own versions of some libraries (the "Steam Runtime") in an attempt to emulate the Ubuntu 12.04 environment in later versions of Ubuntu.<br />
<br />
However, some core libraries included in the Steam Runtime will often conflict with the newer versions of other libraries included in Arch Linux (such as drivers, and specifically the open-source [[ATI]] driver).<br />
<br />
You can work around this by deleting the Steam Runtime versions of these libraries, forcing Steam to fall back to the up-to-date system versions (the ones installed by [[pacman]]).<br />
<br />
Note that Steam will frequently re-install these runtime libraries when Steam is updated, so until [https://github.com/ValveSoftware/steam-runtime/issues/13 ValveSoftware/steam-runtime#13] is resolved, whenever Steam updates, you should exit, remove the libraries, and restart it again.<br />
<br />
Run this command to remove the runtime libraries known to cause issues on Arch Linux:<br />
<br />
{{bc|<br />
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete<br />
}}<br />
<br />
If the above command does not work, run the above command again, then run this command. <br />
{{bc|<br />
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete<br />
}}<br />
<br />
Alternatively you can run steam overriding those libraries.<br />
{{bc|LD_PRELOAD&#61;'/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam<br />
}}<br />
<br />
If you wish to use this method in a .desktop shortcut, you can use this command in the '''Exec=''' field.<br />
{{bc|env LD_PRELOAD&#61;'/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U<br />
}}<br />
<br />
If you wish to restore the files that were deleted by the commands above, you can use the built-in steam reset functionality.<br />
{{warning|{{ic|--reset}} also deletes your games (the AppCache).}}<br />
{{bc|steam --reset<br />
}}<br />
<br />
Examples of issues / error messages known to occur if these libraries are present:<br />
<br />
* {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}<br />
* {{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}<br />
* Problems with 64-bit games like XCOM<br />
* "OpenGL GLX context is not using direct rendering, which may cause performance problems." [[#OpenGL not using direct rendering / Steam crashes Xorg|(see below)]]<br />
* "Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated."<br />
* The Steam client itself crashing<br />
<br />
A misconfigured firewall may also show up as a runtime issue, because Steam silently fails whenever it can't connect to its servers, and most games just crash whenever the Steam API fails to load.<br />
<br />
Forum threads:<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?id=181171<br />
* https://bbs.archlinux.org/viewtopic.php?id=183141<br />
<br />
See also [[#Using native runtime]] below.<br />
<br />
=== Multiple monitors setup ===<br />
<br />
Setup with multiple monitors can cause<br />
{{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}} error which will make game unable to start. If you stuck on this error and have multiple monitors, try to disable all additional displays, and then run a game. You can enable them after the game successfully started. <br />
<br />
Also you can try this:<br />
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH<br />
and then run steam.<br />
<br />
=== Native runtime: steam.sh line 756 Segmentation fault ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/3863 issue 3863]<br />
<br />
As per the bug report above, Steam crashes with {{ic|/home/<username>/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)}} when running with STEAM_RUNTIME=0.<br />
<br />
The only proposed workaround is copying Steam's packaged 32-bit versions of libusb and libgudev to /usr/lib32:<br />
<br />
{{bc|# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32<br />
# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32}}<br />
<br />
Notice that the workaround is necessary because the bug affects systems with lib32-libgudev and lib32-libusb installed.<br />
<br />
=== The close button only minimizes the window ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, export the environment variable {{ic|1=STEAM_FRAME_FORCE_CLOSE=1}}. See [[Environment variables#Graphical applications]].<br />
<br />
Steam provides a script located at {{ic|/usr/bin/steam}} that will be run when launching Steam; adding {{ic|1=export STEAM_FRAME_FORCE_CLOSE=1}} to this file will export the environment variable for Steam on application launch.<br />
<br />
=== Audio not working or 756 Segmentation fault ===<br />
<br />
First try to install {{Pkg|pulseaudio}} and {{Pkg|pulseaudio-alsa}} and if you run a x86_64 system {{Pkg|lib32-libpulse}} and {{Pkg|lib32-alsa-plugins}}.<br />
<br />
If you do not have audio in the videos which play within the Steam client, it is possible that the ALSA libs packaged with Steam are not working.<br />
<br />
If launching Steam from a terminal and attempting to playback a video within the steam client results in an error similar to the following:<br />
<br />
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave<br />
<br />
There is a workaround which involves renaming or deleting some Steam Runtime folders and library files. The bugs have already been reported here: [https://github.com/ValveSoftware/steam-for-linux/issues/3376 #3376] and [https://github.com/ValveSoftware/steam-for-linux/issues/3504 #3504]<br />
<br />
The solution is to rename or delete the {{ic|alsa-lib}} folder and the {{ic|libasound.so.*}} files. They can be found within {{bc|~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/}}<br />
<br />
As an alternative, these {{ic|libasound.so.*}} libraries can also be prepended to the '''LD_PRELOAD''' environment variable to fix this issue:<br />
<br />
{{bc|1=LD_PRELOAD="/usr/lib/libasound.so.2:/usr/lib32/libasound.so.2:${LD_PRELOAD}" steam}}<br />
<br />
=== Text is corrupt or missing ===<br />
<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also.<br />
<br />
You can install them via the {{AUR|steam-fonts}} package, or manually by downloading and [[fonts#Manual installation|installing]] [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip].<br />
<br />
{{Note|When steam cannot find the Arial fonts, font-config likes to fall back onto the Helveticia bitmap font. Steam does not render this and possibly other bitmap fonts correctly, so either removing problem fonts or [[Font configuration#Disable bitmap fonts|disabling bitmap fonts]] will most likely fix the issue without installing the Arial or ArialBold fonts.<br />
<br />
The font being used in place of Arial can be found with the command {{bc|$ fc-match -v Arial}}}}<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
Uncomment {{ic|en_US.UTF-8 UTF-8}} in {{ic|/etc/locale.gen}} and then run {{ic|locale-gen}} as root.<br />
<br />
=== The game crashes immediately after start ===<br />
<br />
If your game crashes immediately, try disabling: ''"Enable the Steam Overlay while in-game"'' in game ''Properties''.<br />
<br />
If this doesn't work, you should launch Steam from a terminal to catch any error the game may output. You may encounter the following:<br />
* munmap_chunk(): invalid pointer<br />
* free(): invalid pointer<br />
<br />
In these particular cases, try replacing the libsteam_api.so file from the problematic game with one from a game that works fine. This error usually happens for games that were not updated recently when Steam runtime is disabled. This error has been encountered with at least AYIM, Bastion and Monaco.<br />
<br />
=== OpenGL not using direct rendering / Steam crashes Xorg ===<br />
<br />
Sometimes presented with the error message "OpenGL GLX context is not using direct rendering, which may cause performance problems." [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457]<br />
<br />
If you still encounter this problem after addressing [[#Steam runtime issues]], you have probably not installed your 32-bit graphics driver correctly. See [[Xorg#Driver installation]] for which packages to install.<br />
<br />
You can check/test if it is installed correctly by installing {{Pkg|lib32-mesa-demos}} and running the following command:<br />
<br />
$ glxinfo32 | grep OpenGL.<br />
<br />
=== No audio in certain games ===<br />
<br />
If there is no audio in certain games, and the suggestions provided in [[Steam/Game-specific troubleshooting]] do not fix the problem, [[#Using native runtime]] may provide a successful workaround. (See the note about "Steam Runtime issues" at the top of this section.)<br />
<br />
==== Some games use FMOD to obfuscate having to deal with Linux audio stack ====<br />
<br />
While troubleshooting a sound issue, it became evident that the following games (as examples) use the 'FMOD' audio middleware package:<br />
<br />
* Hotline Miami<br />
* Hotline Miami 2<br />
* Transistor<br />
<br />
This package is a bit buggy, and as a result while sound can appear to be working fine for the rest of your system, some games may still have problems.<br />
<br />
It usually occurs when you have a default sound device set with ALSA, but you don't actually use that device, and have manually changed the device through other software, with me I had my default set as HDMI, but audio set through Steam/Gnome as S/PDIF.<br />
<br />
To check what your default device is set as, use something like 'aplay' to output to your 'default' device, and see if you get sound, if you don't, your default is likely set to something that isn't even plugged in!<br />
<br />
=== You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 ===<br />
<br />
You may encounter this error when you launch Steam at first time. Make sure you have installed the {{ic|lib32}} version of all your video drivers as described in [[#Installation]]<br />
<br />
In some cases, if you get this error after reinstalling your Nvidia proprietary drivers, or switching from a version to another, [[reinstall]] {{Pkg|lib32-nvidia-utils}} and {{Pkg|lib32-nvidia-libgl}}.<br />
<br />
=== Games do not launch on older intel hardware ===<br />
<br />
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware does not directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:<br />
<br />
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%<br />
<br />
=== 2k games do not run on xfs partitions ===<br />
<br />
{{Expansion|Seems to be a general issue, e.g. [https://github.com/ValveSoftware/Source-1-Games/issues/1685]}}<br />
<br />
If you are running 2k games such as Civilization 5 on xfs partitions, then the game may not start or run properly due to how the game loads files as it starts.<br />
[https://bbs.archlinux.org/viewtopic.php?id=185222]<br />
<br />
=== Unable to add library folder because of missing execute permissions ===<br />
<br />
If you add another steam library folder on another drive, you might receive the error message ''"New Steam library folder must be on a filesystem mounted with execute permissions"''.<br />
<br />
Make you sure you are mounting the filesystem with the correct flags in your {{ic|/etc/fstab}}, usually by adding {{ic|exec}} to the list of mount parameter. The parameter must occur after any {{ic|user}} or {{ic|users}} parameter since these can imply {{ic|noexec}}.<br />
<br />
This error might also occur if you are readding a library folder and Steam is unable to find a contained {{ic|steamapps}} folder. Previous versions used {{ic|SteamApps}} instead, so ensure the name is fully lowercase.<br />
<br />
=== Steam controller not being detected correctly ===<br />
<br />
See [[Gamepad#Steam Controller]].<br />
<br />
=== Claims of missing 32-bit libc.so.6 even though lib32-glibc is installed ===<br />
<br />
The Steam launcher script checks the output of {{ic|ldd}} to determine whether all required libraries are installed; however, this may fail due to reasons other than missing libraries, such as a corrupt Steam executable.<br />
<br />
Check the output of the following:<br />
<br />
$ ldd ~/.local/share/Steam/ubuntu12_32/steam<br />
<br />
Should {{ic|ldd}} claim that it is not a dynamic executable, then Steam likely corrupted the binary during an update. The following should fix the issue:<br />
<br />
$ cd ~/.local/share/Steam/<br />
$ ./steam.sh --reset<br />
<br />
If it doesn't, try to delete the {{ic|~/.local/share/Steam/}} directory and launch steam again, telling it to reinstall itself.<br />
<br />
=== VERSION_ID: unbound variable ===<br />
<br />
When you launch steam via terminal, you can see the following line:<br />
/home/user/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable<br />
This is because steam.sh checks {{ic|/etc/os-release}} for existance and if it exists, parses VERSION_ID variable, which is missing.<br />
To solve problem, you can just add the following line to {{ic|/etc/os-release}}:<br />
VERSION_ID="2015.11.01"<br />
<br />
=== Steam hangs on "Installing breakpad exception handler..." ===<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?id=177245 BBS#177245]<br />
<br />
Steam has the following output:<br />
<br />
Running Steam on arch rolling 64-bit<br />
STEAM_RUNTIME is enabled automatically<br />
Installing breakpad exception handler for appid(steam)/version(0_client)<br />
<br />
Then nothing else happens. This is likely related to mis-matched {{ic|lib32-nvidia-*}} packages.<br />
<br />
== Launching games with custom commands, such as Bumblebee/Primus ==<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag {{ic|%command%}} with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
On some systems optirun gives better performances than primusrun, however some games may crash shortly after the launch. This may be fixed preloading the correct version of libGL. Use:<br />
<br />
locate libGL<br />
<br />
to find out the available implementations. For a 64 bits game you may want to preload the nvidia 64 bits libGL, then use the launch command:<br />
<br />
LD_PRELOAD=/usr/lib/nvidia/libGL.so optirun %command%<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{Pkg|schedtool}}<br />
<br />
# schedtool -I -e %command% ''other arguments''<br />
<br />
Also keep in mind that Steam [http://i.imgur.com/oJcLDBi.png doesn't really care] what you want it to run. By setting {{ic|%command%}} to an environment variable, you can have Steam run whatever you would like. For example, the Launch Option used in the image above:<br />
<br />
IGNORE_ME=%command% glxgears<br />
<br />
== Killing standalone compositors when launching games ==<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; nohup compton &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
== Using native runtime ==<br />
<br />
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks [[Gaming#Binaural_Audio_with_OpenAL|HRTF]] and surround71 support). To use your own system libraries, you can run Steam with:<br />
<br />
$ STEAM_RUNTIME=0 steam<br />
<br />
However, if you are missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:<br />
<br />
$ cd ~/.local/share/Steam/ubuntu12_32<br />
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq<br />
<br />
{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}<br />
<br />
Once you have done this, run steam again with {{ic|1=STEAM_RUNTIME=0 steam}} and verify it is not loading anything outside of the handful of steam support libraries:<br />
<br />
$ < /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq<br />
<br />
'''Convenience repository'''<br />
<br />
The unofficial [[Unofficial_user_repositories#alucryd-multilib|alucryd-multilib]] repository contains all libraries needed to run native steam on x86_64. Please note that, for some reason, steam does not pick up sdl2 or libav* even if you have them installed. It will still use the ones it ships with.<br />
<br />
All you need to install is the meta-package {{ic|steam-libs}}, it will pull all the libs for you. Please report if there is any missing library, the maintainer already had some lib32 packages installed so a library may have been overlooked.<br />
<br />
== Skins for Steam ==<br />
<br />
{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
An extensive list of skins can be found on [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].<br />
<br />
=== Steam skin manager ===<br />
<br />
The process of applying a skin to Steam can be greatly simplified by installing the {{AUR|steam-skin-manager}}{{Broken package link|{{aur-mirror|steam-skin-manager}}}} package. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK+ theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance.<br />
<br />
== Changing the Steam friends notification placement ==<br />
<br />
{{Note|A handful of games do not support this, for example this can not work with XCOM: Enemy Unknown.}}<br />
<br />
=== Use a skin ===<br />
<br />
You can create a skin that does nothing but change the notification corner. First you need to create the directories:<br />
<br />
$ mkdir -p $HOME/Top-Right/resource<br />
$ cp -R $HOME/.steam/steam/resource/styles $HOME/Top-Right/resource/<br />
$ mv $HOME/Top-Right $HOME/.local/share/Steam/skins/<br />
$ cd .local/share/Steam/skins/<br />
$ cp -R Top-Right Top-Left && cp -R Top-Right Bottom-Right<br />
<br />
Then modify the correct files. {{ic|Top-Right/resource/styles/gameoverlay.style}} will change the corner for the in-game overlay whereas {{ic|steam.style}} will change it for your desktop.<br />
<br />
Now find the entry: {{ic|Notifications.PanelPosition}} in whichever file you opened and change it to the appropriate value, for example for Top-Right:<br />
<br />
Notifications.PanelPosition "TopRight"<br />
<br />
This line will look the same in both files. Repeat the process for all the 3 variants ({{ic|Top-Right}}, {{ic|Top-Left}} and {{ic|Bottom-Left}}) and adjust the corners for the desktop and in-game overlay to your satisfaction for each skin, then save the files.<br />
<br />
To finish you will have to select the skin in Steam: ''Settings > Interface'' and ''<default skin>'' in the drop-down menu.<br />
<br />
You can use these files across distributions and even between Windows and Linux (OS X has its own entry for the desktop notification placement)<br />
<br />
=== On The fly patch ===<br />
<br />
This method is more compatible with future updates of Steams since the files in the skins above are updated as part of steam and as such if the original files change, the skin will not follow the graphics update to steam and will have to be re-created every time something like that happens. Doing things this way will also give you the ability to use per-game notification locations as you can run a patch changing the location of the notifications by specifying it in the launch options for games.<br />
<br />
Steam updates the files we need to edit everytime it updates (which is everytime it is launched) so the most effective way to do this is patching the file after Steam has already been launched.<br />
<br />
First you will need a patch:<br />
<br />
{{hc|$HOME/.steam/topright.patch|<nowiki><br />
--- A/steam/resource/styles/gameoverlay.styles 2013-06-14 23:49:36.000000000 +0000<br />
+++ B/steam/resource/styles/gameoverlay.styles 2014-07-08 23:13:15.255806000 +0000<br />
@@ -7,7 +7,7 @@<br />
mostly_black "0 0 0 240"<br />
semi_black "0 0 0 128"<br />
semi_gray "32 32 32 220"<br />
- Notifications.PanelPosition "BottomRight"<br />
+ Notifications.PanelPosition "TopRight"<br />
}<br />
<br />
styles<br />
<br />
</nowiki>}}<br />
<br />
{{Note|The patch file should have all above lines, including the newline at the end.}}<br />
<br />
You can edit the entry and change it between "BottomRight"(default), "TopRight" "TopLeft" and "BottomLeft": the following will assume you used "TopRight" as in the original file.<br />
<br />
Next create an alias in {{ic|$HOME/.bashrc}}:<br />
<br />
alias steam_topright='pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd'<br />
<br />
Log out and back in to refresh the aliases. Launch Steam and wait for it to fully load, then run the alias <br />
<br />
$ steam_topright<br />
<br />
And most games you launch after this will have their notification in the upper right corner.<br />
<br />
You can also duplicate the patch and make more aliases for the other corners if you do not want all games to use the same corner so you can switch back.<br />
<br />
To automate the process you will need a script file as steam launch options cannot read your aliases. The location and name of the file could for example be '''$HOME/.scripts/steam_topright.sh''', and assuming that is the path you used, it needs to be executable:<br />
<br />
$ chmod +755 $HOME/.scripts/steam_topright.sh<br />
<br />
The contents of the file should be the following:<br />
<br />
#!/bin/sh<br />
pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd<br />
<br />
And the launch options should be something like the following.<br />
<br />
$HOME/.scripts/steam_topright.sh && %command%<br />
<br />
There is another file in the same folder as '''gameoverlay.style''' folder called '''steam.style''' which has an entry with the exact same function as the file we patched and will change the notification corner for the desktop only (not in-game), but for editing this file to actually work it has to be set before steam is launched and the folder set to read-only so steam cannot re-write the file. Therefore the only two ways to modify that file is to make the directory read only so steam cannot change it when it is launched (can break updates) or making a skin like in method 1.<br />
<br />
== See also ==<br />
<br />
* https://wiki.gentoo.org/wiki/Steam</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Steam&diff=417478Steam2016-01-27T20:43:57Z<p>Rvalles: Much needed warning</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam]]<br />
[[ru:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Related articles start}}<br />
{{Related|Steam/Wine}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Steam (software)|Wikipedia]]:<br />
: ''Steam is a digital distribution, digital rights management, multiplayer and communications platform developed by Valve Corporation. It is used to distribute games and related media online, from small independent developers to larger software houses.''<br />
<br />
[http://store.steampowered.com/about/ Steam] is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.<br />
<br />
== Installation ==<br />
<br />
{{Note|<br />
* Arch Linux is '''not''' [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].<br />
* Because the Steam client is a 32-bit application, you will need to enable the [[multilib]] repository if you have a 64-bit system. It may also make sense to install {{Grp|multilib-devel}} to provide some important multilib libraries.<br />
}}<br />
<br />
To install Steam, [[install]] the {{Pkg|steam}} package. If you have a 64-bit system, enable the [[multilib]] repository first.<br />
<br />
Steam is not supported on this distribution. As such some fixes are needed on the users part to get things functioning properly:<br />
<br />
*Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or [[#Text is corrupt or missing|the fonts provided by Steam]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
*'''If you have a 64-bit system, you will need to install [[Xorg#Driver installation|the 32-bit version of your graphics driver]] (the package in the ''Multilib Package'' column) to run 32-bit games'''.<br />
<br />
*If you have a 64-bit system, you will need to install {{pkg|lib32-alsa-plugins}} to enable sound in 32-bit games.<br />
<br />
*Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed in [[Steam/Game-specific troubleshooting]] are installed.<br />
<br />
== Starting Steam ==<br />
<br />
=== Big Picture Mode (with a Display Manager) ===<br />
<br />
To start Steam in Big Picture Mode from a Display Manager (such as LightDM), create a {{ic|/usr/share/xsessions/steam-big-picture.desktop}} file with the following content:<br />
<br />
{{hc|/usr/share/xsessions/steam-big-picture.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=Steam Big Picture Mode<br />
Comment=Start Steam in Big Picture Mode<br />
Exec=/usr/bin/steam -bigpicture<br />
TryExec=/usr/bin/steam<br />
Icon=<br />
Type=Application</nowiki>}}<br />
<br />
Alternatively, under Steam > Settings > Interface, check 'Start Steam in Big Picture Mode' and start Steam normally. This can behave slightly better with certain window managers than the command line option.<br />
<br />
=== Silent Mode ===<br />
<br />
If your steam main window is showing at startup, you can add the {{ic|-silent}} parameter to your startup command to hide the window:<br />
/usr/bin/steam -silent %U<br />
<br />
alternatively, you can edit the following desktop file, and manually add the parameter:<br />
<br />
{{hc|~/.config/autostart/steam.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=Steam<br />
Comment=Application for managing and playing games on Steam<br />
Exec=/usr/bin/steam -silent %U<br />
Icon=steam<br />
Terminal=false<br />
Type=Application<br />
Categories=Network;FileTransfer;Game;<br />
MimeType=x-scheme-handler/steam;<br />
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;<br />
...</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
=== Steam runtime issues ===<br />
<br />
[https://github.com/ValveSoftware/steam-runtime/issues/13 Upstream GitHub issue tracker]<br />
<br />
Steam ships with its own versions of some libraries (the "Steam Runtime") in an attempt to emulate the Ubuntu 12.04 environment in later versions of Ubuntu.<br />
<br />
However, some core libraries included in the Steam Runtime will often conflict with the newer versions of other libraries included in Arch Linux (such as drivers, and specifically the open-source [[ATI]] driver).<br />
<br />
You can work around this by deleting the Steam Runtime versions of these libraries, forcing Steam to fall back to the up-to-date system versions (the ones installed by [[pacman]]).<br />
<br />
Note that Steam will frequently re-install these runtime libraries when Steam is updated, so until [https://github.com/ValveSoftware/steam-runtime/issues/13 ValveSoftware/steam-runtime#13] is resolved, whenever Steam updates, you should exit, remove the libraries, and restart it again.<br />
<br />
Run this command to remove the runtime libraries known to cause issues on Arch Linux:<br />
<br />
{{bc|<br />
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete<br />
}}<br />
<br />
If the above command does not work, run the above command again, then run this command. <br />
{{bc|<br />
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete<br />
}}<br />
<br />
Alternatively you can run steam overriding those libraries.<br />
{{bc|LD_PRELOAD&#61;'/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam<br />
}}<br />
<br />
If you wish to use this method in a .desktop shortcut, you can use this command in the '''Exec=''' field.<br />
{{bc|env LD_PRELOAD&#61;'/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U<br />
}}<br />
<br />
If you wish to restore the files that were deleted by the commands above, you can use the built-in steam reset functionality. WARNING: This also deletes the AppCache (games).<br />
{{bc|steam --reset<br />
}}<br />
<br />
Examples of issues / error messages known to occur if these libraries are present:<br />
<br />
* {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}<br />
* {{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}<br />
* Problems with 64-bit games like XCOM<br />
* "OpenGL GLX context is not using direct rendering, which may cause performance problems." [[#OpenGL not using direct rendering / Steam crashes Xorg|(see below)]]<br />
* "Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated."<br />
* The Steam client itself crashing<br />
<br />
A misconfigured firewall may also show up as a runtime issue, because Steam silently fails whenever it can't connect to its servers, and most games just crash whenever the Steam API fails to load.<br />
<br />
Forum threads:<br />
<br />
* https://bbs.archlinux.org/viewtopic.php?id=181171<br />
* https://bbs.archlinux.org/viewtopic.php?id=183141<br />
<br />
See also [[#Using native runtime]] below.<br />
<br />
=== Multiple monitors setup ===<br />
<br />
Setup with multiple monitors can cause<br />
{{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}} error which will make game unable to start. If you stuck on this error and have multiple monitors, try to disable all additional displays, and then run a game. You can enable them after the game successfully started. <br />
<br />
Also you can try this:<br />
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH<br />
and then run steam.<br />
<br />
=== Native runtime: steam.sh line 756 Segmentation fault ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/3863 issue 3863]<br />
<br />
As per the bug report above, Steam crashes with {{ic|/home/<username>/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)}} when running with STEAM_RUNTIME=0.<br />
<br />
The only proposed workaround is copying Steam's packaged 32-bit versions of libusb and libgudev to /usr/lib32:<br />
<br />
{{bc|# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32<br />
# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32}}<br />
<br />
Notice that the workaround is necessary because the bug affects systems with lib32-libgudev and lib32-libusb installed.<br />
<br />
=== The close button only minimizes the window ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, export the environment variable {{ic|1=STEAM_FRAME_FORCE_CLOSE=1}}. See [[Environment variables#Graphical applications]].<br />
<br />
Steam provides a script located at {{ic|/usr/bin/steam}} that will be run when launching Steam; adding {{ic|1=export STEAM_FRAME_FORCE_CLOSE=1}} to this file will export the environment variable for Steam on application launch.<br />
<br />
=== Audio not working or 756 Segmentation fault ===<br />
<br />
First try to install {{Pkg|pulseaudio}} and {{Pkg|pulseaudio-alsa}} and if you run a x86_64 system {{Pkg|lib32-libpulse}} and {{Pkg|lib32-alsa-plugins}}.<br />
<br />
If you do not have audio in the videos which play within the Steam client, it is possible that the ALSA libs packaged with Steam are not working.<br />
<br />
If launching Steam from a terminal and attempting to playback a video within the steam client results in an error similar to the following:<br />
<br />
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave<br />
<br />
There is a workaround which involves renaming or deleting some Steam Runtime folders and library files. The bugs have already been reported here: [https://github.com/ValveSoftware/steam-for-linux/issues/3376 #3376] and [https://github.com/ValveSoftware/steam-for-linux/issues/3504 #3504]<br />
<br />
The solution is to rename or delete the {{ic|alsa-lib}} folder and the {{ic|libasound.so.*}} files. They can be found within {{bc|~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/}}<br />
<br />
As an alternative, these {{ic|libasound.so.*}} libraries can also be prepended to the '''LD_PRELOAD''' environment variable to fix this issue:<br />
<br />
{{bc|1=LD_PRELOAD="/usr/lib/libasound.so.2:/usr/lib32/libasound.so.2:${LD_PRELOAD}" steam}}<br />
<br />
=== Text is corrupt or missing ===<br />
<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also.<br />
<br />
You can install them via the {{AUR|steam-fonts}} package, or manually by downloading and [[fonts#Manual installation|installing]] [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip].<br />
<br />
{{Note|When steam cannot find the Arial fonts, font-config likes to fall back onto the Helveticia bitmap font. Steam does not render this and possibly other bitmap fonts correctly, so either removing problem fonts or [[Font configuration#Disable bitmap fonts|disabling bitmap fonts]] will most likely fix the issue without installing the Arial or ArialBold fonts.<br />
<br />
The font being used in place of Arial can be found with the command {{bc|$ fc-match -v Arial}}}}<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
Uncomment {{ic|en_US.UTF-8 UTF-8}} in {{ic|/etc/locale.gen}} and then run {{ic|locale-gen}} as root.<br />
<br />
=== The game crashes immediately after start ===<br />
<br />
If your game crashes immediately, try disabling: ''"Enable the Steam Overlay while in-game"'' in game ''Properties''.<br />
<br />
If this doesn't work, you should launch Steam from a terminal to catch any error the game may output. You may encounter the following:<br />
* munmap_chunk(): invalid pointer<br />
* free(): invalid pointer<br />
<br />
In these particular cases, try replacing the libsteam_api.so file from the problematic game with one from a game that works fine. This error usually happens for games that were not updated recently when Steam runtime is disabled. This error has been encountered with at least AYIM, Bastion and Monaco.<br />
<br />
=== OpenGL not using direct rendering / Steam crashes Xorg ===<br />
<br />
Sometimes presented with the error message "OpenGL GLX context is not using direct rendering, which may cause performance problems." [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457]<br />
<br />
If you still encounter this problem after addressing [[#Steam runtime issues]], you have probably not installed your 32-bit graphics driver correctly. See [[Xorg#Driver installation]] for which packages to install.<br />
<br />
You can check/test if it is installed correctly by installing {{Pkg|lib32-mesa-demos}} and running the following command:<br />
<br />
$ glxinfo32 | grep OpenGL.<br />
<br />
=== No audio in certain games ===<br />
<br />
If there is no audio in certain games, and the suggestions provided in [[Steam/Game-specific troubleshooting]] do not fix the problem, [[#Using native runtime]] may provide a successful workaround. (See the note about "Steam Runtime issues" at the top of this section.)<br />
<br />
==== Some games use FMOD to obfuscate having to deal with Linux audio stack ====<br />
<br />
While troubleshooting a sound issue, it became evident that the following games (as examples) use the 'FMOD' audio middleware package:<br />
<br />
* Hotline Miami<br />
* Hotline Miami 2<br />
* Transistor<br />
<br />
This package is a bit buggy, and as a result while sound can appear to be working fine for the rest of your system, some games may still have problems.<br />
<br />
It usually occurs when you have a default sound device set with ALSA, but you don't actually use that device, and have manually changed the device through other software, with me I had my default set as HDMI, but audio set through Steam/Gnome as S/PDIF.<br />
<br />
To check what your default device is set as, use something like 'aplay' to output to your 'default' device, and see if you get sound, if you don't, your default is likely set to something that isn't even plugged in!<br />
<br />
=== You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 ===<br />
<br />
You may encounter this error when you launch Steam at first time. Make sure you have installed the {{ic|lib32}} version of all your video drivers as described in [[#Installation]]<br />
<br />
In some cases, if you get this error after reinstalling your Nvidia proprietary drivers, or switching from a version to another, [[reinstall]] {{Pkg|lib32-nvidia-utils}} and {{Pkg|lib32-nvidia-libgl}}.<br />
<br />
=== Games do not launch on older intel hardware ===<br />
<br />
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware does not directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:<br />
<br />
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%<br />
<br />
=== 2k games do not run on xfs partitions ===<br />
<br />
{{Expansion|Seems to be a general issue, e.g. [https://github.com/ValveSoftware/Source-1-Games/issues/1685]}}<br />
<br />
If you are running 2k games such as Civilization 5 on xfs partitions, then the game may not start or run properly due to how the game loads files as it starts.<br />
[https://bbs.archlinux.org/viewtopic.php?id=185222]<br />
<br />
=== Unable to add library folder because of missing execute permissions ===<br />
<br />
If you add another steam library folder on another drive, you might receive the error message ''"New Steam library folder must be on a filesystem mounted with execute permissions"''.<br />
<br />
Make you sure you are mounting the filesystem with the correct flags in your {{ic|/etc/fstab}}, usually by adding {{ic|exec}} to the list of mount parameter. The parameter must occur after any {{ic|user}} or {{ic|users}} parameter since these can imply {{ic|noexec}}.<br />
<br />
This error might also occur if you are readding a library folder and Steam is unable to find a contained {{ic|steamapps}} folder. Previous versions used {{ic|SteamApps}} instead, so ensure the name is fully lowercase.<br />
<br />
=== Steam controller not being detected correctly ===<br />
<br />
See [[Gamepad#Steam Controller]].<br />
<br />
=== Claims of missing 32-bit libc.so.6 even though lib32-glibc is installed ===<br />
<br />
The Steam launcher script checks the output of {{ic|ldd}} to determine whether all required libraries are installed; however, this may fail due to reasons other than missing libraries, such as a corrupt Steam executable.<br />
<br />
Check the output of the following:<br />
<br />
$ ldd ~/.local/share/Steam/ubuntu12_32/steam<br />
<br />
Should {{ic|ldd}} claim that it is not a dynamic executable, then Steam likely corrupted the binary during an update. The following should fix the issue:<br />
<br />
$ cd ~/.local/share/Steam/<br />
$ ./steam.sh --reset<br />
<br />
If it doesn't, try to delete the {{ic|~/.local/share/Steam/}} directory and launch steam again, telling it to reinstall itself.<br />
<br />
=== VERSION_ID: unbound variable ===<br />
<br />
When you launch steam via terminal, you can see the following line:<br />
/home/user/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable<br />
This is because steam.sh checks {{ic|/etc/os-release}} for existance and if it exists, parses VERSION_ID variable, which is missing.<br />
To solve problem, you can just add the following line to {{ic|/etc/os-release}}:<br />
VERSION_ID="2015.11.01"<br />
<br />
=== Steam hangs on "Installing breakpad exception handler..." ===<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?id=177245 BBS#177245]<br />
<br />
Steam has the following output:<br />
<br />
Running Steam on arch rolling 64-bit<br />
STEAM_RUNTIME is enabled automatically<br />
Installing breakpad exception handler for appid(steam)/version(0_client)<br />
<br />
Then nothing else happens. This is likely related to mis-matched {{ic|lib32-nvidia-*}} packages.<br />
<br />
== Launching games with custom commands, such as Bumblebee/Primus ==<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag {{ic|%command%}} with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
On some systems optirun gives better performances than primusrun, however some games may crash shortly after the launch. This may be fixed preloading the correct version of libGL. Use:<br />
<br />
locate libGL<br />
<br />
to find out the available implementations. For a 64 bits game you may want to preload the nvidia 64 bits libGL, then use the launch command:<br />
<br />
LD_PRELOAD=/usr/lib/nvidia/libGL.so optirun %command%<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{Pkg|schedtool}}<br />
<br />
# schedtool -I -e %command% ''other arguments''<br />
<br />
Also keep in mind that Steam [http://i.imgur.com/oJcLDBi.png doesn't really care] what you want it to run. By setting {{ic|%command%}} to an environment variable, you can have Steam run whatever you would like. For example, the Launch Option used in the image above:<br />
<br />
IGNORE_ME=%command% glxgears<br />
<br />
== Killing standalone compositors when launching games ==<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; nohup compton &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
== Using native runtime ==<br />
<br />
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks [[Gaming#Binaural_Audio_with_OpenAL|HRTF]] and surround71 support). To use your own system libraries, you can run Steam with:<br />
<br />
$ STEAM_RUNTIME=0 steam<br />
<br />
However, if you are missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:<br />
<br />
$ cd ~/.local/share/Steam/ubuntu12_32<br />
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq<br />
<br />
{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}<br />
<br />
Once you have done this, run steam again with {{ic|1=STEAM_RUNTIME=0 steam}} and verify it is not loading anything outside of the handful of steam support libraries:<br />
<br />
$ < /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq<br />
<br />
'''Convenience repository'''<br />
<br />
The unofficial [[Unofficial_user_repositories#alucryd-multilib|alucryd-multilib]] repository contains all libraries needed to run native steam on x86_64. Please note that, for some reason, steam does not pick up sdl2 or libav* even if you have them installed. It will still use the ones it ships with.<br />
<br />
All you need to install is the meta-package {{ic|steam-libs}}, it will pull all the libs for you. Please report if there is any missing library, the maintainer already had some lib32 packages installed so a library may have been overlooked.<br />
<br />
== Skins for Steam ==<br />
<br />
{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
An extensive list of skins can be found on [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].<br />
<br />
=== Steam skin manager ===<br />
<br />
The process of applying a skin to Steam can be greatly simplified by installing the {{AUR|steam-skin-manager}}{{Broken package link|{{aur-mirror|steam-skin-manager}}}} package. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK+ theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance.<br />
<br />
== Changing the Steam friends notification placement ==<br />
<br />
{{Note|A handful of games do not support this, for example this can not work with XCOM: Enemy Unknown.}}<br />
<br />
=== Use a skin ===<br />
<br />
You can create a skin that does nothing but change the notification corner. First you need to create the directories:<br />
<br />
$ mkdir -p $HOME/Top-Right/resource<br />
$ cp -R $HOME/.steam/steam/resource/styles $HOME/Top-Right/resource/<br />
$ mv $HOME/Top-Right $HOME/.local/share/Steam/skins/<br />
$ cd .local/share/Steam/skins/<br />
$ cp -R Top-Right Top-Left && cp -R Top-Right Bottom-Right<br />
<br />
Then modify the correct files. {{ic|Top-Right/resource/styles/gameoverlay.style}} will change the corner for the in-game overlay whereas {{ic|steam.style}} will change it for your desktop.<br />
<br />
Now find the entry: {{ic|Notifications.PanelPosition}} in whichever file you opened and change it to the appropriate value, for example for Top-Right:<br />
<br />
Notifications.PanelPosition "TopRight"<br />
<br />
This line will look the same in both files. Repeat the process for all the 3 variants ({{ic|Top-Right}}, {{ic|Top-Left}} and {{ic|Bottom-Left}}) and adjust the corners for the desktop and in-game overlay to your satisfaction for each skin, then save the files.<br />
<br />
To finish you will have to select the skin in Steam: ''Settings > Interface'' and ''<default skin>'' in the drop-down menu.<br />
<br />
You can use these files across distributions and even between Windows and Linux (OS X has its own entry for the desktop notification placement)<br />
<br />
=== On The fly patch ===<br />
<br />
This method is more compatible with future updates of Steams since the files in the skins above are updated as part of steam and as such if the original files change, the skin will not follow the graphics update to steam and will have to be re-created every time something like that happens. Doing things this way will also give you the ability to use per-game notification locations as you can run a patch changing the location of the notifications by specifying it in the launch options for games.<br />
<br />
Steam updates the files we need to edit everytime it updates (which is everytime it is launched) so the most effective way to do this is patching the file after Steam has already been launched.<br />
<br />
First you will need a patch:<br />
<br />
{{hc|$HOME/.steam/topright.patch|<nowiki><br />
--- A/steam/resource/styles/gameoverlay.styles 2013-06-14 23:49:36.000000000 +0000<br />
+++ B/steam/resource/styles/gameoverlay.styles 2014-07-08 23:13:15.255806000 +0000<br />
@@ -7,7 +7,7 @@<br />
mostly_black "0 0 0 240"<br />
semi_black "0 0 0 128"<br />
semi_gray "32 32 32 220"<br />
- Notifications.PanelPosition "BottomRight"<br />
+ Notifications.PanelPosition "TopRight"<br />
}<br />
<br />
styles<br />
<br />
</nowiki>}}<br />
<br />
{{Note|The patch file should have all above lines, including the newline at the end.}}<br />
<br />
You can edit the entry and change it between "BottomRight"(default), "TopRight" "TopLeft" and "BottomLeft": the following will assume you used "TopRight" as in the original file.<br />
<br />
Next create an alias in {{ic|$HOME/.bashrc}}:<br />
<br />
alias steam_topright='pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd'<br />
<br />
Log out and back in to refresh the aliases. Launch Steam and wait for it to fully load, then run the alias <br />
<br />
$ steam_topright<br />
<br />
And most games you launch after this will have their notification in the upper right corner.<br />
<br />
You can also duplicate the patch and make more aliases for the other corners if you do not want all games to use the same corner so you can switch back.<br />
<br />
To automate the process you will need a script file as steam launch options cannot read your aliases. The location and name of the file could for example be '''$HOME/.scripts/steam_topright.sh''', and assuming that is the path you used, it needs to be executable:<br />
<br />
$ chmod +755 $HOME/.scripts/steam_topright.sh<br />
<br />
The contents of the file should be the following:<br />
<br />
#!/bin/sh<br />
pushd $HOME/.steam/ && patch -p1 -f -r - --no-backup-if-mismatch < topright.patch && popd<br />
<br />
And the launch options should be something like the following.<br />
<br />
$HOME/.scripts/steam_topright.sh && %command%<br />
<br />
There is another file in the same folder as '''gameoverlay.style''' folder called '''steam.style''' which has an entry with the exact same function as the file we patched and will change the notification corner for the desktop only (not in-game), but for editing this file to actually work it has to be set before steam is launched and the folder set to read-only so steam cannot re-write the file. Therefore the only two ways to modify that file is to make the directory read only so steam cannot change it when it is launched (can break updates) or making a skin like in method 1.<br />
<br />
== See also ==<br />
<br />
* https://wiki.gentoo.org/wiki/Steam</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Enhance_system_stability&diff=286835Enhance system stability2013-12-07T10:26:55Z<p>Rvalles: followup.</p>
<hr />
<div>[[Category:System administration]]<br />
[[fr:Enhancing Arch Linux Stability]]<br />
[[ja:Enhancing Arch Linux Stability]]<br />
[[pt:Enhancing Arch Linux Stability]]<br />
[[zh-CN:Enhancing Arch Linux Stability]]<br />
The purpose of this wiki article is to provide tips on how to make an Arch Linux system as stable as possible. While Arch Developers and Trusted Users work hard to produce high quality packages, given Arch's rolling release system and rapid package turnover, an Arch system may not be suitable for a mission critical, commercial production environment.<br />
<br />
However, Arch is inherently stable due to its commitment to simplicity in configuration, coupled with a rapid bug-report/bug-fix cycle, and the use of unpatched upstream source code. Thus, by following the advice below on setting up and maintaining Arch, the user should be able enjoy a very stable system. Furthermore, advice is included that will ease system repair in the event of a major malfunction.<br />
<br />
How stable can Arch Linux really be? There are numerous reports in the Arch forums of skilled system administrators successfully using Arch for production servers. Archlinux.org is one such example. On the desktop, a properly configured and maintained Arch installation can offer excellent stability.<br />
<br />
== Setting Up Arch ==<br />
<br />
When first installing and configuring Arch Linux, the user has a variety of choices to make about configuration, software, and drivers. These choices will impact overall system stability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Keeping old packages in a large /var partition ====<br />
<br />
Pacman archives all of the previously installed packages in {{ic|/var/cache/pacman/pkg}}, which over time may grow to a few GB in size. If you are setting up separate partitions during installation, always be sure to allocate plenty of space for a large /var partition. 4 to 8 GB should do, although more may be required for some server uses. Retaining these packages is helpful in case a recent package upgrade causes instability, requiring a downgrade to an older, archived package. See the section below entitled, [[#Revert package upgrades that cause instability]].<br />
<br />
==== Use recommended configurations ====<br />
<br />
In the detailed Arch Linux installation and configuration documentation, there is often more than one way to configure a specific aspect of the system. Always choose the recommended, default configuration when setting up the system. The recommended, default configurations reflect best practices, chosen for optimum system stability and ease of system repair.<br />
<br />
==== Be careful with unofficial and less tested packages ====<br />
<br />
Avoid any use of the testing repository, or individual packages from testing. These experimental packages are for development and testing, and are not suitable for a stable system.<br />
<br />
Use precaution when using packages from AUR. Most of the packages in AUR are supplied by user and thus might not have the same packaging standard as those in official repositories. Always check AUR package's PKGBUILD for any signs of mistake or malicious code before you build and install them.<br />
<br />
Be careful with [[AUR helpers]] which highly simplify installation of AUR packages and could lead to user build and install package that have malformed or malicious PKGBUILD. You should '''always''' sanity check PKGBUILDs before building and/or installing the package.<br />
<br />
Finally, it is extremely unwise to ever run any [[AUR helpers]], or the [[makepkg]] command as root user.<br />
<br />
Only use 3rd party repository if absolutely necessary or if you know what you're doing. Always use 3rd party repository from a trusted source.<br />
<br />
==== Use up-to-date mirrors ====<br />
<br />
Use mirrors that are frequently updated with the latest packages from the main Arch FTP server. Review the [https://www.archlinux.org/mirrors/status/ Mirror Status webpage] to verify that your chosen mirror is up to date. By using recently rsync'd mirrors, this ensures that your system will always have the freshest packages and package databases available during the course of routine maintenance.<br />
<br />
Also, if it is used, edit the mirror list in {{ic|/etc/pacman.d}} by placing local mirrors, those within your country or region, at the top of the list. Refer to the [[Mirrors#Enabling_your_favorite_mirror| Enabling your favorite mirror]] Arch wikipage section for additional details, including the installation of the [[Mirrors#List_by_speed|rankmirrors]] script to enable the fastest mirrors. These steps will ensure that the system uses the fastest, most reliable mirrors.<br />
<br />
After changing the server mirror used for updates, ensure that your system is up-to-date by doing pacman -Syu.<br />
<br />
==== Avoid development packages ====<br />
<br />
To prevent serious breakage of the system, do not install any development packages, which are usually found in AUR and occasionally in community. These are packages taken directly from upstream development branches, and usually feature one of the following words appended to the package name: dev, devel, svn, cvs, git, hg, bzr, or darcs.<br />
<br />
Most especially, avoid installing any development version of crucial system packages such as the kernel or glibc.<br />
<br />
If building a custom package using makepkg, be sure that the PKGBUILD follows the [[Arch Packaging Standards]], including a provides array. Use namcap to check the final .tar.gz or PKGBUILD file.<br />
<br />
==== Install the linux-lts package ====<br />
<br />
The {{Pkg|linux-lts}} package is an alternative Arch kernel package based upon Linux kernel 3.10 and is available in the [[Official Repositories#core|[core]]] repository. This particular kernel version enjoys '''l'''ong-'''t'''erm '''s'''upport (LTS) from upstream, including security fixes and some feature backports, especially useful for Arch users seeking to use such a kernel on a server, or who want a fallback kernel in case a new kernel version causes problems.<br />
<br />
To make it available as a boot option, you will need to update the bootloader's configuration file. For example, if you use [[Syslinux]], you have to edit {{ic|/boot/syslinux/syslinux.cfg}} and duplicate the current entries, except using {{ic|vmlinuz-linux-lts}} and {{ic|initramfs-linux-lts.img}}. For [[GRUB]], the recommended method is to automatically [[GRUB#Generate_config_file|re-generate the .cfg]].<br />
<br />
Some prefer to install the {{Pkg|linux-lts}} package in addition to the regular {{Pkg|linux}} package and edit the Fallback entry to use the LTS kernel.<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Use the package manager to install software ====<br />
<br />
[[Pacman]] does a much better job than you at keeping track of files. If you install things manually you ''will'', sooner or later forget what you did, where you installed to, install conflicting software, install to the wrong locations, etc.<br />
<br />
From a stability standpoint you should try to avoid unsupported package and custom software, but if you really need such things [[Creating packages|making a package]] is better than manually compiling and installing.<br />
<br />
You could also add an alias to disable make install command in {{ic|/root/.bashrc}}:<br />
make() {<br />
[ "$1" == 'install' ] &&<br />
echo -e "WARNING:\nDON'T INSTALL SOFTWARE MANUALLY\nDON'T USE unset make TO OVERRIDE" &&<br />
echo "Tip: It's easy to make own custom package see: man PKGBUILD makepkg" &&<br />
return 1;<br />
/usr/bin/make $@;<br />
}<br />
<br />
==== Use proven, mainstream software packages ====<br />
<br />
Install mature, proven, mainstream software; while avoiding cutting edge software that is still buggy. Try to avoid installing "point-oh", aka x.y.0, software releases. For example, instead of installing Foobar 2.5.0, wait until Foobar 2.5.1 is available. Do not deploy newly developed software until it is proven to be reliable. For example, [[PulseAudio]]'s early versions could be unreliable. Users interested in maximum stability would use the [[ALSA]] sound system instead. Finally, use software that has a strong and active development community.<br />
<br />
==== Choose open-source drivers ====<br />
<br />
Wherever possible, choose open source drivers. Try to avoid proprietary drivers. Most of the time, open source drivers are more stable and reliable than proprietary drivers. Open source driver bugs are fixed more easily and quickly. While proprietary drivers can offer more features and capabilities, this can come at the cost of stability. To avoid this dilemma, choose hardware components known to have mature open source driver support with full features. Information about hardware with open source Linux drivers is available at [http://www.linux-drivers.org/ linux-drivers.org].<br />
<br />
== Maintaining Arch ==<br />
<br />
In addition to configuring Arch for stability, there are steps one can take during maintenance which will enhance stability. Paying attention to a few SysAdmin details will help to ensure continued system reliability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Upgrade entire system with reasonable frequency ====<br />
<br />
Many Arch users update frequently, even upgrading their systems daily using {{ic|pacman -Syu}}. While updating so frequently is not necessary, one should upgrade fairly often to enjoy the latest bugfix and security updates. Weekly or biweekly upgrades are thus a good idea.<br />
<br />
If the system has packages from the AUR, carefully upgrade all [[AUR]] packages.<br />
<br />
==== Read before upgrading the system ====<br />
<br />
Before upgrading Arch, always read the latest [https://www.archlinux.org/news/ Arch News] to find out if there are any major software or configuration changes with the latest packages. Before upgrading fundamental software, such as the [[kernel]], [[xorg]], or [[glibc]] to a new version, look over the appropriate [https://bbs.archlinux.org/ forum] to see if there have been any reported problems.<br />
<br />
==== Act on alerts during an upgrade ====<br />
<br />
When upgrading the system, be sure to pay attention to the alert notices provided by [[pacman]]. If any additional actions are required by the user, be sure to take care of them right away. If a pacman alert is confusing, search the forums and the recent news posts for more detailed instructions.<br />
<br />
==== Deal promptly with .pacnew, .pacsave, and .pacorig files ====<br />
<br />
When pacman removes a package that has a configuration file, it normally creates a backup copy of that config file and appends .pacsave to the name of the file. Likewise, when pacman upgrades a package which includes a new config file created by the maintainer differing from the currently installed file, it writes a .pacnew config file. Occasionally, under special circumstances, a .pacorig file is created. Pacman provides notice when these files are written.<br />
<br />
Users must deal with these files promptly when pacman creates them, in order to ensure optimum system stability. The {{ic|pacdiff}} tool, provided by [[pacman]], can assist with this. Users are referred to the [[Pacnew and Pacsave Files]] wiki page for detailed instructions.<br />
<br />
==== Consider using pacmatic ====<br />
<br />
[http://kmkeen.com/pacmatic/index.html Pacmatic] is a pacman wrapper which automates the process of checking Arch News prior to upgrading. Pacmatic also ensures that the local pacman database is correctly synchronized with online mirrors, thus avoiding potential problems with botched pacman -Sy database updates. Finally, it provides more stringent warnings about updated or obsolete config files. pacman can be aliased to pacmatic, and various [[AUR helpers]] can be configured to use it instead of pacman.<br />
<br />
==== Avoid certain pacman commands ====<br />
<br />
Arch being a rolling release distribution, it can be dangerous to refresh pacman databases without doing a full system upgrade immediately after. Avoid using {{Ic|pacman -Sy package}} to install a package, but always use {{Ic|pacman -S package}} instead. And upgrade your system regularly with {{Ic|pacman -Syu}}.<br />
<br />
Avoid using the {{ic|-f}} option with pacman, '''especially''' in commands such as {{Ic|pacman -Syuf}} involving more than one package. The {{ic|--force}} option ignores file conflicts and can even cause file loss when files are relocated between different packages! In a properly maintained system, it should never need to be used.<br />
<br />
Do not use {{Ic|pacman -Rdd package}}. Using the {{ic|-d}} flag skips dependency checks during package removal. As a result, a package providing a critical dependency could be removed, resulting in a broken system.<br />
<br />
Never run {{Ic|pacman -Scc}} unless there is a desperate need for the disk space, and little or no need for archived package files. It is safer to keep older packages available in the cache archives in the event a package upgrade causes problems, requiring a package reversion. Instead, just use {{ic|pacman -Sc}} to clean out the archived packages in the pacman cache, of packages previously removed from the pacman database.<br />
<br />
Make sure to only use this command if there is no intention of re-installing recently removed packages. If such packages are re-installed after this command has been executed, there will be no older, archived versions of the packages in the pacman cache.<br />
<br />
In the event that {{ic|/var}} disk space becomes scarce, move '''all''' archived packages to the home directory using the [http://www.3111skyline.com/download/Archlinux/scripts/ fduparch.sh script]. Use the [http://www.3111skyline.com/download/Archlinux/scripts/fduppkg fduppkg script] to move all but the last previously installed package versions in the pacman cache archives, to the home directory.<br />
<br />
==== Revert package upgrades that cause instability ====<br />
<br />
In the event that a particular package upgrade results in system instability, install the last known stable version of the package from the local pacman cache using the following command:<br />
<br />
pacman -U /var/cache/pacman/pkg/Package-Name.pkg.tar.gz<br />
<br />
For more detailed information on reverting to older packages, consult the Arch wikipage, [[Downgrading Packages]].<br />
<br />
Once the package is reverted, temporarily add it to the [[Pacman#Skip_package_from_being_upgraded|IgnorePkg section of pacman.conf]], until the difficulty with the updated package is resolved. Consult the Arch wiki and/or webforums for advice, and file a bug report if necessary.<br />
<br />
==== Regularly backup a list of installed packages ====<br />
<br />
At regular intervals, create a list of installed packages and store a copy on one or more offline media, such as a USB stick, external hard drive, or CD-R. Use the following command to create a pkglist:<br />
<br />
pacman -Qqne > /path/to/chosen/directory/pkg.list<br />
<br />
In the event of a catastrophic system failure requiring a complete re-installation, these packages can be quickly reinstalled using the command:<br />
<br />
pacman -S --needed $(< /path/to/chosen/directory/pkg.list )<br />
<br />
==== Regularly backup the pacman database ====<br />
<br />
The following command can be used to backup the local pacman database, and can be run as a cronjob:<br />
<br />
tar -cjf /path/to/chosen/directory/pacman-database.tar.bz2 /var/lib/pacman/local<br />
<br />
Store the backup pacman database file on one or more offline media, such as a USB stick, external hard drive, or CD-R.<br />
<br />
Restore the backup pacman database file by moving the {{ic|pacman-database.tar.bz2}} file into the {{ic|/}} directory and executing the following command:<br />
<br />
tar -xjvf pacman-database.tar.bz2<br />
<br />
If the pacman database files are corrupted, and there is no backup file available, there exists some hope of rebuilding the pacman database. Consult the Arch wikipage, [[Pacman_Tips#Restore_pacman.27s_local_database|How To Restore Pacman's Local Database]].<br />
<br />
===== Systemd Automation =====<br />
<br />
You can configure [https://wiki.archlinux.org/index.php/Systemd systemd] to backup the pacman database everytime a new package is installed or updated, save and run the following scripts. See [[Pacman Tips#Backing up Local database with systemd|here]].<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Subscribe to NVD/CVE alerts and only upgrade on a security alert ====<br />
<br />
Subscribe to the Common Vulnerabilities and Exposure Security Alert updates, made available by National Vulnerability Database, and found on the [http://nvd.nist.gov/download.cfm NVD Download webpage]. Only update the Arch system when a security alert is issued for a package installed on that particular system.<br />
<br />
This is the alternative to upgrading the entire system frequently. It ensures that security problems in various packages are resolved promptly, while keeping all the rest of the packages frozen in a known, stable configuration. However, reviewing the frequent CVE Alerts to see if any apply to installed Arch packages can be tedious and time consuming.<br />
<br />
==== Test updates on a non-critical system ====<br />
<br />
If possible, test changes to configuration files, as well as updates to software packages, on a non-critical duplicate system first. Then, if no problems arise, roll out the changes to the production system.<br />
<br />
==== Always backup config files before editing ====<br />
<br />
Before editing any configuration file, always back up a known working version of that config file. In the event that changes in the config file cause problems, one can revert to the previous stable config file. Do this from a text editor by first saving the file to a backup copy before making any alterations; or execute the following command:<br />
<br />
cp config config~<br />
<br />
Using ''~'' will ensure there is a readily distinguishable human-made backup conf file if pacman creates a .pacnew, .pacsave, or .pacorig file using the active config file.<br />
<br />
{{AUR|etckeeper}} can help dealing with config files. It keeps the whole {{ic|/etc}} directory in a version control.<br />
<br />
==== Regularly backup the /etc, /home, /srv, and /var directories ====<br />
<br />
Since {{ic|/etc}}, {{ic|/home}}, {{ic|/srv}} and {{ic|/var}} directories contain important system files and configs, it is advisable to keep backup of these folders on a regular interval. The following is a simple guide line on how to go about it.<br />
<br />
* {{ic|/etc}}: Backup the /etc directory by executing the following command as root or as a cronjob:<br />
<br />
tar -cjf /path/to/chosen/directory/etc-backup.tar.bz2 /etc<br />
<br />
Store the {{ic|/etc}} backup file on one or more offline media, such as a USB stick, external hard drive, or CD-R. Occasionally verify the integrity of the backup process by comparing original files and directories with their backups.<br />
<br />
Restore corrupted {{ic|/etc}} files by extracting the {{ic|etc-backup.tar.bz2}} file in a temporary working directory, and copying over individual files and directories as needed. To restore the entire {{ic|/etc}} directory with all its contents, move the {{ic|etc-backup.tar.bz2}} files into the {{ic|/}} directory. As root, execute the following command:<br />
<br />
tar -xvjf etc-backup.tar.bz2<br />
<br />
* {{ic|/home}}: At regular intervals, backup the {{ic|/home}} directory to an external hard drive, Network Attached Server, or online backup service. Occasionally verify the integrity of the backup process by comparing original files and directories with their backups.<br />
<br />
* {{ic|/srv}}: Server installations should have the {{ic|/srv}} directory regularly backed up.<br />
<br />
* {{ic|/var}}: Additional directories in {{ic|/var}}, such a {{ic|/var/spool/mail}} or {{ic|/var/lib}}, which also require backup and occasional verification.<br />
<br />
If you want to backup much faster (using parallel compression, SMP), you should use pbzip2 (Parallel bzip2). The steps are slightly different, but not by much.<br />
<br />
First we will backup the files to a plain tarball with no compression:<br />
<br />
tar -cvf /path/to/chosen/directory/etc-backup.tar /etc<br />
<br />
Then we will use pbzip2 to compress it in parallel (Make sure you install it with {{ic|pacman -S pbzip2}})<br />
<br />
pbzip2 /path/to/chosen/directory/etc-backup.tar.bz2<br />
<br />
and that's it. Your files should be backing up using all of your cores.</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Enhance_system_stability&diff=286834Enhance system stability2013-12-07T10:26:24Z<p>Rvalles: .bak for backups is a msdos-ism. Replaced with proper form.</p>
<hr />
<div>[[Category:System administration]]<br />
[[fr:Enhancing Arch Linux Stability]]<br />
[[ja:Enhancing Arch Linux Stability]]<br />
[[pt:Enhancing Arch Linux Stability]]<br />
[[zh-CN:Enhancing Arch Linux Stability]]<br />
The purpose of this wiki article is to provide tips on how to make an Arch Linux system as stable as possible. While Arch Developers and Trusted Users work hard to produce high quality packages, given Arch's rolling release system and rapid package turnover, an Arch system may not be suitable for a mission critical, commercial production environment.<br />
<br />
However, Arch is inherently stable due to its commitment to simplicity in configuration, coupled with a rapid bug-report/bug-fix cycle, and the use of unpatched upstream source code. Thus, by following the advice below on setting up and maintaining Arch, the user should be able enjoy a very stable system. Furthermore, advice is included that will ease system repair in the event of a major malfunction.<br />
<br />
How stable can Arch Linux really be? There are numerous reports in the Arch forums of skilled system administrators successfully using Arch for production servers. Archlinux.org is one such example. On the desktop, a properly configured and maintained Arch installation can offer excellent stability.<br />
<br />
== Setting Up Arch ==<br />
<br />
When first installing and configuring Arch Linux, the user has a variety of choices to make about configuration, software, and drivers. These choices will impact overall system stability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Keeping old packages in a large /var partition ====<br />
<br />
Pacman archives all of the previously installed packages in {{ic|/var/cache/pacman/pkg}}, which over time may grow to a few GB in size. If you are setting up separate partitions during installation, always be sure to allocate plenty of space for a large /var partition. 4 to 8 GB should do, although more may be required for some server uses. Retaining these packages is helpful in case a recent package upgrade causes instability, requiring a downgrade to an older, archived package. See the section below entitled, [[#Revert package upgrades that cause instability]].<br />
<br />
==== Use recommended configurations ====<br />
<br />
In the detailed Arch Linux installation and configuration documentation, there is often more than one way to configure a specific aspect of the system. Always choose the recommended, default configuration when setting up the system. The recommended, default configurations reflect best practices, chosen for optimum system stability and ease of system repair.<br />
<br />
==== Be careful with unofficial and less tested packages ====<br />
<br />
Avoid any use of the testing repository, or individual packages from testing. These experimental packages are for development and testing, and are not suitable for a stable system.<br />
<br />
Use precaution when using packages from AUR. Most of the packages in AUR are supplied by user and thus might not have the same packaging standard as those in official repositories. Always check AUR package's PKGBUILD for any signs of mistake or malicious code before you build and install them.<br />
<br />
Be careful with [[AUR helpers]] which highly simplify installation of AUR packages and could lead to user build and install package that have malformed or malicious PKGBUILD. You should '''always''' sanity check PKGBUILDs before building and/or installing the package.<br />
<br />
Finally, it is extremely unwise to ever run any [[AUR helpers]], or the [[makepkg]] command as root user.<br />
<br />
Only use 3rd party repository if absolutely necessary or if you know what you're doing. Always use 3rd party repository from a trusted source.<br />
<br />
==== Use up-to-date mirrors ====<br />
<br />
Use mirrors that are frequently updated with the latest packages from the main Arch FTP server. Review the [https://www.archlinux.org/mirrors/status/ Mirror Status webpage] to verify that your chosen mirror is up to date. By using recently rsync'd mirrors, this ensures that your system will always have the freshest packages and package databases available during the course of routine maintenance.<br />
<br />
Also, if it is used, edit the mirror list in {{ic|/etc/pacman.d}} by placing local mirrors, those within your country or region, at the top of the list. Refer to the [[Mirrors#Enabling_your_favorite_mirror| Enabling your favorite mirror]] Arch wikipage section for additional details, including the installation of the [[Mirrors#List_by_speed|rankmirrors]] script to enable the fastest mirrors. These steps will ensure that the system uses the fastest, most reliable mirrors.<br />
<br />
After changing the server mirror used for updates, ensure that your system is up-to-date by doing pacman -Syu.<br />
<br />
==== Avoid development packages ====<br />
<br />
To prevent serious breakage of the system, do not install any development packages, which are usually found in AUR and occasionally in community. These are packages taken directly from upstream development branches, and usually feature one of the following words appended to the package name: dev, devel, svn, cvs, git, hg, bzr, or darcs.<br />
<br />
Most especially, avoid installing any development version of crucial system packages such as the kernel or glibc.<br />
<br />
If building a custom package using makepkg, be sure that the PKGBUILD follows the [[Arch Packaging Standards]], including a provides array. Use namcap to check the final .tar.gz or PKGBUILD file.<br />
<br />
==== Install the linux-lts package ====<br />
<br />
The {{Pkg|linux-lts}} package is an alternative Arch kernel package based upon Linux kernel 3.10 and is available in the [[Official Repositories#core|[core]]] repository. This particular kernel version enjoys '''l'''ong-'''t'''erm '''s'''upport (LTS) from upstream, including security fixes and some feature backports, especially useful for Arch users seeking to use such a kernel on a server, or who want a fallback kernel in case a new kernel version causes problems.<br />
<br />
To make it available as a boot option, you will need to update the bootloader's configuration file. For example, if you use [[Syslinux]], you have to edit {{ic|/boot/syslinux/syslinux.cfg}} and duplicate the current entries, except using {{ic|vmlinuz-linux-lts}} and {{ic|initramfs-linux-lts.img}}. For [[GRUB]], the recommended method is to automatically [[GRUB#Generate_config_file|re-generate the .cfg]].<br />
<br />
Some prefer to install the {{Pkg|linux-lts}} package in addition to the regular {{Pkg|linux}} package and edit the Fallback entry to use the LTS kernel.<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Use the package manager to install software ====<br />
<br />
[[Pacman]] does a much better job than you at keeping track of files. If you install things manually you ''will'', sooner or later forget what you did, where you installed to, install conflicting software, install to the wrong locations, etc.<br />
<br />
From a stability standpoint you should try to avoid unsupported package and custom software, but if you really need such things [[Creating packages|making a package]] is better than manually compiling and installing.<br />
<br />
You could also add an alias to disable make install command in {{ic|/root/.bashrc}}:<br />
make() {<br />
[ "$1" == 'install' ] &&<br />
echo -e "WARNING:\nDON'T INSTALL SOFTWARE MANUALLY\nDON'T USE unset make TO OVERRIDE" &&<br />
echo "Tip: It's easy to make own custom package see: man PKGBUILD makepkg" &&<br />
return 1;<br />
/usr/bin/make $@;<br />
}<br />
<br />
==== Use proven, mainstream software packages ====<br />
<br />
Install mature, proven, mainstream software; while avoiding cutting edge software that is still buggy. Try to avoid installing "point-oh", aka x.y.0, software releases. For example, instead of installing Foobar 2.5.0, wait until Foobar 2.5.1 is available. Do not deploy newly developed software until it is proven to be reliable. For example, [[PulseAudio]]'s early versions could be unreliable. Users interested in maximum stability would use the [[ALSA]] sound system instead. Finally, use software that has a strong and active development community.<br />
<br />
==== Choose open-source drivers ====<br />
<br />
Wherever possible, choose open source drivers. Try to avoid proprietary drivers. Most of the time, open source drivers are more stable and reliable than proprietary drivers. Open source driver bugs are fixed more easily and quickly. While proprietary drivers can offer more features and capabilities, this can come at the cost of stability. To avoid this dilemma, choose hardware components known to have mature open source driver support with full features. Information about hardware with open source Linux drivers is available at [http://www.linux-drivers.org/ linux-drivers.org].<br />
<br />
== Maintaining Arch ==<br />
<br />
In addition to configuring Arch for stability, there are steps one can take during maintenance which will enhance stability. Paying attention to a few SysAdmin details will help to ensure continued system reliability.<br />
<br />
=== Arch Specific Tips ===<br />
<br />
==== Upgrade entire system with reasonable frequency ====<br />
<br />
Many Arch users update frequently, even upgrading their systems daily using {{ic|pacman -Syu}}. While updating so frequently is not necessary, one should upgrade fairly often to enjoy the latest bugfix and security updates. Weekly or biweekly upgrades are thus a good idea.<br />
<br />
If the system has packages from the AUR, carefully upgrade all [[AUR]] packages.<br />
<br />
==== Read before upgrading the system ====<br />
<br />
Before upgrading Arch, always read the latest [https://www.archlinux.org/news/ Arch News] to find out if there are any major software or configuration changes with the latest packages. Before upgrading fundamental software, such as the [[kernel]], [[xorg]], or [[glibc]] to a new version, look over the appropriate [https://bbs.archlinux.org/ forum] to see if there have been any reported problems.<br />
<br />
==== Act on alerts during an upgrade ====<br />
<br />
When upgrading the system, be sure to pay attention to the alert notices provided by [[pacman]]. If any additional actions are required by the user, be sure to take care of them right away. If a pacman alert is confusing, search the forums and the recent news posts for more detailed instructions.<br />
<br />
==== Deal promptly with .pacnew, .pacsave, and .pacorig files ====<br />
<br />
When pacman removes a package that has a configuration file, it normally creates a backup copy of that config file and appends .pacsave to the name of the file. Likewise, when pacman upgrades a package which includes a new config file created by the maintainer differing from the currently installed file, it writes a .pacnew config file. Occasionally, under special circumstances, a .pacorig file is created. Pacman provides notice when these files are written.<br />
<br />
Users must deal with these files promptly when pacman creates them, in order to ensure optimum system stability. The {{ic|pacdiff}} tool, provided by [[pacman]], can assist with this. Users are referred to the [[Pacnew and Pacsave Files]] wiki page for detailed instructions.<br />
<br />
==== Consider using pacmatic ====<br />
<br />
[http://kmkeen.com/pacmatic/index.html Pacmatic] is a pacman wrapper which automates the process of checking Arch News prior to upgrading. Pacmatic also ensures that the local pacman database is correctly synchronized with online mirrors, thus avoiding potential problems with botched pacman -Sy database updates. Finally, it provides more stringent warnings about updated or obsolete config files. pacman can be aliased to pacmatic, and various [[AUR helpers]] can be configured to use it instead of pacman.<br />
<br />
==== Avoid certain pacman commands ====<br />
<br />
Arch being a rolling release distribution, it can be dangerous to refresh pacman databases without doing a full system upgrade immediately after. Avoid using {{Ic|pacman -Sy package}} to install a package, but always use {{Ic|pacman -S package}} instead. And upgrade your system regularly with {{Ic|pacman -Syu}}.<br />
<br />
Avoid using the {{ic|-f}} option with pacman, '''especially''' in commands such as {{Ic|pacman -Syuf}} involving more than one package. The {{ic|--force}} option ignores file conflicts and can even cause file loss when files are relocated between different packages! In a properly maintained system, it should never need to be used.<br />
<br />
Do not use {{Ic|pacman -Rdd package}}. Using the {{ic|-d}} flag skips dependency checks during package removal. As a result, a package providing a critical dependency could be removed, resulting in a broken system.<br />
<br />
Never run {{Ic|pacman -Scc}} unless there is a desperate need for the disk space, and little or no need for archived package files. It is safer to keep older packages available in the cache archives in the event a package upgrade causes problems, requiring a package reversion. Instead, just use {{ic|pacman -Sc}} to clean out the archived packages in the pacman cache, of packages previously removed from the pacman database.<br />
<br />
Make sure to only use this command if there is no intention of re-installing recently removed packages. If such packages are re-installed after this command has been executed, there will be no older, archived versions of the packages in the pacman cache.<br />
<br />
In the event that {{ic|/var}} disk space becomes scarce, move '''all''' archived packages to the home directory using the [http://www.3111skyline.com/download/Archlinux/scripts/ fduparch.sh script]. Use the [http://www.3111skyline.com/download/Archlinux/scripts/fduppkg fduppkg script] to move all but the last previously installed package versions in the pacman cache archives, to the home directory.<br />
<br />
==== Revert package upgrades that cause instability ====<br />
<br />
In the event that a particular package upgrade results in system instability, install the last known stable version of the package from the local pacman cache using the following command:<br />
<br />
pacman -U /var/cache/pacman/pkg/Package-Name.pkg.tar.gz<br />
<br />
For more detailed information on reverting to older packages, consult the Arch wikipage, [[Downgrading Packages]].<br />
<br />
Once the package is reverted, temporarily add it to the [[Pacman#Skip_package_from_being_upgraded|IgnorePkg section of pacman.conf]], until the difficulty with the updated package is resolved. Consult the Arch wiki and/or webforums for advice, and file a bug report if necessary.<br />
<br />
==== Regularly backup a list of installed packages ====<br />
<br />
At regular intervals, create a list of installed packages and store a copy on one or more offline media, such as a USB stick, external hard drive, or CD-R. Use the following command to create a pkglist:<br />
<br />
pacman -Qqne > /path/to/chosen/directory/pkg.list<br />
<br />
In the event of a catastrophic system failure requiring a complete re-installation, these packages can be quickly reinstalled using the command:<br />
<br />
pacman -S --needed $(< /path/to/chosen/directory/pkg.list )<br />
<br />
==== Regularly backup the pacman database ====<br />
<br />
The following command can be used to backup the local pacman database, and can be run as a cronjob:<br />
<br />
tar -cjf /path/to/chosen/directory/pacman-database.tar.bz2 /var/lib/pacman/local<br />
<br />
Store the backup pacman database file on one or more offline media, such as a USB stick, external hard drive, or CD-R.<br />
<br />
Restore the backup pacman database file by moving the {{ic|pacman-database.tar.bz2}} file into the {{ic|/}} directory and executing the following command:<br />
<br />
tar -xjvf pacman-database.tar.bz2<br />
<br />
If the pacman database files are corrupted, and there is no backup file available, there exists some hope of rebuilding the pacman database. Consult the Arch wikipage, [[Pacman_Tips#Restore_pacman.27s_local_database|How To Restore Pacman's Local Database]].<br />
<br />
===== Systemd Automation =====<br />
<br />
You can configure [https://wiki.archlinux.org/index.php/Systemd systemd] to backup the pacman database everytime a new package is installed or updated, save and run the following scripts. See [[Pacman Tips#Backing up Local database with systemd|here]].<br />
<br />
=== Generic Best Practices ===<br />
<br />
==== Subscribe to NVD/CVE alerts and only upgrade on a security alert ====<br />
<br />
Subscribe to the Common Vulnerabilities and Exposure Security Alert updates, made available by National Vulnerability Database, and found on the [http://nvd.nist.gov/download.cfm NVD Download webpage]. Only update the Arch system when a security alert is issued for a package installed on that particular system.<br />
<br />
This is the alternative to upgrading the entire system frequently. It ensures that security problems in various packages are resolved promptly, while keeping all the rest of the packages frozen in a known, stable configuration. However, reviewing the frequent CVE Alerts to see if any apply to installed Arch packages can be tedious and time consuming.<br />
<br />
==== Test updates on a non-critical system ====<br />
<br />
If possible, test changes to configuration files, as well as updates to software packages, on a non-critical duplicate system first. Then, if no problems arise, roll out the changes to the production system.<br />
<br />
==== Always backup config files before editing ====<br />
<br />
Before editing any configuration file, always back up a known working version of that config file. In the event that changes in the config file cause problems, one can revert to the previous stable config file. Do this from a text editor by first saving the file to a backup copy before making any alterations; or execute the following command:<br />
<br />
cp config config~<br />
<br />
Using ''.bak'' will ensure there is a readily distinguishable human-made backup conf file if pacman creates a .pacnew, .pacsave, or .pacorig file using the active config file.<br />
<br />
{{AUR|etckeeper}} can help dealing with config files. It keeps the whole {{ic|/etc}} directory in a version control.<br />
<br />
==== Regularly backup the /etc, /home, /srv, and /var directories ====<br />
<br />
Since {{ic|/etc}}, {{ic|/home}}, {{ic|/srv}} and {{ic|/var}} directories contain important system files and configs, it is advisable to keep backup of these folders on a regular interval. The following is a simple guide line on how to go about it.<br />
<br />
* {{ic|/etc}}: Backup the /etc directory by executing the following command as root or as a cronjob:<br />
<br />
tar -cjf /path/to/chosen/directory/etc-backup.tar.bz2 /etc<br />
<br />
Store the {{ic|/etc}} backup file on one or more offline media, such as a USB stick, external hard drive, or CD-R. Occasionally verify the integrity of the backup process by comparing original files and directories with their backups.<br />
<br />
Restore corrupted {{ic|/etc}} files by extracting the {{ic|etc-backup.tar.bz2}} file in a temporary working directory, and copying over individual files and directories as needed. To restore the entire {{ic|/etc}} directory with all its contents, move the {{ic|etc-backup.tar.bz2}} files into the {{ic|/}} directory. As root, execute the following command:<br />
<br />
tar -xvjf etc-backup.tar.bz2<br />
<br />
* {{ic|/home}}: At regular intervals, backup the {{ic|/home}} directory to an external hard drive, Network Attached Server, or online backup service. Occasionally verify the integrity of the backup process by comparing original files and directories with their backups.<br />
<br />
* {{ic|/srv}}: Server installations should have the {{ic|/srv}} directory regularly backed up.<br />
<br />
* {{ic|/var}}: Additional directories in {{ic|/var}}, such a {{ic|/var/spool/mail}} or {{ic|/var/lib}}, which also require backup and occasional verification.<br />
<br />
If you want to backup much faster (using parallel compression, SMP), you should use pbzip2 (Parallel bzip2). The steps are slightly different, but not by much.<br />
<br />
First we will backup the files to a plain tarball with no compression:<br />
<br />
tar -cvf /path/to/chosen/directory/etc-backup.tar /etc<br />
<br />
Then we will use pbzip2 to compress it in parallel (Make sure you install it with {{ic|pacman -S pbzip2}})<br />
<br />
pbzip2 /path/to/chosen/directory/etc-backup.tar.bz2<br />
<br />
and that's it. Your files should be backing up using all of your cores.</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=285162Talk:Installation guide2013-11-29T04:18:35Z<p>Rvalles: /* Install from Existing Linux */</p>
<hr />
<div>== Read this first before add new suggestion ==<br />
* Point of this page is to ''not'' become another Beginner's guide. It's meant to be a ''concise'' checklist of things to be done. So detailed install instruction should go to [[Beginners' Guide]]. <br />
* If there is something to discuss which should also affect the Beginner's guide, then do it on [[Talk:Beginners' Guide]]. An advanced user will find this page less bloated and easier to read, so let's KISS.<br />
<br />
== Change section "Connect to the internet" ==<br />
<br />
Since the installation guide is now part of the iso image, I'd like to see a few references to the manpages of the necessary tools here, since you cannot open the network related wiki pages. Maybe something like this would be acceptable:<br />
Assuming a wired ethernet connection, running dhclient or dhcpcd is <br />
sufficient to get a lease. Otherwise set up the connection manually<br />
using ip add, wpa_supplicant (WLAN with WPA), pppoe-setup (DSL), etc.<br />
You can also create and use netcfg profiles. Read more in the manpages:<br />
ip(8), wpa_supplicant(8), pppoe(8), netcfg(8), netcfg-profiles(5)<br />
A reminder to install the packages for the internet connection in the pacstrap section would also be nice. -- [[User:progandy|progandy]]<br />
<br />
== Suggestions to update this guide as part of ISO ==<br />
Since this guide is now being included as 'install.txt' in the ISO, it might be beneficial to incorporate the following changes:<br />
* Entirely remove the '''1. Download''' section and move it to the Download area of the archlinux.org page. This document here is about installing, not downloading, checking, burning discs or dd'ing. The majority of users reading this have likely already booted up the install medium.<br />
* Begin or end the document by mentioning the new archlinux(7) man page which explains the location of important system configuration files<br />
# man archlinux<br />
* Slightly expand the '''6. Connect to the internet''' section to include the most basic examples of setting up a private network using a dynamic and static IP address. (Right now it's only a single paragraph/line.) It's a vital installation step and should actually be moved to the top as one of the first actions during system setup. This fact should be emphasized.<br />
<br />
Obtain dynamic IP <br />
# dhcpcd<br />
<br />
Set static IP<br />
# ip link set dev eth0 up<br />
# ip addr add 192.168.1.2/24 dev eth0<br />
# ip route add default via 192.168.1.1<br />
# echo "nameserver 8.8.8.8" >> /etc/resolv.conf<br />
<br />
--[[User:MajorTom|MajorTom]]<br />
<br />
:* I can agree to all your suggestions, I wonder why no one is modifying the wiki. Internet connection setup is the most important part and should be covered more extensively. In addition to your changes, mention the manpages and configuration templates for netcfg and pppoe-setup/connect. The boot medium must at least contain easy accesible information in order to read all pages referenced in the installation guide. There should also be mentioned that elinks is installed and can be used to access the wiki. --[[User:Progandy|Progandy]] ([[User talk:Progandy|talk]]) 21:50, 24 August 2012 (UTC)<br />
<br />
:* The {{ic|dhcpcd}} network daemon is started automatically: [https://www.archlinux.org/news/install-media-20120804-available/], [https://wiki.archlinux.org/index.php/Beginners%27_Guide#Network_setup], so there's no reason to start it manually. --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 08:17, 25 August 2012 (UTC)<br />
<br />
== add a step: setting the clock ==<br />
<br />
Lots of things care about the clock being more-or-less correct, e.g. pacman-key will not work at all if the clock is too far out. Lots of brand new computers come with the clock set to something in the distant past, which causes weird problems during the install. [[User:Thetrivialstuff|Thetrivialstuff]] ([[User talk:Thetrivialstuff|talk]]) 23:14, 31 July 2012 (UTC)<br />
<br />
I agree, the instructions in "Installation Guide" leaves you without a /etc/adjtime file.<br />
The following should be added (taken from beginners guide, but shortened):<br />
Set the hardware clock and generate a {{ic|/etc/adjtime}} file with {{ic|# hwclock --systohc --utc}} or {{ic|# hwclock --systohc --localtime}}<br />
[[User:Bwid|Bwid]] ([[User talk:Bwid|talk]]) 08:03, 3 March 2013 (UTC)<br />
:There's no need for an adjtime file, but it does make sense to have people use {{ic|timedatectl}} from the live media to set the clock correctly. -- [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 03:30, 15 March 2013 (UTC)<br />
<br />
== pacman-key --init / populate? ==<br />
<br />
Isn't this a required step? pacstrap does not seem to do it on its own. [[User:Thetrivialstuff|Thetrivialstuff]] ([[User talk:Thetrivialstuff|talk]]) 23:15, 31 July 2012 (UTC)<br />
:Edit: Ah; I think this was related to the "set the clock" step -- I see that there is a pacman keyring init in the boot sequence of the latest media, but it (silently?) fails if the local clock is wrong.<br />
::https://mailman.archlinux.org/pipermail/arch-releng/2012-July/002708.html --[[User:Bluewind|Bluewind]] ([[User talk:Bluewind|talk]]) 09:10, 1 August 2012 (UTC)<br />
This really need to be included on tutorial before pacstrap. Otherwise it will not work. [[User:Michelboaventura|Michelboaventura]] ([[User talk:Michelboaventura|talk]]) 16:49, 20 September 2013 (UTC)<br />
<br />
==Proposed changes to Beginners' Guide and link to Post-Installation==<br />
Some major changes are under discussion in [[Talk:Beginners'_Guide#Guide_restructuring]]: some of them would require adjustments to this very guide, see for example [https://wiki.archlinux.org/index.php?title=Talk%3ABeginners%27_Guide&diff=224578&oldid=224567 this post].<br />
<br />
Please reply in the linked discussion, '''not''' here.<br />
<br />
-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 12:15, 22 September 2012 (UTC)<br />
<br />
:I've added the steps in [[Beginners' Guide/Post-Installation]] to this guide, which now directly sends users to [[Beginners' Guide/Extra]].<br />
:If however [[Talk:Beginners' Guide#Guide restructuring]] will be implemented as planned, the [[Beginners' Guide]] will have a slightly different installation procedure than this guide, unless this one is updated too.<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:08, 24 September 2012 (UTC)<br />
<br />
::Shouldn't the information be added ''before'' "Unmount leftovers and reboot" ? By the way, the title should mention rebooting, because most likely a kernel update was involved. --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 14:41, 24 September 2012 (UTC)<br />
<br />
:::The link to Post-Installation was the last step of the guide, so that's the line I've replaced with the instructions from Post-Installation.<br />
:::About rebooting in case of a kernel upgrade, I don't think it's necessary to state that since this guide is aimed at experienced users.<br />
:::In any case, any reordering or modification of the various steps should better be approved by a Developer, and probably the forum or the mailing lists are better places than this talk page to involve them in such discussions.<br />
:::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:59, 24 September 2012 (UTC)<br />
<br />
::::Yeah, but at this point, you were instructed to reboot. In order to edit {{ic|pacman.conf}}, you need to mount the root partition. And to update your system, you need to chroot into it. It would be better if "Unmount leftovers" was renamed "Unmount leftovers and reboot", and added at the end (before the suggestion to read the instructions from '''Extra'''). --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 15:07, 24 September 2012 (UTC)<br />
<br />
:::::You are still instructed to reboot, aren't you? The "Unmount leftovers" section currently tells you to ''"reboot and then login into the new system with the root account"''. In the "new system", the correct partition is already mounted at /.<br />
:::::Whether or not configuring pacman, updating the system and adding a user would be better done in the chroot before rebooting, it's something that should be discussed with a Developer. I too think that it would make more sense, requiring one less reboot in case of a kernel upgrade.<br />
:::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:18, 24 September 2012 (UTC)<br />
:::::Renaming "Unmount leftovers" to "Unmount leftovers and reboot" is safe anyway, so I've done that. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:37, 24 September 2012 (UTC)<br />
:::::@DSpider: you're quite active on the forum, why don't you propose your idea there? I think it would be interesting to discuss it. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:11, 25 September 2012 (UTC)<br />
:::::Ok, after reading [https://wiki.archlinux.org/index.php?title=Talk%3AInstallation_Guide&diff=226203&oldid=225070 this] I realize that maybe I haven't been clear enough, so I'll try to explain everything more thoroughly.<br />
:::::#The current procedure makes you [[Installation_Guide#Configure_the_system|configure the system]] in the '''chroot''' environment from the '''live''' system.<br />
:::::#Then, still in the '''live''' system, it [[Installation_Guide#Unmount and reboot|asks]] you to '''exit''' the chroot, unmount the partitions for the '''new''' system, '''reboot''' and login into the '''new''' system. Now, I refuse to write more explicitly in the guide that you should boot into the '''new''' system, and not again in the '''live''' system, in order to login into the new system.<br />
:::::#Since you are now into the '''new''' system ('''not''' the live system), the root partition is mounted at {{ic|/}}, not at {{ic|/mnt/}}, so you should be able to configure pacman, update the system and add a user wihtout chrooting. Now, if you've tested the procedure and really noticed that for some obscure-to-me reason you still need to chroot to /mnt in order to do those operations, please ask for clarifications in the forum because I wouldn't be able to answer any more.<br />
:::::Last thing, and I think this is the 3rd or 4th time I write it, I '''agree''' with you that configuring pacman etc. could easily be done in the chroot environment at step 1, but you should '''propose''' that change '''in the forum''' first, since it would be a change in the official installation procedure and I won't take responsibility for that.<br />
:::::I think this is the best I can do here, the next step to explain all this could be making a movie or a five-act play, but I hope it's not necessary :)<br />
:::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 05:56, 30 September 2012 (UTC)<br />
<br />
== Mounting the Swap partition. ==<br />
<br />
Just a note to clarify the swap partition is '''NOT''' mounted.<br />
You will get an error message if you try.<br />
<br />
Turning on the partition with ''swapon'' command will have the desired effect of having it activated before you add it to /etc/fstab.<br />
--[[User:CaptainK|CaptainK]] ([[User talk:CaptainK|talk]]) 07:56, 12 June 2013 (UTC)<br />
<br />
== Hardware compatibility List ==<br />
<br />
The Installation Guide should refer to the Hardware compatibility List at https://wiki.archlinux.org/index.php/HCL in case specific kernel parameters are needed for the mainboard. --[[User:Qqqqqqqqq9|Qqqqqqqqq9]] ([[User talk:Qqqqqqqqq9|talk]]) 09:32, 1 August 2013 (UTC)<br />
: -1. The info in HCL is quite out of date so it should not be linked. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 13:13, 3 August 2013 (UTC)<br />
<br />
== base is redundant in pacstrap command ==<br />
<br />
pacstrap /mnt<br />
<br />
works just fine. base is installed by default. KISS, right? I'd do it myself, except it seems regular users don't have permission to edit this page.<br />
<br />
[[User:Ewtoombs|Ewtoombs]] ([[User talk:Ewtoombs|talk]]) 22:54, 10 September 2013 (UTC)<br />
<br />
== <s> simplify umount </s> ==<br />
<br />
# umount /mnt/{boot,home,}<br />
<br />
could be replaced with<br />
<br />
# umount -R /mnt<br />
<br />
which will umount everything under /mnt recursively. This is simpler because the user doesn't have to explicitly specify everything he mounted under /mnt.<br />
[[User:65kid|65kid]] ([[User talk:65kid|talk]]) 11:53, 14 September 2013 (UTC)<br />
: Done. Thanks. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 00:28, 27 October 2013 (UTC)<br />
<br />
== Clarify that vconsole.conf must be created ==<br />
<br />
Example: "Add console keymap and font preferences in /etc/vconsole.conf. This file must be created by you."<br />
<br />
: Please read [[#Read this first before add new suggestion]], first point... [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 20:46, 5 October 2013 (UTC)<br />
<br />
== genfstab, add -U for uuid ==<br />
<br />
see heading<br />
<br />
==<s>Add quick note for order in mount section</s>==<br />
<br />
Would like to see a quick note stating that / should be mount before the other partitions or un-intentional unmounts will occur. I've installed Arch several times before, but forgetting this tiny tid-bit had me really confused for hours.<br />
<br />
:(Please sign your edits in talk pages, see [[Help:Discussion]])<br />
:Does [https://wiki.archlinux.org/index.php?title=Installation_Guide&diff=283024&oldid=279942] make it clear enough?<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 01:23, 16 November 2013 (UTC)<br />
<br />
::Close. I would like an explicit order word in there. Maybe the first sentence to mount root should use the word "First". Or perhaps instead of "then" say "Followed by". I can understand wanting to cut out wordy-ness here, so it's really your discretion. Thanks for considering this.<br />
<br />
:::All right, I've changed "then" to "after that", which does feel stronger. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 07:27, 17 November 2013 (UTC)<br />
<br />
==<s>ATI video Driver</s>==<br />
<br />
Modify Propietary ATI {{Pkg|catalyst}} reference<br />
<br />
:Better fix: [https://wiki.archlinux.org/index.php?title=Installation_Guide&diff=283482&oldid=283317] :)<br />
:Please update [[Xorg#Driver installation]] and/or [[AMD Catalyst]] if needed.<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:20, 18 November 2013 (UTC)<br />
<br />
== Install from Existing Linux ==<br />
<br />
Having a reference to [[Install from Existing Linux]] somewhere around the top of the article would be really helpful, as such method is otherwise too difficult to find.<br />
[[User:Rvalles|Rvalles]] ([[User talk:Rvalles|talk]]) 04:18, 29 November 2013 (UTC)</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=285161Talk:Installation guide2013-11-29T04:18:19Z<p>Rvalles: /* Install from Existing Linux */ new section</p>
<hr />
<div>== Read this first before add new suggestion ==<br />
* Point of this page is to ''not'' become another Beginner's guide. It's meant to be a ''concise'' checklist of things to be done. So detailed install instruction should go to [[Beginners' Guide]]. <br />
* If there is something to discuss which should also affect the Beginner's guide, then do it on [[Talk:Beginners' Guide]]. An advanced user will find this page less bloated and easier to read, so let's KISS.<br />
<br />
== Change section "Connect to the internet" ==<br />
<br />
Since the installation guide is now part of the iso image, I'd like to see a few references to the manpages of the necessary tools here, since you cannot open the network related wiki pages. Maybe something like this would be acceptable:<br />
Assuming a wired ethernet connection, running dhclient or dhcpcd is <br />
sufficient to get a lease. Otherwise set up the connection manually<br />
using ip add, wpa_supplicant (WLAN with WPA), pppoe-setup (DSL), etc.<br />
You can also create and use netcfg profiles. Read more in the manpages:<br />
ip(8), wpa_supplicant(8), pppoe(8), netcfg(8), netcfg-profiles(5)<br />
A reminder to install the packages for the internet connection in the pacstrap section would also be nice. -- [[User:progandy|progandy]]<br />
<br />
== Suggestions to update this guide as part of ISO ==<br />
Since this guide is now being included as 'install.txt' in the ISO, it might be beneficial to incorporate the following changes:<br />
* Entirely remove the '''1. Download''' section and move it to the Download area of the archlinux.org page. This document here is about installing, not downloading, checking, burning discs or dd'ing. The majority of users reading this have likely already booted up the install medium.<br />
* Begin or end the document by mentioning the new archlinux(7) man page which explains the location of important system configuration files<br />
# man archlinux<br />
* Slightly expand the '''6. Connect to the internet''' section to include the most basic examples of setting up a private network using a dynamic and static IP address. (Right now it's only a single paragraph/line.) It's a vital installation step and should actually be moved to the top as one of the first actions during system setup. This fact should be emphasized.<br />
<br />
Obtain dynamic IP <br />
# dhcpcd<br />
<br />
Set static IP<br />
# ip link set dev eth0 up<br />
# ip addr add 192.168.1.2/24 dev eth0<br />
# ip route add default via 192.168.1.1<br />
# echo "nameserver 8.8.8.8" >> /etc/resolv.conf<br />
<br />
--[[User:MajorTom|MajorTom]]<br />
<br />
:* I can agree to all your suggestions, I wonder why no one is modifying the wiki. Internet connection setup is the most important part and should be covered more extensively. In addition to your changes, mention the manpages and configuration templates for netcfg and pppoe-setup/connect. The boot medium must at least contain easy accesible information in order to read all pages referenced in the installation guide. There should also be mentioned that elinks is installed and can be used to access the wiki. --[[User:Progandy|Progandy]] ([[User talk:Progandy|talk]]) 21:50, 24 August 2012 (UTC)<br />
<br />
:* The {{ic|dhcpcd}} network daemon is started automatically: [https://www.archlinux.org/news/install-media-20120804-available/], [https://wiki.archlinux.org/index.php/Beginners%27_Guide#Network_setup], so there's no reason to start it manually. --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 08:17, 25 August 2012 (UTC)<br />
<br />
== add a step: setting the clock ==<br />
<br />
Lots of things care about the clock being more-or-less correct, e.g. pacman-key will not work at all if the clock is too far out. Lots of brand new computers come with the clock set to something in the distant past, which causes weird problems during the install. [[User:Thetrivialstuff|Thetrivialstuff]] ([[User talk:Thetrivialstuff|talk]]) 23:14, 31 July 2012 (UTC)<br />
<br />
I agree, the instructions in "Installation Guide" leaves you without a /etc/adjtime file.<br />
The following should be added (taken from beginners guide, but shortened):<br />
Set the hardware clock and generate a {{ic|/etc/adjtime}} file with {{ic|# hwclock --systohc --utc}} or {{ic|# hwclock --systohc --localtime}}<br />
[[User:Bwid|Bwid]] ([[User talk:Bwid|talk]]) 08:03, 3 March 2013 (UTC)<br />
:There's no need for an adjtime file, but it does make sense to have people use {{ic|timedatectl}} from the live media to set the clock correctly. -- [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 03:30, 15 March 2013 (UTC)<br />
<br />
== pacman-key --init / populate? ==<br />
<br />
Isn't this a required step? pacstrap does not seem to do it on its own. [[User:Thetrivialstuff|Thetrivialstuff]] ([[User talk:Thetrivialstuff|talk]]) 23:15, 31 July 2012 (UTC)<br />
:Edit: Ah; I think this was related to the "set the clock" step -- I see that there is a pacman keyring init in the boot sequence of the latest media, but it (silently?) fails if the local clock is wrong.<br />
::https://mailman.archlinux.org/pipermail/arch-releng/2012-July/002708.html --[[User:Bluewind|Bluewind]] ([[User talk:Bluewind|talk]]) 09:10, 1 August 2012 (UTC)<br />
This really need to be included on tutorial before pacstrap. Otherwise it will not work. [[User:Michelboaventura|Michelboaventura]] ([[User talk:Michelboaventura|talk]]) 16:49, 20 September 2013 (UTC)<br />
<br />
==Proposed changes to Beginners' Guide and link to Post-Installation==<br />
Some major changes are under discussion in [[Talk:Beginners'_Guide#Guide_restructuring]]: some of them would require adjustments to this very guide, see for example [https://wiki.archlinux.org/index.php?title=Talk%3ABeginners%27_Guide&diff=224578&oldid=224567 this post].<br />
<br />
Please reply in the linked discussion, '''not''' here.<br />
<br />
-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 12:15, 22 September 2012 (UTC)<br />
<br />
:I've added the steps in [[Beginners' Guide/Post-Installation]] to this guide, which now directly sends users to [[Beginners' Guide/Extra]].<br />
:If however [[Talk:Beginners' Guide#Guide restructuring]] will be implemented as planned, the [[Beginners' Guide]] will have a slightly different installation procedure than this guide, unless this one is updated too.<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:08, 24 September 2012 (UTC)<br />
<br />
::Shouldn't the information be added ''before'' "Unmount leftovers and reboot" ? By the way, the title should mention rebooting, because most likely a kernel update was involved. --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 14:41, 24 September 2012 (UTC)<br />
<br />
:::The link to Post-Installation was the last step of the guide, so that's the line I've replaced with the instructions from Post-Installation.<br />
:::About rebooting in case of a kernel upgrade, I don't think it's necessary to state that since this guide is aimed at experienced users.<br />
:::In any case, any reordering or modification of the various steps should better be approved by a Developer, and probably the forum or the mailing lists are better places than this talk page to involve them in such discussions.<br />
:::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:59, 24 September 2012 (UTC)<br />
<br />
::::Yeah, but at this point, you were instructed to reboot. In order to edit {{ic|pacman.conf}}, you need to mount the root partition. And to update your system, you need to chroot into it. It would be better if "Unmount leftovers" was renamed "Unmount leftovers and reboot", and added at the end (before the suggestion to read the instructions from '''Extra'''). --[[User:DSpider|DSpider]] ([[User talk:DSpider|talk]]) 15:07, 24 September 2012 (UTC)<br />
<br />
:::::You are still instructed to reboot, aren't you? The "Unmount leftovers" section currently tells you to ''"reboot and then login into the new system with the root account"''. In the "new system", the correct partition is already mounted at /.<br />
:::::Whether or not configuring pacman, updating the system and adding a user would be better done in the chroot before rebooting, it's something that should be discussed with a Developer. I too think that it would make more sense, requiring one less reboot in case of a kernel upgrade.<br />
:::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:18, 24 September 2012 (UTC)<br />
:::::Renaming "Unmount leftovers" to "Unmount leftovers and reboot" is safe anyway, so I've done that. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:37, 24 September 2012 (UTC)<br />
:::::@DSpider: you're quite active on the forum, why don't you propose your idea there? I think it would be interesting to discuss it. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:11, 25 September 2012 (UTC)<br />
:::::Ok, after reading [https://wiki.archlinux.org/index.php?title=Talk%3AInstallation_Guide&diff=226203&oldid=225070 this] I realize that maybe I haven't been clear enough, so I'll try to explain everything more thoroughly.<br />
:::::#The current procedure makes you [[Installation_Guide#Configure_the_system|configure the system]] in the '''chroot''' environment from the '''live''' system.<br />
:::::#Then, still in the '''live''' system, it [[Installation_Guide#Unmount and reboot|asks]] you to '''exit''' the chroot, unmount the partitions for the '''new''' system, '''reboot''' and login into the '''new''' system. Now, I refuse to write more explicitly in the guide that you should boot into the '''new''' system, and not again in the '''live''' system, in order to login into the new system.<br />
:::::#Since you are now into the '''new''' system ('''not''' the live system), the root partition is mounted at {{ic|/}}, not at {{ic|/mnt/}}, so you should be able to configure pacman, update the system and add a user wihtout chrooting. Now, if you've tested the procedure and really noticed that for some obscure-to-me reason you still need to chroot to /mnt in order to do those operations, please ask for clarifications in the forum because I wouldn't be able to answer any more.<br />
:::::Last thing, and I think this is the 3rd or 4th time I write it, I '''agree''' with you that configuring pacman etc. could easily be done in the chroot environment at step 1, but you should '''propose''' that change '''in the forum''' first, since it would be a change in the official installation procedure and I won't take responsibility for that.<br />
:::::I think this is the best I can do here, the next step to explain all this could be making a movie or a five-act play, but I hope it's not necessary :)<br />
:::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 05:56, 30 September 2012 (UTC)<br />
<br />
== Mounting the Swap partition. ==<br />
<br />
Just a note to clarify the swap partition is '''NOT''' mounted.<br />
You will get an error message if you try.<br />
<br />
Turning on the partition with ''swapon'' command will have the desired effect of having it activated before you add it to /etc/fstab.<br />
--[[User:CaptainK|CaptainK]] ([[User talk:CaptainK|talk]]) 07:56, 12 June 2013 (UTC)<br />
<br />
== Hardware compatibility List ==<br />
<br />
The Installation Guide should refer to the Hardware compatibility List at https://wiki.archlinux.org/index.php/HCL in case specific kernel parameters are needed for the mainboard. --[[User:Qqqqqqqqq9|Qqqqqqqqq9]] ([[User talk:Qqqqqqqqq9|talk]]) 09:32, 1 August 2013 (UTC)<br />
: -1. The info in HCL is quite out of date so it should not be linked. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 13:13, 3 August 2013 (UTC)<br />
<br />
== base is redundant in pacstrap command ==<br />
<br />
pacstrap /mnt<br />
<br />
works just fine. base is installed by default. KISS, right? I'd do it myself, except it seems regular users don't have permission to edit this page.<br />
<br />
[[User:Ewtoombs|Ewtoombs]] ([[User talk:Ewtoombs|talk]]) 22:54, 10 September 2013 (UTC)<br />
<br />
== <s> simplify umount </s> ==<br />
<br />
# umount /mnt/{boot,home,}<br />
<br />
could be replaced with<br />
<br />
# umount -R /mnt<br />
<br />
which will umount everything under /mnt recursively. This is simpler because the user doesn't have to explicitly specify everything he mounted under /mnt.<br />
[[User:65kid|65kid]] ([[User talk:65kid|talk]]) 11:53, 14 September 2013 (UTC)<br />
: Done. Thanks. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 00:28, 27 October 2013 (UTC)<br />
<br />
== Clarify that vconsole.conf must be created ==<br />
<br />
Example: "Add console keymap and font preferences in /etc/vconsole.conf. This file must be created by you."<br />
<br />
: Please read [[#Read this first before add new suggestion]], first point... [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 20:46, 5 October 2013 (UTC)<br />
<br />
== genfstab, add -U for uuid ==<br />
<br />
see heading<br />
<br />
==<s>Add quick note for order in mount section</s>==<br />
<br />
Would like to see a quick note stating that / should be mount before the other partitions or un-intentional unmounts will occur. I've installed Arch several times before, but forgetting this tiny tid-bit had me really confused for hours.<br />
<br />
:(Please sign your edits in talk pages, see [[Help:Discussion]])<br />
:Does [https://wiki.archlinux.org/index.php?title=Installation_Guide&diff=283024&oldid=279942] make it clear enough?<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 01:23, 16 November 2013 (UTC)<br />
<br />
::Close. I would like an explicit order word in there. Maybe the first sentence to mount root should use the word "First". Or perhaps instead of "then" say "Followed by". I can understand wanting to cut out wordy-ness here, so it's really your discretion. Thanks for considering this.<br />
<br />
:::All right, I've changed "then" to "after that", which does feel stronger. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 07:27, 17 November 2013 (UTC)<br />
<br />
==<s>ATI video Driver</s>==<br />
<br />
Modify Propietary ATI {{Pkg|catalyst}} reference<br />
<br />
:Better fix: [https://wiki.archlinux.org/index.php?title=Installation_Guide&diff=283482&oldid=283317] :)<br />
:Please update [[Xorg#Driver installation]] and/or [[AMD Catalyst]] if needed.<br />
:-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:20, 18 November 2013 (UTC)<br />
<br />
== Install from Existing Linux ==<br />
<br />
Having a reference to [[Install from Existing Linux]] somewhere around the top of the article would be really helpful, as such method is otherwise too difficult to find.</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Beginners%27_guide/Preparation&diff=285160Beginners' guide/Preparation2013-11-29T04:15:36Z<p>Rvalles: Since I added a non "boot install medium" install method, some rearrangement is necessary.</p>
<hr />
<div><noinclude><br />
[[Category:Getting and installing Arch]]<br />
[[Category:About Arch]]<br />
[[ar:Beginners' Guide/Preparation]]<br />
[[cs:Beginners' Guide/Preparation]]<br />
[[da:Beginners' Guide/Preparation]]<br />
[[el:Beginners' Guide/Preparation]]<br />
[[es:Beginners' Guide/Preparation]]<br />
[[hr:Beginners' Guide/Preparation]]<br />
[[hu:Beginners' Guide/Preparation]]<br />
[[id:Beginners' Guide/Preparation]]<br />
[[it:Beginners' Guide/Preparation]]<br />
[[ja:Beginners' Guide/Preparation]]<br />
[[ko:Beginners' Guide/Preparation]]<br />
[[pl:Beginners' Guide/Preparation]]<br />
[[pt:Beginners' Guide/Preparation]]<br />
[[ro:Ghidul începătorilor/Preparare]]<br />
[[ru:Beginners' Guide/Preparation]]<br />
[[sr:Beginners' Guide/Preparation]]<br />
[[zh-CN:Beginners' Guide/Preparation]]<br />
[[zh-TW:Beginners' Guide/Preparation]]<br />
{{Tip|This is part of a multi-page article for the Beginners' Guide. '''[[Beginners' Guide|Click here]]''' if you would rather read the guide in its entirety.}}<br />
</noinclude><br />
This document will guide you through the process of installing [[Arch Linux]] using the [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts]. Before installing, you are advised to skim over the [[FAQ]].<br />
<br />
The community-maintained [[Main Page|ArchWiki]] is the primary resource that should be consulted if issues arise. The [[IRC Channel]] (irc://irc.freenode.net/#archlinux) and the [https://bbs.archlinux.org/ forums] are also excellent resources if an answer cannot be found elsewhere. In accordance with the [[The Arch Way|Arch Way]], you are encouraged to type {{ic|man ''command''}} to read the {{ic|man}} page of any command you are unfamiliar with.<br />
<br />
== Preparation ==<br />
<br />
{{Note|If you wish to install from an existing GNU/Linux distribution, please see [[Install from Existing Linux|this article]]. This can be useful particularly if you plan to install Arch via [[VNC]] or [[SSH]] remotely. Users seeking to perform the Arch Linux installation remotely via an [[SSH]] connection should read [[Install from SSH]] for additional tips.}}<br />
<br />
=== System requirements ===<br />
<br />
Arch Linux should run on any i686 compatible machine with a minimum of 64 MB RAM. A basic installation with all packages from the {{Grp|base}} group should take about 500 MB of disk space. If you are working with limited space, this can be trimmed down considerably, but you will have to know what you're doing.<br />
<br />
=== Prepare the latest installation medium ===<br />
<br />
The latest release of the installation media can be obtained from the [https://archlinux.org/download/ Download] page. Note that the single ISO image supports both 32 and 64-bit architectures. It is highly recommended to always use the latest ISO image.<br />
<br />
* Install images are signed and it is highly recommend to verify their signature before use: this can be done by downloading the ''.sig'' file from the download page (or one of the mirrors listed there) to the same directory as the ''.iso'' file and then using {{ic|pacman-key -v ''iso-file''.sig}}.<br />
<br />
* Burn the ISO image on a CD or DVD with your preferred software. On Arch, that's covered in [[CD_Burning#Burning]].<br />
:{{Note|The quality of optical drives and the discs themselves varies greatly. Generally, using a slow burn speed is recommended for reliable burns. If you are experiencing unexpected behaviour from the disc, try burning at the lowest speed supported by your burner.}}<br />
<br />
* Or you can write the ISO image to a USB stick. For detailed instructions, see [[USB Installation Media]].<br />
<br />
==== Installing over the network ====<br />
<br />
Instead of writing the boot media to a disc or USB stick, you may alternatively boot the .iso image over the network. This works well when you already have a server set up. Please see [[Install Arch from network (via PXE)|this article]] for more information, and then continue to [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
==== Install from an existing Linux system ====<br />
<br />
Alternatively, it is possible to install from an already running Linux system. See [[Install from Existing Linux]].<br />
<br />
==== Installing on a virtual machine ====<br />
<br />
Installing on a [[Wikipedia:Virtual machine|virtual machine]] is a good way to become familiar with Arch Linux and its installation procedure without leaving your current operating system and repartitioning the storage drive. It will also let you keep this Beginners' Guide open in your browser throughout the installation. Some users may find it beneficial to have an independent Arch Linux system on a virtual drive, for testing purposes.<br />
<br />
Examples of virtualization software are [[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Varch]], [[Parallels]].<br />
<br />
The exact procedure for preparing a virtual machine depends on the software, but will generally follow these steps:<br />
<br />
# Create the virtual disk image that will host the operating system.<br />
# Properly configure the virtual machine parameters.<br />
# Boot the downloaded ISO image with a virtual CD drive.<br />
# Continue with [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
The following articles may be helpful:<br />
<br />
* [[VirtualBox#Arch Linux as a guest in a Virtual Machine|Arch Linux as VirtualBox guest]]<br />
* [[VirtualBox Arch Linux Guest On Physical Drive|Arch Linux as VirtualBox guest on a physical drive]]<br />
* [[Installing Arch Linux in VMware|Arch Linux as VMware guest]]<br />
* [[Moving an existing install into (or out of) a virtual machine]]<br />
<br />
==== Boot the installation medium ====<br />
<br />
First, you may have to change the boot order in your computer's BIOS. <br />
To do this, press a key (usually {{ic|Delete}}, {{ic|F1}}, {{ic|F2}}, {{ic|F11}} or {{ic|F12}}) during the [[Wikipedia:Power-on self test|POST]] phase. This will take you into the BIOS settings screen where you can set the order in which the system searches for devices to boot from. Select "Save & Exit" (or your BIOS's equivalent) and the computer should then complete its normal boot process. <br />
When the Arch menu appears, select "Boot Arch Linux" and press {{ic|Enter}} to enter the live environment where you will run the actual installation<br />
(if booting from a UEFI boot disk, the option may look more like "Arch Linux archiso x86_64 UEFI").<br />
<br />
Once you have booted into the live environment, your shell is [[Zsh]]; this will provide you advanced Tab completion, and other features as part of the [http://grml.org/zsh/ grml config].<br />
<br />
===== Testing if you are booted into UEFI mode =====<br />
<br />
In case you have a [[UEFI]] motherboard and UEFI Boot mode is enabled (and is preferred over BIOS/Legacy mode), the CD/USB will automatically launch Arch Linux kernel (Kernel [[EFISTUB]] via [[Gummiboot]]). To test if you have booted into UEFI mode run:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # ignore if already mounted<br />
# efivar -l<br />
<br />
If efivar lists the uefi variables properly, then you have booted in UEFI mode. If not check whether all the requirements listed at [[Unified Extensible Firmware Interface#Requirements for UEFI Variables support to work properly]] are met.<br />
<br />
==== Troubleshooting boot problems ====<br />
<br />
* If you are using an Intel video chipset and the screen goes blank during the boot process, the problem is likely an issue with [[Kernel Mode Setting]]. A possible workaround may be achieved by rebooting and pressing {{ic|e}} over the entry that you are trying to boot (i686 or x86_64). At the end of the string type {{ic|nomodeset}} and press {{ic|Enter}}. Alternatively, try {{ic|1=video=SVIDEO-1:d}} which, if it works, will not disable kernel mode setting. You can also try {{ic|1=i915.modeset=0}}. See the [[Intel]] article for more information.<br />
<br />
* If the screen does ''not'' go blank and the boot process gets stuck while trying to load the kernel, press {{ic|Tab}} while hovering over the menu entry, type {{ic|1=acpi=off}} at the end of the string and press {{ic|Enter}}.<noinclude><br />
{{Beginners' Guide navigation}}</noinclude></div>Rvalleshttps://wiki.archlinux.org/index.php?title=Beginners%27_guide/Preparation&diff=285158Beginners' guide/Preparation2013-11-29T04:09:53Z<p>Rvalles: Added "Install from existing Linux" as I needed to do that (install CD just reboots before it shows a bootloader menu) and took some efford to find how.</p>
<hr />
<div><noinclude><br />
[[Category:Getting and installing Arch]]<br />
[[Category:About Arch]]<br />
[[ar:Beginners' Guide/Preparation]]<br />
[[cs:Beginners' Guide/Preparation]]<br />
[[da:Beginners' Guide/Preparation]]<br />
[[el:Beginners' Guide/Preparation]]<br />
[[es:Beginners' Guide/Preparation]]<br />
[[hr:Beginners' Guide/Preparation]]<br />
[[hu:Beginners' Guide/Preparation]]<br />
[[id:Beginners' Guide/Preparation]]<br />
[[it:Beginners' Guide/Preparation]]<br />
[[ja:Beginners' Guide/Preparation]]<br />
[[ko:Beginners' Guide/Preparation]]<br />
[[pl:Beginners' Guide/Preparation]]<br />
[[pt:Beginners' Guide/Preparation]]<br />
[[ro:Ghidul începătorilor/Preparare]]<br />
[[ru:Beginners' Guide/Preparation]]<br />
[[sr:Beginners' Guide/Preparation]]<br />
[[zh-CN:Beginners' Guide/Preparation]]<br />
[[zh-TW:Beginners' Guide/Preparation]]<br />
{{Tip|This is part of a multi-page article for the Beginners' Guide. '''[[Beginners' Guide|Click here]]''' if you would rather read the guide in its entirety.}}<br />
</noinclude><br />
This document will guide you through the process of installing [[Arch Linux]] using the [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts]. Before installing, you are advised to skim over the [[FAQ]].<br />
<br />
The community-maintained [[Main Page|ArchWiki]] is the primary resource that should be consulted if issues arise. The [[IRC Channel]] (irc://irc.freenode.net/#archlinux) and the [https://bbs.archlinux.org/ forums] are also excellent resources if an answer cannot be found elsewhere. In accordance with the [[The Arch Way|Arch Way]], you are encouraged to type {{ic|man ''command''}} to read the {{ic|man}} page of any command you are unfamiliar with.<br />
<br />
== Preparation ==<br />
<br />
{{Note|If you wish to install from an existing GNU/Linux distribution, please see [[Install from Existing Linux|this article]]. This can be useful particularly if you plan to install Arch via [[VNC]] or [[SSH]] remotely. Users seeking to perform the Arch Linux installation remotely via an [[SSH]] connection should read [[Install from SSH]] for additional tips.}}<br />
<br />
=== System requirements ===<br />
<br />
Arch Linux should run on any i686 compatible machine with a minimum of 64 MB RAM. A basic installation with all packages from the {{Grp|base}} group should take about 500 MB of disk space. If you are working with limited space, this can be trimmed down considerably, but you will have to know what you're doing.<br />
<br />
=== Burn or write the latest installation medium ===<br />
<br />
The latest release of the installation media can be obtained from the [https://archlinux.org/download/ Download] page. Note that the single ISO image supports both 32 and 64-bit architectures. It is highly recommended to always use the latest ISO image.<br />
<br />
* Install images are signed and it is highly recommend to verify their signature before use: this can be done by downloading the ''.sig'' file from the download page (or one of the mirrors listed there) to the same directory as the ''.iso'' file and then using {{ic|pacman-key -v ''iso-file''.sig}}.<br />
<br />
* Burn the ISO image on a CD or DVD with your preferred software. On Arch, that's covered in [[CD_Burning#Burning]].<br />
:{{Note|The quality of optical drives and the discs themselves varies greatly. Generally, using a slow burn speed is recommended for reliable burns. If you are experiencing unexpected behaviour from the disc, try burning at the lowest speed supported by your burner.}}<br />
<br />
* Or you can write the ISO image to a USB stick. For detailed instructions, see [[USB Installation Media]].<br />
<br />
==== Installing over the network ====<br />
<br />
Instead of writing the boot media to a disc or USB stick, you may alternatively boot the .iso image over the network. This works well when you already have a server set up. Please see [[Install Arch from network (via PXE)|this article]] for more information, and then continue to [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
==== Installing on a virtual machine ====<br />
<br />
Installing on a [[Wikipedia:Virtual machine|virtual machine]] is a good way to become familiar with Arch Linux and its installation procedure without leaving your current operating system and repartitioning the storage drive. It will also let you keep this Beginners' Guide open in your browser throughout the installation. Some users may find it beneficial to have an independent Arch Linux system on a virtual drive, for testing purposes.<br />
<br />
Examples of virtualization software are [[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Varch]], [[Parallels]].<br />
<br />
The exact procedure for preparing a virtual machine depends on the software, but will generally follow these steps:<br />
<br />
# Create the virtual disk image that will host the operating system.<br />
# Properly configure the virtual machine parameters.<br />
# Boot the downloaded ISO image with a virtual CD drive.<br />
# Continue with [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
The following articles may be helpful:<br />
<br />
* [[VirtualBox#Arch Linux as a guest in a Virtual Machine|Arch Linux as VirtualBox guest]]<br />
* [[VirtualBox Arch Linux Guest On Physical Drive|Arch Linux as VirtualBox guest on a physical drive]]<br />
* [[Installing Arch Linux in VMware|Arch Linux as VMware guest]]<br />
* [[Moving an existing install into (or out of) a virtual machine]]<br />
<br />
=== Boot the installation medium ===<br />
<br />
First, you may have to change the boot order in your computer's BIOS. <br />
To do this, press a key (usually {{ic|Delete}}, {{ic|F1}}, {{ic|F2}}, {{ic|F11}} or {{ic|F12}}) during the [[Wikipedia:Power-on self test|POST]] phase. This will take you into the BIOS settings screen where you can set the order in which the system searches for devices to boot from. Select "Save & Exit" (or your BIOS's equivalent) and the computer should then complete its normal boot process. <br />
When the Arch menu appears, select "Boot Arch Linux" and press {{ic|Enter}} to enter the live environment where you will run the actual installation<br />
(if booting from a UEFI boot disk, the option may look more like "Arch Linux archiso x86_64 UEFI").<br />
<br />
Once you have booted into the live environment, your shell is [[Zsh]]; this will provide you advanced Tab completion, and other features as part of the [http://grml.org/zsh/ grml config].<br />
<br />
==== Testing if you are booted into UEFI mode ====<br />
<br />
In case you have a [[UEFI]] motherboard and UEFI Boot mode is enabled (and is preferred over BIOS/Legacy mode), the CD/USB will automatically launch Arch Linux kernel (Kernel [[EFISTUB]] via [[Gummiboot]]). To test if you have booted into UEFI mode run:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # ignore if already mounted<br />
# efivar -l<br />
<br />
If efivar lists the uefi variables properly, then you have booted in UEFI mode. If not check whether all the requirements listed at [[Unified Extensible Firmware Interface#Requirements for UEFI Variables support to work properly]] are met.<br />
<br />
==== Troubleshooting boot problems ====<br />
<br />
* If you are using an Intel video chipset and the screen goes blank during the boot process, the problem is likely an issue with [[Kernel Mode Setting]]. A possible workaround may be achieved by rebooting and pressing {{ic|e}} over the entry that you are trying to boot (i686 or x86_64). At the end of the string type {{ic|nomodeset}} and press {{ic|Enter}}. Alternatively, try {{ic|1=video=SVIDEO-1:d}} which, if it works, will not disable kernel mode setting. You can also try {{ic|1=i915.modeset=0}}. See the [[Intel]] article for more information.<br />
<br />
* If the screen does ''not'' go blank and the boot process gets stuck while trying to load the kernel, press {{ic|Tab}} while hovering over the menu entry, type {{ic|1=acpi=off}} at the end of the string and press {{ic|Enter}}.<noinclude><br />
{{Beginners' Guide navigation}}</noinclude><br />
<br />
=== Install from existing Linux system ===<br />
<br />
Alternatively, it is possible to install from an already running Linux system. See [[Install_from_Existing_Linux]].</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Beginners%27_guide/Preparation&diff=285151Beginners' guide/Preparation2013-11-29T03:06:36Z<p>Rvalles: /* Burn or write the latest installation medium */ -> Added link to burning in Arch</p>
<hr />
<div><noinclude><br />
[[Category:Getting and installing Arch]]<br />
[[Category:About Arch]]<br />
[[ar:Beginners' Guide/Preparation]]<br />
[[cs:Beginners' Guide/Preparation]]<br />
[[da:Beginners' Guide/Preparation]]<br />
[[el:Beginners' Guide/Preparation]]<br />
[[es:Beginners' Guide/Preparation]]<br />
[[hr:Beginners' Guide/Preparation]]<br />
[[hu:Beginners' Guide/Preparation]]<br />
[[id:Beginners' Guide/Preparation]]<br />
[[it:Beginners' Guide/Preparation]]<br />
[[ja:Beginners' Guide/Preparation]]<br />
[[ko:Beginners' Guide/Preparation]]<br />
[[pl:Beginners' Guide/Preparation]]<br />
[[pt:Beginners' Guide/Preparation]]<br />
[[ro:Ghidul începătorilor/Preparare]]<br />
[[ru:Beginners' Guide/Preparation]]<br />
[[sr:Beginners' Guide/Preparation]]<br />
[[zh-CN:Beginners' Guide/Preparation]]<br />
[[zh-TW:Beginners' Guide/Preparation]]<br />
{{Tip|This is part of a multi-page article for the Beginners' Guide. '''[[Beginners' Guide|Click here]]''' if you would rather read the guide in its entirety.}}<br />
</noinclude><br />
This document will guide you through the process of installing [[Arch Linux]] using the [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts]. Before installing, you are advised to skim over the [[FAQ]].<br />
<br />
The community-maintained [[Main Page|ArchWiki]] is the primary resource that should be consulted if issues arise. The [[IRC Channel]] (irc://irc.freenode.net/#archlinux) and the [https://bbs.archlinux.org/ forums] are also excellent resources if an answer cannot be found elsewhere. In accordance with the [[The Arch Way|Arch Way]], you are encouraged to type {{ic|man ''command''}} to read the {{ic|man}} page of any command you are unfamiliar with.<br />
<br />
== Preparation ==<br />
<br />
{{Note|If you wish to install from an existing GNU/Linux distribution, please see [[Install from Existing Linux|this article]]. This can be useful particularly if you plan to install Arch via [[VNC]] or [[SSH]] remotely. Users seeking to perform the Arch Linux installation remotely via an [[SSH]] connection should read [[Install from SSH]] for additional tips.}}<br />
<br />
=== System requirements ===<br />
<br />
Arch Linux should run on any i686 compatible machine with a minimum of 64 MB RAM. A basic installation with all packages from the {{Grp|base}} group should take about 500 MB of disk space. If you are working with limited space, this can be trimmed down considerably, but you will have to know what you're doing.<br />
<br />
=== Burn or write the latest installation medium ===<br />
<br />
The latest release of the installation media can be obtained from the [https://archlinux.org/download/ Download] page. Note that the single ISO image supports both 32 and 64-bit architectures. It is highly recommended to always use the latest ISO image.<br />
<br />
* Install images are signed and it is highly recommend to verify their signature before use: this can be done by downloading the ''.sig'' file from the download page (or one of the mirrors listed there) to the same directory as the ''.iso'' file and then using {{ic|pacman-key -v ''iso-file''.sig}}.<br />
<br />
* Burn the ISO image on a CD or DVD with your preferred software. On Arch, that's covered in [[CD_Burning#Burning]].<br />
:{{Note|The quality of optical drives and the discs themselves varies greatly. Generally, using a slow burn speed is recommended for reliable burns. If you are experiencing unexpected behaviour from the disc, try burning at the lowest speed supported by your burner.}}<br />
<br />
* Or you can write the ISO image to a USB stick. For detailed instructions, see [[USB Installation Media]].<br />
<br />
==== Installing over the network ====<br />
<br />
Instead of writing the boot media to a disc or USB stick, you may alternatively boot the .iso image over the network. This works well when you already have a server set up. Please see [[Install Arch from network (via PXE)|this article]] for more information, and then continue to [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
==== Installing on a virtual machine ====<br />
<br />
Installing on a [[Wikipedia:Virtual machine|virtual machine]] is a good way to become familiar with Arch Linux and its installation procedure without leaving your current operating system and repartitioning the storage drive. It will also let you keep this Beginners' Guide open in your browser throughout the installation. Some users may find it beneficial to have an independent Arch Linux system on a virtual drive, for testing purposes.<br />
<br />
Examples of virtualization software are [[VirtualBox]], [[VMware]], [[QEMU]], [[Xen]], [[Varch]], [[Parallels]].<br />
<br />
The exact procedure for preparing a virtual machine depends on the software, but will generally follow these steps:<br />
<br />
# Create the virtual disk image that will host the operating system.<br />
# Properly configure the virtual machine parameters.<br />
# Boot the downloaded ISO image with a virtual CD drive.<br />
# Continue with [[#Boot the installation medium|Boot the installation medium]].<br />
<br />
The following articles may be helpful:<br />
<br />
* [[VirtualBox#Arch Linux as a guest in a Virtual Machine|Arch Linux as VirtualBox guest]]<br />
* [[VirtualBox Arch Linux Guest On Physical Drive|Arch Linux as VirtualBox guest on a physical drive]]<br />
* [[Installing Arch Linux in VMware|Arch Linux as VMware guest]]<br />
* [[Moving an existing install into (or out of) a virtual machine]]<br />
<br />
=== Boot the installation medium ===<br />
<br />
First, you may have to change the boot order in your computer's BIOS. <br />
To do this, press a key (usually {{ic|Delete}}, {{ic|F1}}, {{ic|F2}}, {{ic|F11}} or {{ic|F12}}) during the [[Wikipedia:Power-on self test|POST]] phase. This will take you into the BIOS settings screen where you can set the order in which the system searches for devices to boot from. Select "Save & Exit" (or your BIOS's equivalent) and the computer should then complete its normal boot process. <br />
When the Arch menu appears, select "Boot Arch Linux" and press {{ic|Enter}} to enter the live environment where you will run the actual installation<br />
(if booting from a UEFI boot disk, the option may look more like "Arch Linux archiso x86_64 UEFI").<br />
<br />
Once you have booted into the live environment, your shell is [[Zsh]]; this will provide you advanced Tab completion, and other features as part of the [http://grml.org/zsh/ grml config].<br />
<br />
==== Testing if you are booted into UEFI mode ====<br />
<br />
In case you have a [[UEFI]] motherboard and UEFI Boot mode is enabled (and is preferred over BIOS/Legacy mode), the CD/USB will automatically launch Arch Linux kernel (Kernel [[EFISTUB]] via [[Gummiboot]]). To test if you have booted into UEFI mode run:<br />
<br />
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # ignore if already mounted<br />
# efivar -l<br />
<br />
If efivar lists the uefi variables properly, then you have booted in UEFI mode. If not check whether all the requirements listed at [[Unified Extensible Firmware Interface#Requirements for UEFI Variables support to work properly]] are met.<br />
<br />
==== Troubleshooting boot problems ====<br />
<br />
* If you are using an Intel video chipset and the screen goes blank during the boot process, the problem is likely an issue with [[Kernel Mode Setting]]. A possible workaround may be achieved by rebooting and pressing {{ic|e}} over the entry that you are trying to boot (i686 or x86_64). At the end of the string type {{ic|nomodeset}} and press {{ic|Enter}}. Alternatively, try {{ic|1=video=SVIDEO-1:d}} which, if it works, will not disable kernel mode setting. You can also try {{ic|1=i915.modeset=0}}. See the [[Intel]] article for more information.<br />
<br />
* If the screen does ''not'' go blank and the boot process gets stuck while trying to load the kernel, press {{ic|Tab}} while hovering over the menu entry, type {{ic|1=acpi=off}} at the end of the string and press {{ic|Enter}}.<noinclude><br />
{{Beginners' Guide navigation}}</noinclude></div>Rvalleshttps://wiki.archlinux.org/index.php?title=Rutorrent_with_lighttpd&diff=255873Rutorrent with lighttpd2013-05-02T13:33:39Z<p>Rvalles: removing annoying indentation in code blocks (done enough)</p>
<hr />
<div>[[Category:Internet Applications]]<br />
[http://code.google.com/p/rutorrent/ Rutorrent] is a php frontend to the [http://libtorrent.rakshasa.no/ rtorrent] bitorrent client.<br />
<br />
It communicates with rtorrent using XML-RPC. It requires a web server such as lighttpd or apache to serve it's pages.<br />
<br />
To set up rutorrent, we will need to have rtorrent and lighttpd set up.<br />
<br />
== rtorrent ==<br />
<br />
Install rtorrent and configure to your liking.<br />
<br />
# pacman -S rtorrent<br />
<br />
Information on configuring rtorrent can be found on it's wiki page: https://wiki.archlinux.org/index.php/Rtorrent.<br />
<br />
rtorrent in the repos should be compiled with XML-RPC support.<br />
<br />
Add the following line to your rtorrent config file, usually ~/.rtorrent.rc.<br />
<br />
scgi_port = localhost:5050<br />
<br />
Instead of using a tcp port, it is also possible to use a socket using the scgi_local option instead. This did not work for me, as lighttpd complained about permissions regardless of permissions / location of socket file.<br />
<br />
You can choose a port other than 5050 if you like.<br />
<br />
== lighttpd ==<br />
<br />
Install lighthttp and php.<br />
<br />
# pacman -S lighttpd php php-cgi<br />
<br />
Information on setting up lighthttp can be found on it's wiki page: https://wiki.archlinux.org/index.php/Lighttpd<br />
<br />
After starting lighthttp as per the wiki, you should be able to access the test page at http://localhost:80.<br />
<br />
By default the pages are served from /srv/http, this is where we will be putting rutorrent.<br />
<br />
=== lighttpd.conf ===<br />
<br />
Edit lighthttpd's config file, /etc/lighttpd/lighttpd.conf.<br />
<br />
The following lines tell lighttpd to load the fastcgi and simple-cgi modules. Fast cgi is needed for rutorrent itself, and scgi for rutorrent to communicate with rtorrent.<br />
<pre>server.modules += ( "mod_fastcgi" )<br />
server.modules += ( "mod_scgi" )<br />
</pre><br />
<br />
We need to tell lighttpd how to treat files like css, images (jpg etc.), js. Otherwise it will not know what to do with them, and you may get a dialog to download the file or rutorrent will just not work properly.<br />
<br />
Here is a long list of filetypes, it is probably overkill as most of them are not needed, but easier to cover them all.<br />
<br />
Add this to /etc/lighttpd/lighttpd.conf also.<br />
<pre>mimetype.assign = (<br />
".rpm" => "application/x-rpm",<br />
".pdf" => "application/pdf",<br />
".sig" => "application/pgp-signature",<br />
".spl" => "application/futuresplash",<br />
".class" => "application/octet-stream",<br />
".ps" => "application/postscript",<br />
".torrent" => "application/x-bittorrent",<br />
".dvi" => "application/x-dvi",<br />
".gz" => "application/x-gzip",<br />
".pac" => "application/x-ns-proxy-autoconfig",<br />
".swf" => "application/x-shockwave-flash",<br />
".tar.gz" => "application/x-tgz",<br />
".tgz" => "application/x-tgz",<br />
".tar" => "application/x-tar",<br />
".zip" => "application/zip",<br />
".mp3" => "audio/mpeg",<br />
".m3u" => "audio/x-mpegurl",<br />
".wma" => "audio/x-ms-wma",<br />
".wax" => "audio/x-ms-wax",<br />
".ogg" => "application/ogg",<br />
".wav" => "audio/x-wav",<br />
".gif" => "image/gif",<br />
".jar" => "application/x-java-archive",<br />
".jpg" => "image/jpeg",<br />
".jpeg" => "image/jpeg",<br />
".png" => "image/png",<br />
".xbm" => "image/x-xbitmap",<br />
".xpm" => "image/x-xpixmap",<br />
".xwd" => "image/x-xwindowdump",<br />
".css" => "text/css",<br />
".html" => "text/html",<br />
".htm" => "text/html",<br />
".js" => "text/javascript",<br />
".asc" => "text/plain",<br />
".c" => "text/plain",<br />
".cpp" => "text/plain",<br />
".log" => "text/plain",<br />
".conf" => "text/plain",<br />
".text" => "text/plain",<br />
".txt" => "text/plain",<br />
".dtd" => "text/xml",<br />
".xml" => "text/xml",<br />
".mpeg" => "video/mpeg",<br />
".mpg" => "video/mpeg",<br />
".mov" => "video/quicktime",<br />
".qt" => "video/quicktime",<br />
".avi" => "video/x-msvideo",<br />
".asf" => "video/x-ms-asf",<br />
".asx" => "video/x-ms-asf",<br />
".wmv" => "video/x-ms-wmv",<br />
".bz2" => "application/x-bzip",<br />
".tbz" => "application/x-bzip-compressed-tar",<br />
".tar.bz2" => "application/x-bzip-compressed-tar",<br />
# default mime type<br />
"" => "application/octet-stream",<br />
)<br />
</pre><br />
<br />
Next we add the configuration for scgi to connect to rtorrent. Make sure to use the same port as when configuring rtorrent.<br />
<pre>scgi.server = ( "/RPC2" =><br />
( "127.0.0.1" =><br />
(<br />
"host" => "127.0.0.1",<br />
"port" => 5050,<br />
"check-local" => "disable"<br />
)<br />
)<br />
)<br />
</pre><br />
And finally the fastcgi settings so lighthttpd knows how to deal with php.<br />
<pre><br />
fastcgi.server = ( ".php" => ((<br />
"bin-path" => "/usr/bin/php-cgi",<br />
"socket" => "/tmp/php.socket"<br />
)))<br />
</pre><br />
==== Test ====<br />
<br />
At this point, you should be able to test if rtorrent and lighttpd's scgi are working properly using the xmlrpc command to ask rtorrent for a list of functions. ( See http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide#Usage ).<br />
<br />
$ xmlrpc localhost system.listMethods<br />
<br />
This should output a log list of methods that can be accessed through rtorrent's scgi interface. If it doesn't then something may be wrong.<br />
<br />
=== php.ini ===<br />
<br />
We need to make a small change to the open_basedir line in /etc/php/php.ini, to allow rutorrent to access the binaries it needs to run.<br />
<br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/bin<br />
<br />
The binaries are stat, id, php, curl, gzip. If these are installed somewhere other than /usr/bin, then you may need to append that to the line also.<br />
<br />
== rutorrent ==<br />
<br />
We will download rutorrent to lighttpd http directory.<br />
<br />
# cd /srv/http<br />
# wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz<br />
# tar xvfx rutorrent-3.5.tar.gz<br />
# rm rutorrent-3.5.tar.gz<br />
<br />
These should download and extract rutorrent to /srv/http. You may need to change rutorrent-3.5 to the desired version from the rutorrent website.<br />
<br />
rutorrent's config files are in '''/srv/http/rutorrent/conf/'''.<br />
<br />
We need to edit '''/srv/http/rutorrent/conf/config.php''', and change the port to the one we used in rtorrent and lighttpd.<br />
<br />
$scgi_port = 5050;<br />
$scgi_host = "127.0.0.1";<br />
<br />
Change the owner of the rutorrent to http (the user that lighttpd runs as by default).<br />
<br />
# chown -R http rutorrent<br />
<br />
== Testing ==<br />
<br />
rutorrent should now be set up.<br />
<br />
Start rtorrent, and restart lighttpd if you have not done so since changing the configuration.<br />
<br />
You should now be able to access the rutorrent interface on localhost or 127.0.0.1 on port 80 (assuming you did not change the default port for lighttpd).<br />
<br />
http://localhost<br />
<br />
== Plugins ==<br />
<br />
To install plugins for rutorrent, download the archive of the plugin you want and extract to rutorrent's plugin directory.<br />
/srv/http/rutorrent/plugins<br />
<br />
Plugins can be found on the rutorrent website: http://code.google.com/p/rutorrent/wiki/Plugins<br />
<br />
== SSL and Authentication ==<br />
<br />
=== User Authentication ===<br />
<br />
Detailed information on the different authentication methods can be found here: http://redmine.lighttpd.net/projects/1/wiki/Docs_ModAuth<br />
<br />
In this example we will digest authentication with htdigest method.<br />
<br />
In your lighttpd directory, we will create a file called "lighttpd-htdigest.user" or some other filename of your choice to hold the passwords.<br />
<br />
For htdigest, the format of the lines is:<br />
<br />
username:Realm:hash<br />
<br />
Username is your desired username, Realm is a name you chose to give to the access level. Hash is an md5sum of a string that looks like:<br />
<br />
username:Realm:password<br />
<br />
So your actual password is not stored in the file, it just contributes to the md5sum.<br />
<br />
So using username: 'tom', Realm: 'rtorrent' and password: 'secret_pass', we can obtain the hash by running:<br />
<br />
$ echo -n "tom:rtorrent:secret_pass" | md5sum | cut -b -32<br />
a4aaa1091eb2d1d025bbd692dee3f0c<br />
<br />
-n tells echo not to print a newline, the cut command takes just the first 32 bytes so we don't get the dash at the end.<br />
<br />
So now save the hash in a variable by running:<br />
<br />
$ hash=$(echo -n "tom:rtorrent:secret_pass" | md5sum | cut -b -32)<br />
$ echo hash<br />
6a4aaa1091eb2d1d025bbd692dee3f0c<br />
<br />
Now save it to our password file:<br />
<br />
$ sudo echo "tom:rtorrent:$hash" > /etc/lighttpd/lighttpd-htdigest.user<br />
<br />
You can use any file name you like, just add the same file to lighttpd.conf.<br />
<br />
root as owner of this file should work ok, however it didn't work for me unless I made http owner.<br />
<br />
$ sudo chown http /etc/lighttpd/lighttpd-htdigest.user<br />
$ sudo chmod 400 /etc/lighttpd/lighttpd-htdigest.user<br />
<br />
<br />
Now we will change /etc/lighttpd/lighttpd.conf to tell it to use this password file for anytime rutorrent is accessed.<br />
<br />
Add the following lines:<br />
<br />
server.modules += ( "mod_auth" )<br />
auth.debug = 0<br />
auth.backend = "htdigest"<br />
auth.backend.htdigest.userfile = "lighttpd-htdigest.user"<br />
<br />
<br />
auth.require = ( "/rutorrent/" => (<br />
"method" => "digest",<br />
"realm" => "rtorrent",<br />
"require" => "valid-user"<br />
))<br />
<br />
Restart lighttpd, and it should now require you to enter your username and password when you reload rutorrent.<br />
<br />
$ sudo /etc/rc.d/lighttpd restart<br />
<br />
=== SSL ===<br />
<br />
The following resources can help you add ssl to lighttpd:<br />
<br />
https://wiki.archlinux.org/index.php/Lighttpd#SSL<br />
http://redmine.lighttpd.net/projects/1/wiki/Docs_SSL<br />
http://redmine.lighttpd.net/projects/1/wiki/HowToSimpleSSL<br />
<br />
If you just want to get it working, the following commands should work.<br />
<br />
Create pem file:<br />
<br />
sudo mkdir /etc/lighttpd/certs<br />
sudo openssl req -new -x509 -newkey rsa:2048 -keyout /etc/lighttpd/certs/lighttpd.pem -out /etc/lighttpd/certs/lighttpd.pem -days 730 -nodes<br />
<br />
Then add the following lines to /etc/lighttpd/lighttpd.conf (remove '#' comments if you still want plain http enabled:<br />
<br />
#$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable"<br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem"<br />
#}<br />
<br />
And change this line from 80 to 443 (if you only want ssl enabled):<br />
<br />
server.port = 443<br />
<br />
Then https should work, and depending on what you changed, http may not work anymore.<br />
<br />
Note: This cert is not signed by a Certificate Authority, so you will have to add an exception in firefox.<br />
<br />
== Troubleshooting ==<br />
<br />
For problems with rutorrent or lighttpd, the best place to check first is probably the lighttpd log files, in '''/var/log/lighttpd/'''. Particularly error.log.<br />
<br />
$ tail /var/log/lighttpd/error.log<br />
<br />
== See Also ==<br />
* [http://code.google.com/p/rutorrent/ rutorrent Project page]<br />
* [[Rtorrent|Rtorrent Wiki page]]<br />
* [[Lighttpd]]<br />
* [[RuTorrent|RuTorrent (with Apache)]]<br />
* [http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide Using XMLRPC with rtorrent]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=Rutorrent_with_lighttpd&diff=255872Rutorrent with lighttpd2013-05-02T13:30:02Z<p>Rvalles: removing annoying indentation in code blocks (first step)</p>
<hr />
<div>[[Category:Internet Applications]]<br />
[http://code.google.com/p/rutorrent/ Rutorrent] is a php frontend to the [http://libtorrent.rakshasa.no/ rtorrent] bitorrent client.<br />
<br />
It communicates with rtorrent using XML-RPC. It requires a web server such as lighttpd or apache to serve it's pages.<br />
<br />
To set up rutorrent, we will need to have rtorrent and lighttpd set up.<br />
<br />
== rtorrent ==<br />
<br />
Install rtorrent and configure to your liking.<br />
<br />
# pacman -S rtorrent<br />
<br />
Information on configuring rtorrent can be found on it's wiki page: https://wiki.archlinux.org/index.php/Rtorrent.<br />
<br />
rtorrent in the repos should be compiled with XML-RPC support.<br />
<br />
Add the following line to your rtorrent config file, usually ~/.rtorrent.rc.<br />
<br />
scgi_port = localhost:5050<br />
<br />
Instead of using a tcp port, it is also possible to use a socket using the scgi_local option instead. This did not work for me, as lighttpd complained about permissions regardless of permissions / location of socket file.<br />
<br />
You can choose a port other than 5050 if you like.<br />
<br />
== lighttpd ==<br />
<br />
Install lighthttp and php.<br />
<br />
# pacman -S lighttpd php php-cgi<br />
<br />
Information on setting up lighthttp can be found on it's wiki page: https://wiki.archlinux.org/index.php/Lighttpd<br />
<br />
After starting lighthttp as per the wiki, you should be able to access the test page at http://localhost:80.<br />
<br />
By default the pages are served from /srv/http, this is where we will be putting rutorrent.<br />
<br />
=== lighttpd.conf ===<br />
<br />
Edit lighthttpd's config file, /etc/lighttpd/lighttpd.conf.<br />
<br />
The following lines tell lighttpd to load the fastcgi and simple-cgi modules. Fast cgi is needed for rutorrent itself, and scgi for rutorrent to communicate with rtorrent.<br />
<pre>server.modules += ( "mod_fastcgi" )<br />
server.modules += ( "mod_scgi" )<br />
</pre><br />
<br />
We need to tell lighttpd how to treat files like css, images (jpg etc.), js. Otherwise it will not know what to do with them, and you may get a dialog to download the file or rutorrent will just not work properly.<br />
<br />
Here is a long list of filetypes, it is probably overkill as most of them are not needed, but easier to cover them all.<br />
<br />
Add this to /etc/lighttpd/lighttpd.conf also.<br />
<pre>mimetype.assign = (<br />
".rpm" => "application/x-rpm",<br />
".pdf" => "application/pdf",<br />
".sig" => "application/pgp-signature",<br />
".spl" => "application/futuresplash",<br />
".class" => "application/octet-stream",<br />
".ps" => "application/postscript",<br />
".torrent" => "application/x-bittorrent",<br />
".dvi" => "application/x-dvi",<br />
".gz" => "application/x-gzip",<br />
".pac" => "application/x-ns-proxy-autoconfig",<br />
".swf" => "application/x-shockwave-flash",<br />
".tar.gz" => "application/x-tgz",<br />
".tgz" => "application/x-tgz",<br />
".tar" => "application/x-tar",<br />
".zip" => "application/zip",<br />
".mp3" => "audio/mpeg",<br />
".m3u" => "audio/x-mpegurl",<br />
".wma" => "audio/x-ms-wma",<br />
".wax" => "audio/x-ms-wax",<br />
".ogg" => "application/ogg",<br />
".wav" => "audio/x-wav",<br />
".gif" => "image/gif",<br />
".jar" => "application/x-java-archive",<br />
".jpg" => "image/jpeg",<br />
".jpeg" => "image/jpeg",<br />
".png" => "image/png",<br />
".xbm" => "image/x-xbitmap",<br />
".xpm" => "image/x-xpixmap",<br />
".xwd" => "image/x-xwindowdump",<br />
".css" => "text/css",<br />
".html" => "text/html",<br />
".htm" => "text/html",<br />
".js" => "text/javascript",<br />
".asc" => "text/plain",<br />
".c" => "text/plain",<br />
".cpp" => "text/plain",<br />
".log" => "text/plain",<br />
".conf" => "text/plain",<br />
".text" => "text/plain",<br />
".txt" => "text/plain",<br />
".dtd" => "text/xml",<br />
".xml" => "text/xml",<br />
".mpeg" => "video/mpeg",<br />
".mpg" => "video/mpeg",<br />
".mov" => "video/quicktime",<br />
".qt" => "video/quicktime",<br />
".avi" => "video/x-msvideo",<br />
".asf" => "video/x-ms-asf",<br />
".asx" => "video/x-ms-asf",<br />
".wmv" => "video/x-ms-wmv",<br />
".bz2" => "application/x-bzip",<br />
".tbz" => "application/x-bzip-compressed-tar",<br />
".tar.bz2" => "application/x-bzip-compressed-tar",<br />
# default mime type<br />
"" => "application/octet-stream",<br />
)<br />
</pre><br />
<br />
Next we add the configuration for scgi to connect to rtorrent. Make sure to use the same port as when configuring rtorrent.<br />
<pre><br />
scgi.server = (<br />
"/RPC2" =><br />
( "127.0.0.1" =><br />
(<br />
"host" => "127.0.0.1",<br />
"port" => 5050,<br />
"check-local" => "disable"<br />
)<br />
)<br />
)<br />
</pre><br />
And finally the fastcgi settings so lighthttpd knows how to deal with php.<br />
<pre><br />
fastcgi.server = ( ".php" => ((<br />
"bin-path" => "/usr/bin/php-cgi",<br />
"socket" => "/tmp/php.socket"<br />
)))<br />
</pre><br />
==== Test ====<br />
<br />
At this point, you should be able to test if rtorrent and lighttpd's scgi are working properly using the xmlrpc command to ask rtorrent for a list of functions. ( See http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide#Usage ).<br />
<br />
$ xmlrpc localhost system.listMethods<br />
<br />
This should output a log list of methods that can be accessed through rtorrent's scgi interface. If it doesn't then something may be wrong.<br />
<br />
=== php.ini ===<br />
<br />
We need to make a small change to the open_basedir line in /etc/php/php.ini, to allow rutorrent to access the binaries it needs to run.<br />
<br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/bin<br />
<br />
The binaries are stat, id, php, curl, gzip. If these are installed somewhere other than /usr/bin, then you may need to append that to the line also.<br />
<br />
== rutorrent ==<br />
<br />
We will download rutorrent to lighttpd http directory.<br />
<br />
# cd /srv/http<br />
# wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz<br />
# tar xvfx rutorrent-3.5.tar.gz<br />
# rm rutorrent-3.5.tar.gz<br />
<br />
These should download and extract rutorrent to /srv/http. You may need to change rutorrent-3.5 to the desired version from the rutorrent website.<br />
<br />
rutorrent's config files are in '''/srv/http/rutorrent/conf/'''.<br />
<br />
We need to edit '''/srv/http/rutorrent/conf/config.php''', and change the port to the one we used in rtorrent and lighttpd.<br />
<br />
$scgi_port = 5050;<br />
$scgi_host = "127.0.0.1";<br />
<br />
Change the owner of the rutorrent to http (the user that lighttpd runs as by default).<br />
<br />
# chown -R http rutorrent<br />
<br />
== Testing ==<br />
<br />
rutorrent should now be set up.<br />
<br />
Start rtorrent, and restart lighttpd if you have not done so since changing the configuration.<br />
<br />
You should now be able to access the rutorrent interface on localhost or 127.0.0.1 on port 80 (assuming you did not change the default port for lighttpd).<br />
<br />
http://localhost<br />
<br />
== Plugins ==<br />
<br />
To install plugins for rutorrent, download the archive of the plugin you want and extract to rutorrent's plugin directory.<br />
/srv/http/rutorrent/plugins<br />
<br />
Plugins can be found on the rutorrent website: http://code.google.com/p/rutorrent/wiki/Plugins<br />
<br />
== SSL and Authentication ==<br />
<br />
=== User Authentication ===<br />
<br />
Detailed information on the different authentication methods can be found here: http://redmine.lighttpd.net/projects/1/wiki/Docs_ModAuth<br />
<br />
In this example we will digest authentication with htdigest method.<br />
<br />
In your lighttpd directory, we will create a file called "lighttpd-htdigest.user" or some other filename of your choice to hold the passwords.<br />
<br />
For htdigest, the format of the lines is:<br />
<br />
username:Realm:hash<br />
<br />
Username is your desired username, Realm is a name you chose to give to the access level. Hash is an md5sum of a string that looks like:<br />
<br />
username:Realm:password<br />
<br />
So your actual password is not stored in the file, it just contributes to the md5sum.<br />
<br />
So using username: 'tom', Realm: 'rtorrent' and password: 'secret_pass', we can obtain the hash by running:<br />
<br />
$ echo -n "tom:rtorrent:secret_pass" | md5sum | cut -b -32<br />
a4aaa1091eb2d1d025bbd692dee3f0c<br />
<br />
-n tells echo not to print a newline, the cut command takes just the first 32 bytes so we don't get the dash at the end.<br />
<br />
So now save the hash in a variable by running:<br />
<br />
$ hash=$(echo -n "tom:rtorrent:secret_pass" | md5sum | cut -b -32)<br />
$ echo hash<br />
6a4aaa1091eb2d1d025bbd692dee3f0c<br />
<br />
Now save it to our password file:<br />
<br />
$ sudo echo "tom:rtorrent:$hash" > /etc/lighttpd/lighttpd-htdigest.user<br />
<br />
You can use any file name you like, just add the same file to lighttpd.conf.<br />
<br />
root as owner of this file should work ok, however it didn't work for me unless I made http owner.<br />
<br />
$ sudo chown http /etc/lighttpd/lighttpd-htdigest.user<br />
$ sudo chmod 400 /etc/lighttpd/lighttpd-htdigest.user<br />
<br />
<br />
Now we will change /etc/lighttpd/lighttpd.conf to tell it to use this password file for anytime rutorrent is accessed.<br />
<br />
Add the following lines:<br />
<br />
server.modules += ( "mod_auth" )<br />
auth.debug = 0<br />
auth.backend = "htdigest"<br />
auth.backend.htdigest.userfile = "lighttpd-htdigest.user"<br />
<br />
<br />
auth.require = ( "/rutorrent/" => (<br />
"method" => "digest",<br />
"realm" => "rtorrent",<br />
"require" => "valid-user"<br />
))<br />
<br />
Restart lighttpd, and it should now require you to enter your username and password when you reload rutorrent.<br />
<br />
$ sudo /etc/rc.d/lighttpd restart<br />
<br />
=== SSL ===<br />
<br />
The following resources can help you add ssl to lighttpd:<br />
<br />
https://wiki.archlinux.org/index.php/Lighttpd#SSL<br />
http://redmine.lighttpd.net/projects/1/wiki/Docs_SSL<br />
http://redmine.lighttpd.net/projects/1/wiki/HowToSimpleSSL<br />
<br />
If you just want to get it working, the following commands should work.<br />
<br />
Create pem file:<br />
<br />
sudo mkdir /etc/lighttpd/certs<br />
sudo openssl req -new -x509 -newkey rsa:2048 -keyout /etc/lighttpd/certs/lighttpd.pem -out /etc/lighttpd/certs/lighttpd.pem -days 730 -nodes<br />
<br />
Then add the following lines to /etc/lighttpd/lighttpd.conf (remove '#' comments if you still want plain http enabled:<br />
<br />
#$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable"<br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem"<br />
#}<br />
<br />
And change this line from 80 to 443 (if you only want ssl enabled):<br />
<br />
server.port = 443<br />
<br />
Then https should work, and depending on what you changed, http may not work anymore.<br />
<br />
Note: This cert is not signed by a Certificate Authority, so you will have to add an exception in firefox.<br />
<br />
== Troubleshooting ==<br />
<br />
For problems with rutorrent or lighttpd, the best place to check first is probably the lighttpd log files, in '''/var/log/lighttpd/'''. Particularly error.log.<br />
<br />
$ tail /var/log/lighttpd/error.log<br />
<br />
== See Also ==<br />
* [http://code.google.com/p/rutorrent/ rutorrent Project page]<br />
* [[Rtorrent|Rtorrent Wiki page]]<br />
* [[Lighttpd]]<br />
* [[RuTorrent|RuTorrent (with Apache)]]<br />
* [http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide Using XMLRPC with rtorrent]</div>Rvalleshttps://wiki.archlinux.org/index.php?title=RTorrent&diff=255717RTorrent2013-04-30T05:38:30Z<p>Rvalles: Added workdir. This is an ugly hack, improve if you know how :></p>
<hr />
<div>{{DISPLAYTITLE:rTorrent}}<br />
[[Category:Internet Applications]]<br />
[[es:RTorrent]]<br />
[[ru:RTorrent]]<br />
[[zh-CN:RTorrent]]<br />
[http://libtorrent.rakshasa.no/ rTorrent] is a quick and efficient BitTorrent client that uses the libtorrent library. It is written in C++ and uses the [[Wikipedia:ncurses|ncurses]] programming library, which means it uses a text user interface. When combined with [[GNU Screen]] and [[Secure Shell]], it becomes a convenient remote [[Wikipedia:BitTorrent (protocol)#Operation|BitTorrent client]].<br />
<br />
== Installation ==<br />
[[pacman|Install]] the {{Pkg|rtorrent}} package that is available in the [[Official Repositories|official repositories]].<br />
<br />
Alternatively, install {{AUR|rtorrent-git}} or {{AUR|rtorrent-extended}} from the [[Arch User Repository|AUR]].<br />
<br />
== Configuration ==<br />
{{note|See the rTorrent wiki article on this subject for more information: [http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks Common Tasks in rTorrent for Dummies]}}<br />
<br />
Before running rTorrent, find the example configuration file {{ic|/usr/share/doc/rtorrent/rtorrent.rc}} and copy it to {{ic|~/.rtorrent.rc}}:<br />
<br />
$ cp /usr/share/doc/rtorrent/rtorrent.rc ~/.rtorrent.rc<br />
<br />
=== Performance ===<br />
{{note|See the rTorrent wiki article on this subject for more information: [http://libtorrent.rakshasa.no/wiki/RTorrentPerformanceTuning Performance Tuning]}}<br />
<br />
The values for the following options are dependent on the system's hardware and Internet connection speed. To find the optimal values read: [http://torrentfreak.com/optimize-your-BitTorrent-download-speed Optimize Your BitTorrent Download Speed]<br />
{{bc|<nowiki><br />
min_peers = 40<br />
max_peers = 52<br />
<br />
min_peers_seed = 10<br />
max_peers_seed = 52<br />
<br />
max_uploads = 8<br />
<br />
download_rate = 200<br />
upload_rate = 28<br />
</nowiki>}}<br />
<br />
The {{ic|check_hash}} option executes a hash check when a torrent download is complete or rTorrent is started. When starting, it checks for errors in your completed files. <br />
check_hash = yes<br />
<br />
=== Create and manage files ===<br />
The {{ic|directory}} option will determine where your torrent data will be saved. Be sure to enter the absolute path, as rTorrent may not follow relative paths:<br />
directory = /home/[user]/torrents/<br />
<br />
The {{ic|session}} option allows rTorrent to save the progess of your torrents. It is recommended to create a directory called {{ic|.session}} (e.g. {{ic|$ mkdir ~/.session}}).<br />
session = /home/[user]/.session/<br />
<br />
The {{ic|schedule}} option has rTorrent watch a particular directory for new torrent files. Saving a torrent file to this directory will automatically start the download. Remember to create the directory that will be watched (e.g. {{ic|$ mkdir ~/watch}}). Also, be careful when using this option as rTorrent will move the torrent file to your session folder and rename it to its hash value.<br />
schedule = watch_directory,5,5,load_start=/home/[user]/watch/*.torrent<br />
schedule = untied_directory,5,5,stop_untied=<br />
schedule = tied_directory,5,5,start_tied=<br />
<br />
The following {{ic|schedule}} option is intended to stop rTorrent from downloading data when disk space is low.<br />
schedule = low_diskspace,5,60,close_low_diskspace=100M<br />
<br />
=== Port configuration ===<br />
The {{ic|port_range}} option sets which port(s) to use for listening. It is recommended to use a port that is higher than 49152 (see: [[Wikipedia:List of TCP and UDP port numbers|List of port numbers]]). Although, rTorrent allows a range of ports, a single port is recommended.<br />
port_range = 49164-49164<br />
<br />
Additionally, make sure port forwarding is enabled for the proper port(s) (see: [http://portforward.com/english/routers/port_forwarding/routerindex.htm Port Forward Guides]).<br />
<br />
=== Additional settings ===<br />
The {{ic|encryption}} option enables or disables encryption. It is very important to enable this option, not only for yourself, but also for your peers in the torrent swarm. Some users need to obscure their bandwidth usage from their ISP. And it does not hurt to enable it even if you do not need the added security.<br />
encryption = allow_incoming,try_outgoing,enable_retry<br />
It is also possible to force all connections to use encryption. However, be aware that this stricter rule will reduce your client's availability:<br />
encryption = require,require_RC4,allow_incoming,enable_retry<br />
{{Wikipedia|BitTorrent Protocol Encryption}}<br />
<br />
This final {{ic|dht}} option enables [[Wikipedia:Distributed hash table|DHT]] support. DHT is common among public trackers and will allow the client to acquire more peers.<br />
{{bc|<nowiki><br />
dht = auto<br />
dht_port = 6881<br />
peer_exchange = yes<br />
</nowiki>}}<br />
<br />
{{note|See the rTorrent wiki article on this subject for more information: [http://libtorrent.rakshasa.no/wiki/RTorrentUsingDHT Using DHT]}}<br />
<br />
== Key bindings ==<br />
<br />
rTorrent relies exclusively on keyboard shortcuts for user input. A quick reference is available in the table below. A complete guide is available on the rTorrent wiki (see: [http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide rTorrent User Guide]).<br />
<br />
{{note|Striking {{keypress|Ctrl-q}} twice in quick succession will make rTorrent shutdown without waiting to send a stop announce to the connected trackers.}}<br />
<br />
{| class="toccolours" border="1" cellpadding="4" cellspacing="0" style="margin:5px;"<br />
|-<br />
!width="75" |Cmd<br />
!Action<br />
|-<br />
|Ctrl-q<br />
|Quit application<br />
|-<br />
|Ctrl-s<br />
|Start download. Runs hash first unless already done.<br />
|-<br />
|Ctrl-d<br />
|Stop an active download or remove a stopped download<br />
|-<br />
|Ctrl-k<br />
|Stop and close the files of an active download.<br />
|-<br />
|Ctrl-r<br />
|Initiate hash check of torrent. Without starting to download/upload.<br />
|-<br />
|Left<br />
|Returns to the previous screen<br />
|-<br />
|Right<br />
|Goes to the next screen<br />
|-<br />
|Backspace/Return<br />
|Adds the specified *.torrent<br />
|-<br />
|<nowiki>a|s|d</nowiki><br />
|<nowiki>Increase global upload throttle about 1|5|50 KB/s</nowiki><br />
|-<br />
|<nowiki>A|S|D</nowiki><br />
|<nowiki>Increase global download throttle about 1|5|50 KB/s</nowiki><br />
|-<br />
|<nowiki>z|x|c</nowiki><br />
|<nowiki>Decrease global upload throttle about 1|5|50 KB/s</nowiki><br />
|-<br />
|<nowiki>Z|X|C</nowiki><br />
|<nowiki>Decrease global download throttle about 1|5|50 KB/s</nowiki><br />
|}<br />
=== Redundant mapping ===<br />
{{Keypress|Ctrl-s}} is often used for terminal control to stop screen output while {{Keypress|Ctrl-q}} is used to start it. These mappings may interfere with rTorrent. Check to see if these terminal options are bound to a mapping:<br />
{{hc|$ stty -a|<nowiki>...<br />
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;<br />
...<br />
</nowiki>}}<br />
<br />
To remove the mappings, change the terminal characteristics to undefine the aforementioned special characters (i.e. {{ic|stop}} and {{ic|start}}):<br />
# stty stop undef<br />
# stty start undef<br />
<br />
To remove these mappings automatically at startup you may add the two preceding commands to your {{ic|~/.bashrc}} file.<br />
<br />
== Additional Tips ==<br />
<br />
=== systemd service file with tmux ===<br />
{{hc|/etc/systemd/system/rt@.service|<nowiki><br />
[Unit]<br />
Description=rTorrent<br />
Requires=network.target local-fs.target<br />
<br />
[Service]<br />
Type=oneshot<br />
RemainAfterExit=yes<br />
KillMode=none<br />
User=%I<br />
ExecStart=/usr/bin/tmux new-session -s rt -n rtorrent -d rtorrent <br />
ExecStop=/usr/bin/tmux send-keys -t rt:rtorrent C-q<br />
WorkingDirectory=/home/%I/<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Start at boot time:<br />
# systemctl enable rt@$USER<br />
Start manually:<br />
# systemctl start rt@$USER<br />
Stop:<br />
# systemctl stop rt@$USER<br />
Attach to rtorrent's session:<br />
tmux attach -t rt<br />
Detach:<br />
C-b d<br />
<br />
=== Pre-allocation ===<br />
The rTorrent package in the community repository lacks pre-allocation. Compiling rTorrent with pre-allocation allows files to be allocated before downloading the torrent. The major benefit is that it limits and avoids fragmentation of the filesystem. However, this introduces a delay during the pre-allocation if the filesystem does not support the fallocate syscall natively.<br />
<br />
Therefore this switch is recommended for xfs, ext4 and btrfs filesystems, which have native fallocate syscall support. They will see no delay during preallocation and no fragmented filesystem. Pre-allocation on others filesystems will cause a delay but will not fragment the files.<br />
<br />
To make pre-allocation available, recompile libtorrent from the [[ABS]] tree with the following new switch:<br />
$ ./configure --prefix=/usr --disable-debug --with-posix-fallocate<br />
<br />
To enable it, add the following to your {{ic|~/rtorrent.rc}}:<br />
{{hc|~/rtorrent.rc|<nowiki><br />
# Preallocate files; reduces defragmentation on filesystems.<br />
system.file_allocate.set = yes<br />
</nowiki>}}<br />
<br />
=== Manage completed files ===<br />
{{note|Currently, this part requires either the git version of rtorrent/libtorrent or having applied the patch to 0.8.6 that adds 'equal'.}}<br />
<br />
{{note|If you're having trouble with this tip, it's probably easier to follow [http://libtorrent.rakshasa.no/wiki/RTorrentCommonTasks#Movecompletedtorrentstodifferentdirectorydependingonwatchdirectory this]}}<br />
<br />
It is possible to have rtorrent sort completed torrent data to specific folders based on which 'watch' folder you drop the *.torrent into while continuing to seed. Many examples show how to do this with torrents downloaded by rtorrent. The problem is when you try to drop in 100% done torrent data and then have rtorrent check the data and resume, it will not be sorted.<br />
<br />
As a solution, use the following example in your ~/.rtorrent.rc.<br />
Make sure to change the paths.<br />
<br />
{{bc|1=<br />
# location where new torrent data is placed, and where you should place your<br />
# 'complete' data before you place your *.torrent file into the watch folder<br />
directory = /home/user/torrents/incomplete<br />
<br />
# schedule a timer event named 'watch_directory_1':<br />
# 1) triggers 10 seconds after rtorrent starts<br />
# 2) triggers at 10 second intervals thereafter<br />
# 3) Upon trigger, attempt to load (and start) new *.torrent files found in /home/user/torrents/watch/<br />
# 4) set a variable named 'custom1' with the value "/home/user/torrents/complete"<br />
# NOTE: if you do not want it to automatically start the torrent, change 'load_start' to 'load'<br />
schedule = watch_directory_1,10,10,"load_start=/home/user/torrents/watch/*.torrent,d.set_custom1=/home/user/torrents/complete"<br />
<br />
# insert a method with the alias 'checkdirs1'<br />
# 1) returns true if the current path of the torrent data is not equal to the value of custom1<br />
# 2) otherwise, returns false<br />
system.method.insert=checkdirs1,simple,"not=\"$equal={d.get_custom1=,d.get_base_path=}\""<br />
<br />
# insert a method with the alias 'movecheck1'<br />
# 1) returns true if all 3 commands return true ('result of checkdirs1' && 'torrent is 100% done', 'custom1 variable is set')<br />
# 2) otherwise, returns false<br />
system.method.insert=movecheck1,simple,"and={checkdirs1=,d.get_complete=,d.get_custom1=}"<br />
<br />
# insert a method with the alias 'movedir1'<br />
# (a series of commands, separated by ';') <br />
# 1) "set path of torrent to equal the value of custom1";<br />
# 2) "mv -u <current data path> <custom1 path>";<br />
# 3) "clear custom1", "stop the torrent","resume the torrent"<br />
# 4) stop the torrent<br />
# 5) start the torrent (to get the torrent to update the 'base path')<br />
system.method.insert=movedir1,simple,"d.set_directory=$d.get_custom1=;execute=mv,-u,$d.get_base_path=,$d.get_custom1=;d.set_custom1=;d.stop=;d.start="<br />
<br />
# set a key with the name 'move_hashed1' that is triggered by the hash_done event.<br />
# 1) When hashing of a torrent completes, this custom key will be triggered.<br />
# 2) when triggered, execute the 'movecheck1' method and check the return value.<br />
# 3) if the 'movecheck' method returns 'true', execute the 'movedir1' method we inserted above.<br />
# NOTE-0: *Only* data that has had their hash checked manually with ^R [^R = Control r].<br />
# Or on a rtorrent restart[which initiates a hash check]. Will the data move; ~/torrents/incomplete => ~/torrents/complete for example.<br />
# NOTE-1: 'branch' is an 'if' conditional statement: if(movecheck1){movedir1}<br />
system.method.set_key=event.download.hash_done,move_hashed1,"branch={$movecheck1=,movedir1=}"<br />
}}<br />
<br />
You can add additional watch folders and rules should you like to sort your torrents into special folders.<br />
<br />
For example, if you would like the torrents to download in:<br />
/home/user/torrents/incomplete<br />
and then sort the torrent data based on which folder you dropped the *.torrent into:<br />
/home/user/torrents/watch => /home/user/torrents/complete<br />
/home/user/torrents/watch/iso => /home/user/torrents/complete/iso<br />
/home/user/torrents/watch/music => /home/user/torrents/complete/music<br />
<br />
You can have the following in your .rtorrent.rc:<br />
{{bc|1=<br />
directory = /home/user/torrents/incomplete<br />
schedule = watch_directory_1,10,10,"load_start=/home/user/torrents/watch/*.torrent,d.set_custom1=/home/user/torrents/complete"<br />
<br />
schedule = watch_directory_2,10,10,"load_start=/home/user/torrents/watch/iso/*.torrent,d.set_custom1=/home/user/torrents/complete/iso"<br />
<br />
schedule = watch_directory_3,10,10,"load_start=/home/user/torrents/watch/music/*.torrent,d.set_custom1=/home/user/torrents/complete/music"<br />
<br />
system.method.insert=checkdirs1,simple,"not=\"$equal={d.get_custom1=,d.get_base_path=}\""<br />
system.method.insert=movecheck1,simple,"and={checkdirs1=,d.get_complete=,d.get_custom1=}"<br />
system.method.insert=movedir1,simple,"d.set_directory=$d.get_custom1=;execute=mv,-u,$d.get_base_path=,$d.get_custom1=;d.set_custom1=;d.stop=;d.start="<br />
system.method.set_key=event.download.hash_done,move_hashed1,"branch={$movecheck1=,movedir1=}"<br />
}}<br />
<br />
Also see [http://code.google.com/p/pyroscope/ pyroscope] especially the rtcontrol examples. There is an AUR package.<br />
<br />
==== Notification with Google Mail ====<br />
<br />
Cell phone providers allow you to "email" your phone:<br />
{{bc|<nowiki><br />
Verizon: 10digitphonenumber@vtext.com<br />
AT&T: 10digitphonenumber@txt.att.net<br />
Former AT&T customers: 10digitphonenumber@mmode.com<br />
Sprint: 10digitphonenumber@messaging.sprintpcs.com<br />
T-Mobile: 10digitphonenumber@tmomail.net<br />
Nextel: 10digitphonenumber@messaging.nextel.com<br />
Cingular: 10digitphonenumber@cingularme.com<br />
Virgin Mobile: 10digitphonenumber@vmobl.com<br />
Alltel: 10digitphonenumber@alltelmessage.com OR<br />
10digitphonenumber@message.alltel.com<br />
CellularOne: 10digitphonenumber@mobile.celloneusa.com<br />
Omnipoint: 10digitphonenumber@omnipointpcs.com<br />
Qwest: 10digitphonenumber@qwestmp.com<br />
Telus: 10digitphonenumber@msg.telus.com<br />
Rogers Wireless: 10digitphonenumber@pcs.rogers.com<br />
Fido: 10digitphonenumber@fido.ca<br />
Bell Mobility: 10digitphonenumber@txt.bell.ca<br />
Koodo Mobile: 10digitphonenumber@msg.koodomobile.com<br />
MTS: 10digitphonenumber@text.mtsmobility.com<br />
President's Choice: 10digitphonenumber@txt.bell.ca<br />
Sasktel: 10digitphonenumber@sms.sasktel.com<br />
Solo: 10digitphonenumber@txt.bell.ca<br />
</nowiki>}}<br />
<br />
*Install Heirloom's mailx program which is provided by the {{Pkg|heirloom-mailx}} package that is found in the [[Official Repositories|official repositories]].<br />
<br />
*Clear the {{ic|/etc/mail.rc}} file and enter:<br />
<br />
{{Note|Older versions of Heirloom's mailx use {{ic|/etc/nail.rc}}.}}<br />
<br />
{{bc|<nowiki><br />
set sendmail="/usr/bin/mailx"<br />
set smtp=smtp.gmail.com:587<br />
set smtp-use-starttls<br />
set ssl-verify=ignore<br />
set ssl-auth=login<br />
set smtp-auth-user=USERNAME@gmail.com<br />
set smtp-auth-password=PASSWORD<br />
</nowiki>}}<br />
<br />
Now to send the text, we must pipe a message to the mailx program.<br />
*Make a Bash script:<br />
{{hc|/path/to/mail.sh|<nowiki><br />
echo "$@: Done" | mailx 5551234567@vtext.com<br />
</nowiki>}}<br />
Where the $@ is a variable holding all the arguments passed to our script.<br />
<br />
*And finally, add the important {{ic|~/.rtorrent.rc}} line:<br />
system.method.set_key = event.download.finished,notify_me,"execute=/path/to/mail.sh,$d.get_name="<br />
<br />
Breaking it down:<br />
<br />
{{ic|notify_me}} is the command id, which may be used by other commands, it can be just about anything you like, so long as it is unique.<br />
<br />
{{ic|1=execute=}} is the rtorrent command, in this case to execute a shell command.<br />
<br />
{{ic|/path/to/mail.sh}} is the name of our script (or whatever command you want to execute) followed by a comma separated list of all the switches/arguments to be passed.<br />
<br />
{{ic|1=$d.get_name=}} 'd' is an alias to whatever download triggered the command, get_name is a function which returns the name of our download, and the '$' tells rTorrent to replace the command with its output before it calls execute.<br />
<br />
The end result? When that torrent, 'All Live Nudibranches', that we started before leaving for work finishes, we will be texted:<br />
All Live Nudibranches: Done<br />
<br />
=== Displaying active torrents ===<br />
The rtorrent doesn't list the active tab properly by default, add this line to your {{ic|.rtorrent.rc}} to show only active torrents<br />
schedule = filter_active,30,30,"view_filter = active,\"or={d.get_up_rate=,d.get_down_rate=}\""<br />
<br />
Then press {{keypress|9}} in your rTorrent client to see the changes in action.<br />
<br />
=== Manually adding trackers to torrents ===<br />
1. Select torrent to edit from rtorrent console view<br />
<br />
2. Hit Ctrl-X<br />
<br />
3. If you had four trackers type following lines one at a time (always press ^X first) to add four more for example:<br />
<br />
d.tracker.insert="5","udp://tracker.publicbt.com:80"<br />
d.tracker.insert="6","udp://tracker.openbittorrent.com:80"<br />
d.tracker.insert="7","udp://tracker.istole.it:80"<br />
d.tracker.insert="8","udp://tracker.ccc.de:80"<br />
<br />
== Troubleshooting ==<br />
<br />
=== CA certificates ===<br />
To use rTorrent with a tracker that uses HTTPS, do the following as root:<br />
<br />
{{bc|# cd /etc/ssl/certs<br />
<br />
# wget --no-check-certificate https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Global_eBusiness_CA-1.cer<br />
<br />
# mv Equifax_Secure_Global_eBusiness_CA-1.cer Equifax_Secure_Global_eBusiness_CA-1.pem<br />
<br />
# c_rehash<br />
}}<br />
<br />
And from now on run rTorrent with:<br />
$ rtorrent -o http_capath=/etc/ssl/certs<br />
<br />
If you use GNU Screen, update the {{ic|.screenrc}} configuration file to reflect this change:<br />
$ screen -t rtorrent rtorrent -o http_capath=/etc/ssl/certs<br />
<br />
In rTorrent 0.8.9, set {{ic|<nowiki>network.http.ssl_verify_peer.set=0</nowiki>}} to fix the problem.<sup>[https://bbs.archlinux.org/viewtopic.php?pid=981832#p981832]</sup><br />
<br />
For more information see: [https://bbs.archlinux.org/viewtopic.php?pid=331850 rTorrent Error & CA Certificate] and [https://bbs.archlinux.org/viewtopic.php?id=45800 rTorrent Certificates Problem]<br />
<br />
===Locked Directories===<br />
Rtorrent can sometimes lock up after a crash or incorrect shutdown, and will complain about a lock file.<br><br />
Per the error message, the file called "'''rtorrent.lock'''" can be found within the hidden folder /.rtorrentsession for your download directory and manually removed.<br />
<br />
== Web interface ==<br />
There are numerous web interfaces and front ends for rTorrent including:<br />
* [[WTorrent]] is a web interface to rtorrent programmed in php using Smarty templates and XMLRPC for PHP library.<br />
* [http://code.google.com/p/ntorrent/ nTorrent] is a graphical user interface client to rtorrent (a cli torrent client) written in Java.<br />
* [http://projects.cyla.homeip.net/rtwi/ rTWi] is a simple rTorrent web interface written in PHP.<br />
* [[Rtgui]] is a web based front end for rTorrent written in PHP and uses XML-RPC to communicate with the rTorrent client.<br />
* [http://code.google.com/p/rutorrent/ rutorrent] and [http://forums.rutorrent.org/ Forum] - A web-based front-end with an interface very similar to uTorrent which supports many plugins and advanced features (see also: [[ruTorrent]] and [https://bbs.archlinux.org/viewtopic.php?pid=897577#p897577 Guide on forum]).<br />
<br />
{{note|rTorrent is currently built using [http://xmlrpc-c.sourceforge.net/ XML-RPC for C/C++], which is required for some web interfaces (e.g. ruTorrent).}}<br />
<br />
=== XMLRPC interface ===<br />
If you want to use rtorrent with some web interfaces (e.g. rutorrent) you need to add the following line to the configuration file:<br />
scgi_port = localhost:5000<br />
<br />
For more information see: [http://libtorrent.rakshasa.no/wiki/RTorrentXMLRPCGuide Using XMLRPC with rtorrent]<br />
<br />
=== Handling magnet links ===<br />
If you wish to have magnet links automatically added to your watch folder, here is a script that will do the trick:<br />
<br />
#!/bin/bash<br />
watch_folder=~/.rtorrent/watch<br />
cd $watch_folder <br />
[[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit;<br />
echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"<br />
<br />
(adapted from http://blog.gonzih.org/blog/2012/02/17/how-to-use-magnet-links-with-rtorrent/)<br />
<br />
Save it, for instance as rtorrent-magnet, give it execution permission, and place it somewhere under your $PATH. Then in Firefox:<br />
* Type about:config into the Location Bar (address bar) and press Enter.<br />
* Right-click -> New -> Boolean -> Name: network.protocol-handler.expose.magnet -> Value -> false<br />
* Next time you click a magnet link you will be asked which application to open it with. Select the script we just created and you'll be done<br />
<br />
(http://kb.mozillazine.org/Register_protocol)<br />
<br />
== See also ==<br />
* [[Screen Tips]]<br />
* [[Wikipedia:Comparison of BitTorrent clients|Comparison of BitTorrent clients]] on Wikipedia<br />
* [http://community.rutorrent.org/ rTorrent Community Wiki] - A public place for information on rTorrent and any project related to rTorrent, regarding setup, configuration, operations, and development.<br />
* [http://code.google.com/p/pyroscope/ PyroScope] - A collection of command line tools for rTorrent. It provides commands for creating and modifying torrent files, moving data on completion without having multiple watch folders, and mass-controlling download items via rTorrent's XML-RPC interface: searching, start/stop, deleting items with or without their data, etc. It also offers a documented [[Python]] API.<br />
* [[Rutorrent with lighttpd|ruTorrent with Lighttpd]]<br />
* [http://wiki.theaveragegeek.com/howto/installing_rtorrent_and_hellanzb_on_centos5_64-bit_vps How-to Install rTorrent and Hellanzb on CentOS 5 64-bit VPS]<br />
* [http://code.google.com/p/pyroscope/wiki/DebianInstallFromSource Installation Guide for rTorrent and Pryoscope on Debian] - A collection of tools for the BitTorrent protocol and especially the rTorrent client<br />
* [http://mktorrent.sourceforge.net/ mktorrent] - A command line application used to generate torrent files, which is available as {{Pkg|mktorrent}} in the [[Official Repositories|official repositories]].<br />
<br />
<br />
'''Forum threads'''<br />
* 2009-03-11 - Arch Linux - [https://bbs.archlinux.org/viewtopic.php?id=67304 HOWTO: rTorrent stats in Conky]</div>Rvalles