https://wiki.archlinux.org/api.php?action=feedcontributions&user=Btby&feedformat=atomArchWiki - User contributions [en]2024-03-28T23:16:23ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Pidgin&diff=248204Pidgin2013-02-23T05:39:34Z<p>Btby: /* Other packages */</p>
<hr />
<div>[[Category:Internet Applications]]<br />
[[Category:Internet Relay Chat]]<br />
[[de:Pidgin]]<br />
[[es:Pidgin]]<br />
[[ru:Pidgin]]<br />
[[zh-CN:Pidgin]]<br />
'''Pidgin''' (formerly Gaim) is an instant messaging client for Linux that can connect to many different IM networks, such as Live Messenger, Yahoo, IRC, AIM, etc. One of Pidgin's key features is that you can use many networks at the same time.<br />
<br />
==Installation==<br />
[[pacman|Install]] {{Pkg|pidgin}}, available in the [[Official Repositories]].<br />
<br />
You may also want to [[pacman|install]] additional plugins from the {{Pkg|purple-plugin-pack}}.<br />
<br />
==Spellcheck==<br />
Aspell will be installed as a dependency, but to prevent all of your text from showing up as incorrect you will need to install an aspell dictionary:<br />
# pacman -S aspell-en<br />
<br />
This installs the English dictionary. Use {{Ic|pacman -Ss aspell}} to list available languages.<br />
<br />
{{Note| The '''switch spell'''-plugin is included in the purple-plugin-pack (see above). It allows you to switch between multiple languages.}}<br />
<br />
==Sound fix==<br />
To have event sounds working, install the {{pkg|gstreamer0.10-good}} package. Alternatively, in the "Sounds" preferences tab, the method can be set to 'command' and one of the following sound commands used.<br />
<br />
After configuring [[ALSA]]:<br />
aplay %s<br />
<br />
If using [[OSS]]:<br />
ossplay %s<br />
<br />
And for [[PulseAudio]]:<br />
paplay %s<br />
<br />
==Browser error==<br />
If clicking a link within Pidgin creates an error message about trying to use 'sensible-browser' to open a link, try editing {{ic|~/.purple/prefs.xml}}. Find the line referencing 'sensible-browser' and change it to this:<br />
<pref name='command' type='path' value='firefox'/><br />
<br />
This example assumes you use [[Firefox]].<br />
<br />
==QIP Encoding bug==<br />
There is another bug in character encoding when communicating between Pidgin and QIP, which especially affects Czech language, but there are also other languages affected. There are two possible solutions. The better one is to upgrade from QIP to QIP Infimum, second solution is to install and enable plugin from {{AUR|pidgin-qip-decoder}} package currently available from [[AUR]].<br />
<br />
==IRC==<br />
This is a small tutorial for connecting to Freenode. It should work for other IRC networks as long as you substitute the port numbers and other specific settings.<br />
<br />
Go to Accounts -> Manage Accounts -> Add -> Fill/select the following options:<br />
Protocol: IRC <br />
Username: <your username><br />
<br />
Now go to Buddies -> New instant message ( or hit ctrl + m) fill 'freenode.net' in the textbox and <username>@irc.freenode.net -> then click 'Ok'. Type:<br />
/join #archlinux (channel is irrelevant)<br />
<br />
In order to register your nick, type:<br />
/msg nickserv register <password> <email-addres><br />
<br />
Follow the instructions from the registration mail. For further help type:<br />
/msg nickserv help<br />
/msg nickserv help <command><br />
<br />
This final step will add your channel to 'Buddies': go to Buddies -> Add chat -> fill the correct channel in the textbox named channel (#archlinux).<br />
<br />
==Xfire==<br />
Simply install {{Pkg|pidgin-gfire}} and then add a new account, selecting xfire as protocol.<br />
<br />
==Facebook XMPP==<br />
Since Facebook Chat supports XMPP, you can use Pidgin without extra plugins. See this article for more information: [http://blog.facebook.com/blog.php?post=297991732130 Facebook Chat Now Available Everywhere]<br />
<br />
{{Note| In order to utilise facebook chat through XMPP and pidgin, you will require a facebook "username", this is located in facebook -> account settings -> username [below real name]}}<br />
<br />
1. Go to "Accounts" and select "Manage Accounts."<br />
<br />
2. On the Basic tab, enter the following info:<br />
: Protocol: XMPP<br />
: Username: ''Your facebookID'' (without e-mail domain, e.g. @yahoo.com, etc)<br />
: Domain: chat.facebook.com (make sure you haven't typed any extra space)<br />
: Resource: Pidgin (leave this empty if you get "username@chat.facebook.com/Pidgin Not Authorized" error message)<br />
: Password: ''Your Password''<br />
: Local alias: ''Your Name''<br />
<br />
3. Click the Advanced tab, then enter the following info:<br />
: Connect port: 5222<br />
: Connect server: chat.facebook.com (make sure you haven't typed any extra space)<br />
: (Uncheck the box labeled "Require SSL/TLS")<br />
<br />
{{Note| Newer versions of Pidgin do not have a "Require SSL/TLS" box. Instead, select "Use encryption if available" from the Connection Security dropdown in Advanced}}<br />
<br />
{{Note| Changing your facebook privacy settings to "Turn off all apps" (under Apps and Websites), will disable your ability to send messages via jabber. (see [https://developer.pidgin.im/wiki/Protocol%20Specific%20Questions?version&#61;123#WhycantPidginseemtosendFacebookmessages Why can't Pidgin seem to send Facebook messages])}}<br />
<br />
{{Note| You may notice that all facebook contacts are in a separate group every time you login with your xmpp account even though you moved them to other groups or created meta-contacts. If you want to be able to group contacts and create meta-contacts you can use the plugin available here: [http://code.google.com/p/pidgin-xmpp-ignore-groups/ pidgin-xmpp-ignore-groups] (after installing the plugin activate the option ''Ignore server-sent groups'' on the Advanced tab in your xmpp-account settings). It essentially ignores the group data sent by the server roaster and preserves your local changes.}}<br />
<br />
== Privacy ==<br />
Pidgin has some privacy rules set by default. Namely, the whole world cannot send you messages; only your contacts or people selected from a list. Adjust this, and other settings through:<br />
Tools -> Privacy<br />
<br />
=== Pidgin-OTR ===<br />
This is a plugin that brings Off-The-Record (OTR) messaging to Pidgin. OTR is a cryptographic protocol that will encrypt your instant messages.<br />
<br />
First you need to install {{Pkg|pidgin-otr}} from [extra], like so:<br />
# pacman -S pidgin-otr<br />
<br />
Once this has been done, OTR has been added to Pidgin. <br />
<br />
To enable OTR, start Pidgin and go to Tools -> Plugins or press Ctrl + U. Scroll down to the entry entitled "Off-The-Record Messaging". If the checkbox beside it is not checked, check it.<br />
<br />
Next, click on the plugin entry and select "Configure plugin" at the bottom. Select which account you wish to generate a key for, then click "Generate". You will have now generated a private key. If you are not sure what the other options do, leave them, the default options will work fine.<br />
<br />
The next step is to contact a buddy who also has OTR installed. In the chat window, a new icon should appear to the top right of your text input box. Click on it, and select "Start private conversation". This will start an 'Unverified' session. Unverified sessions are encrypted, but not verified - that is, you have started a private conversation with someone using your buddy's account who has OTR, but who might not be your buddy. The steps for verification of a buddy are beyond the scope of this section; however, they might be added in the future.<br />
<br />
=== Pidgin-Encryption ===<br />
Pidgin-Encryption transparently encrypts your instant messages with RSA encryption. Easy-to-use, but very secure.<br />
# pacman -S pidgin-encryption<br />
<br />
You can enable it the same way as Pidgin-OTR.<br />
<br />
Now you can open conversation window and new icon sould appear beside menu. Press it to enable or disable encryption.<br />
Also if you want to make encryption enabled by default right-click on a buddy's name (in your buddy list), and select Turn Auto-Encrypt On. Now, whenever a new conversation window for that buddy is opened, encryption will start out as enabled.<br />
<br />
== Sametime protocol ==<br />
Sametime support is not available in the default version of Arch Linux's Pidgin package. This section will demonstrate how to enable this feature via AUR and the 'Meanwhile' plugin. This section assumes that you are familiar with using the AUR and that you are performing the following commands in {{ic|~/builds}} directory.<br />
<br />
First install [https://aur.archlinux.org/packages.php?ID=2956 meanwhile] from the [[AUR]].<br />
<br />
Now you have to rebuild your installed version of Pidgin with Sametime support: the procedure is different depending on whether you have Pidgin from [extra] or from a package in AUR.<br />
<br />
===[extra] package===<br />
<br />
Make sure you have installed the [[Arch Build System]] and downloaded the ABS tree.<br />
<br />
Now copy the pidgin directory of ABS to {{ic|~/builds}}:<br />
$ cp -r /var/abs/extra/pidgin ~/builds<br />
<br />
Go to {{ic|~/builds/pidgin}} and edit the {{ic|PKGBUILD}} file. Go to the {{Ic|build()}} section and make sure you remove the {{Ic|--disable-meanwhile}} line from the configure options.<br />
<br />
Make the package:<br />
$ makepkg -s<br />
<br />
Install '''first''' the libpurple package as root:<br />
# pacman -U libpurple-version-arch.pkg.tar.gz<br />
<br />
After that install the pidgin package as root:<br />
# pacman -U pidgin-version-arch.pkg.tar.gz<br />
<br />
Pidgin now has the 'Sametime' protocol as an option when creating accounts.<br />
<br />
===AUR package===<br />
<br />
Download and extract your Pidgin package from AUR (this example will use pidgin-gnome, change to preference):<br />
$ cd ~/builds && wget https://aur.archlinux.org/packages/pidgin-gnome/pidgin-gnome.tar.gz && tar xfvz pidgin-gnome.tar.gz<br />
<br />
Change into the extracted directory:<br />
$ cd pidgin-gnome<br />
<br />
In order to have 'Sametime' support you must remove the following from PKGBUILD<br />
--disable-meanwhile <br />
<br />
Build the package:<br />
$ makepkg -s<br />
<br />
Install the package as root:<br />
# pacman -U pidgin-gnome-2.5.8-1-i686.pkg.tar.gz<br />
<br />
Pidgin now has the 'Sametime' protocol as an option when creating accounts.<br />
<br />
== SIP/Simple protocol for Live Communications Server 2003/2005/2007 ==<br />
<br />
The [https://aur.archlinux.org/packages.php?ID=16170 pidgin-sipe] plugin is available from [[AUR]].<br />
<br />
== Other packages ==<br />
Arch has other Pidgin-related packages. Here are the most popular (for a thorough list, search the AUR):<br />
*{{Pkg|pidgin-libnotify}} - Libnotify support, for theme-consistent notifications<br />
*{{Pkg|guifications}} - Toaster-style popup notifications<br />
*{{AUR|microblog-purple}} - Libpurple plug-in supporting microblog services like Twitter<br />
*{{AUR|pidgin-light}} - All supported protocols same as default; but without gstreamer, tcl, tk or xscreensaver support. No video/voice.<br />
*{{AUR|pidgin-latex}} - A small latex plugin for pidgin. Put math between $$ and have it rendered (recepient also needs to have this installed)<br />
<br />
==Skype plugin==<br />
<br />
Install {{AUR|skype4pidgin}} from the [[AUR]].<br />
<br />
==Auto logout on suspend==<br />
<br />
If you suspend your computer pidgin seems to stay connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.<br />
<br />
Therefor create a new systemd unit {{ic|pidgin-suspend}} in {{ic|/etc/systemd/system}}<br />
Take the following snippet and replace {{ic|''myuser''}} with your user.<br />
<br />
[Unit]<br />
Description=Suspend Pidgin<br />
Before=sleep.target<br />
StopWhenUnneeded=yes<br />
<br />
[Service]<br />
Type=oneshot<br />
User=myuser<br />
RemainAfterExit=yes<br />
Environment=DISPLAY=:0<br />
ExecStart=-/usr/bin/purple-remote setstatus?status=offline<br />
ExecStop=-/usr/bin/purple-remote setstatus?status=available<br />
<br />
[Install]<br />
WantedBy=sleep.target<br />
<br />
If you are using [[pm-utils]], you could create a {{ic|00pidgin}} file in {{ic|/etc/pm/sleep.d/}} instead. <br />
(replace myuser with your username)<br />
<br />
#!/bin/sh<br />
#<br />
# 00pidgin: set offline/online status<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=offline' ''%myuser''<br />
;;<br />
thaw|resume)<br />
DISPLAY=:0 su -c 'purple-remote setstatus?status=available' ''%myuser''<br />
;;<br />
*) exit $NA<br />
;;<br />
esac<br />
<br />
== Troubleshooting ==<br />
<br />
*If facebook XMPP verification does not work for you, there a package in the aur [https://aur.archlinux.org/packages.php?ID=34479 pidgin-facebookchat] which does not require a unique user name (you may login with an email address)<br />
<br />
*The facebookchat plugin will prompt for varification (enter these two words...), if that fails, hit cancel and log onto facebook with pidgin open, this will configre the plugin's security setting)<br />
<br />
=== Installing Pidgin After a Carrier Installation ===<br />
* If you previously installed [https://aur.archlinux.org/packages.php?ID=17191 Carrier] (aka [http://funpidgin.sourceforge.net/ FunPidgin]), follow these steps ''before'' installing Pidgin<br />
* Quit Carrier<br />
* Delete your ~/.purple directory '''(Warning: this will remove all your user settings for any programs that use libpurple, i.e. Pidgin, Carrier, etc.)'''<br />
<pre><br />
rm -r ~/.purple<br />
</pre><br />
* Remove Carrier and libpurple<br />
<pre><br />
pacman -R carrier libpurple<br />
</pre><br />
* Install Pidgin and libpurple<br />
<pre><br />
pacman -S pidgin libpurple<br />
</pre><br />
<br />
== History Import Kopete To Pidgin ==<br />
* Install xalan-c<br />
<pre><br />
pacman -S xalan-c<br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin.sh with this code:<br />
<pre><br />
#!/bin/sh<br />
<br />
KOPETE_DIR=~/.kde4/share/apps/kopete/logs<br />
PIDGIN_DIR=~/.purple/logs<br />
CURRENT_DIR=~/bin<br />
<br />
cd ~<br />
<br />
if [ ! -d $KOPETE_DIR ];then<br />
echo "Kopete log directory not found"<br />
exit 1;<br />
fi<br />
<br />
if [ ! -d $PIDGIN_DIR ];then<br />
echo "Pidgin log directory not found"<br />
exit 2;<br />
fi<br />
<br />
for KOPETE_PROTODIR in `ls $KOPETE_DIR`<br />
do<br />
PIDGIN_PROTODIR=`echo $KOPETE_PROTODIR | sed 's/Protocol//' | tr [:upper:] [:lower:]`<br />
for accnum in `ls $KOPETE_DIR/$KOPETE_PROTODIR`<br />
do<br />
echo "Account number: $accnum"<br />
for num in `ls $KOPETE_DIR/$KOPETE_PROTODIR/$accnum`<br />
do<br />
FILENAME=`Xalan $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin_filename.xslt`<br />
if [ $? = 0 ]; then<br />
echo "$KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num"<br />
echo " -> $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME"<br />
mkdir -p `dirname $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME`<br />
Xalan -o $PIDGIN_DIR/$PIDGIN_PROTODIR/$FILENAME $KOPETE_DIR/$KOPETE_PROTODIR/$accnum/$num $CURRENT_DIR/history_import_kopete2pidgin.xslt<br />
fi<br />
done<br />
done<br />
done<br />
</pre><br />
* Make ~/bin/history_import_kopete2pidgin.sh executable<br />
<pre><br />
chmod +x ~/bin/history_import_kopete2pidgin.sh<br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin.xslt with this code:<br />
<pre><br />
<?xml version="1.0"?><br />
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:apply-templates select="msg"/><br />
</xsl:template><br />
<br />
<xsl:template match="msg"><br />
<xsl:text>(</xsl:text><br />
<xsl:value-of select="translate(substring-after(@time,' '),':',',')"/><br />
<xsl:text>) </xsl:text><br />
<xsl:value-of select="@nick"/><br />
<xsl:if test="not(@nick) or @nick = ''"><br />
<xsl:value-of select="@from"/><br />
</xsl:if><br />
<xsl:text>: </xsl:text><br />
<xsl:value-of select="."/><br />
<xsl:text><br />
</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</pre><br />
* Create ~/bin/history_import_kopete2pidgin_filename.xslt with this code:<br />
<pre><br />
<?xml version="1.0"?><br />
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><br />
<xsl:output method="text" indent="no" /><br />
<br />
<xsl:template match="kopete-history"><br />
<xsl:value-of select="head/contact[@type = 'myself']/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/contact[not(@type)]/@contactId"/><br />
<xsl:text>/</xsl:text><br />
<xsl:value-of select="head/date/@year"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="head/date/@month &lt; 10">0</xsl:if><br />
<xsl:value-of select="head/date/@month"/><br />
<xsl:text>-</xsl:text><br />
<xsl:if test="string-length(substring-before(msg[1]/@time,' ')) &lt; 2">0</xsl:if><br />
<xsl:value-of select="translate(msg[1]/@time,' :','.')"/><br />
<xsl:text>+0200EET.txt</xsl:text><br />
</xsl:template><br />
</xsl:stylesheet><br />
</pre><br />
* Execute the command in the shell<br />
<pre><br />
~/bin/history_import_kopete2pidgin.sh<br />
</pre><br />
<br />
==See also==<br />
* [http://pidgin.im Pidgin homepage]<br />
* [http://lukav.com/wordpress/2008/03/30/history-import-kopete-to-pidgin History Import Kopete To Pidgin]</div>Btbyhttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T420&diff=234510Lenovo ThinkPad T4202012-11-09T03:53:49Z<p>Btby: /* Tp_smapi */</p>
<hr />
<div>[[Category:Lenovo]]<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T420 laptop.<br />
<br />
==Installation==<br />
This laptop supports [[Unified_Extensible_Firmware_Interface|UEFI]] as well as the traditional BIOS.<br />
<br />
There are no issues with installing Arch Linux with the latest [https://www.archlinux.org/download/ Archiso].<br />
<br />
The rest of the installation process can be followed with the [[Official_Arch_Linux_Install_Guide|official install guide]].<br />
<br />
==Hardware==<br />
All hardware works out of the box except the following:<br />
<br />
===Fingerprint reader===<br />
Fingerprint reader works great with fprint and PAM (installation of fingerprint-gui recommended).<br />
<br />
See [[Fprint#Setup_fingerprint-gui]] for more information.<br />
<br />
===Some Media Keys===<br />
* See [[Lenovo ThinkPad T420#Media Keys|below]]<br />
<br />
===Untested===<br />
* Firewire<br />
<br />
==Laptop Settings==<br />
===ACPI===<br />
[[ACPI_modules|ACPI]] is well supported here. No obvious troubleshoots.<br />
<br />
=== Tp_smapi ===<br />
Unfortunately, [[Tp_smapi|tp_smapi]] is only partially supported on the Thinkpad T420. A number of features work since version 0.41. For example, the hard drive protection mechanism [[HDAPS]] now works well. See the linked wiki entry.<br />
<br />
Some features like setting the starting threshold for charging the battery do not yet work. To control the battery charging thresholds, install the Perl script {{AUR|tpacpi-bat}} from the [[Arch User Repository|AUR]].<br />
<br />
Insert the {{ic|acpi_call}} kernel module by running<br />
modprobe acpi_call<br />
or by adding it to the {{ic|MODULES}} array in {{ic|/etc/[[rc.conf]]}}.<br />
<br />
Manually set the thresholds by calling<br />
perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v startChargeThreshold 0 40<br />
perl /usr/lib/perl5/vendor_perl/tpacpi-bat -v stopChargeThreshold 0 80<br />
The example values 40 and 80 given here are in percent of the full battery capacity. Adjust them to your own needs. You may also want to add these lines to {{ic|/etc/rc.local}} to set them at startup. While these values should be permanent, they will be reset any time the battery is removed.<br />
<br />
Also, if you are dual booting with Windows, you can still control the battery charging thresholds with Lenovo's Power Manager which communicates directly to the battery controller.<br />
<br />
When using systemd, you may want to blacklist the tp_smapi module if your systemd-modules-load.service fails, as new ThinkPads handle everything over acpi.<br />
<br />
=== CPU Frequency Scaling ===<br />
[[CPU Frequency Scaling|CPU frequency scaling]] is fully supported with all of the available processor models with this laptop.<br />
<br />
=== Fans ===<br />
<br />
The thinkpad_acpi kernel module needs to be configured so user space programs can control the fan speed.<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|2=options thinkpad_acpi fan_control=1}}<br />
<br />
The [https://aur.archlinux.org/packages.php?ID=24359 thinkfan] configuration file also needs to know how to set the fan speed. Replace the default sensor settings with the following.<br />
<br />
{{hc|/etc/thinkfan.conf|sensor /sys/devices/virtual/thermal/thermal_zone0/temp}}<br />
<br />
You can add or remove services by editing the {{ic|DAEMONS}} array in your /etc/[[rc.conf]] file. It will initially look something like this:<br />
DAEMONS=(...@thinkfan...)<br />
<br />
Or, if you are using systemd, simply type <br />
# systemctl enable thinkfan.service<br />
<br />
=== Laptop Mode Tools ===<br />
No significant issues were found using [[Laptop Mode Tools]].<br />
<br />
Possible bug with [[Lenovo_ThinkPad_T420#Shutdown on Battery]]<br />
<br />
{{AUR|tlp}} From the [[Arch User Repository|AUR]] is an alternative tool that can replace laptop-mode-tools.<br />
<br />
=== PM-Utils ===<br />
Suspending and hibernating with [[Pm-utils|pm-utils]] works as intended.<br />
<br />
===Synaptics===<br />
TouchPad and TrackPoint do work out of the box, but the TouchPad is way too sensitive (i.e. fast) to be usable, since it is recognized as a mouse. To fix this, [[pacman|install]] the {{Pkg|xf86-input-synaptics}} package and add the following two files to your {{ic|/etc/X11/xorg.conf.d/}} directory:<br />
<br />
{{hc|50-thinkpad-trackpoint.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "ThinkPad TrackPoint"<br />
MatchProduct "TPPS/2 IBM TrackPoint"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "EmulateWheel" "true"<br />
Option "EmulateWheelButton" "2"<br />
Option "XAxisMapping" "6 7"<br />
Option "YAxisMapping" "4 5"<br />
EndSection<br />
</nowiki>}}<br />
<br />
{{hc|50-twofingerscroll.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "two finger scrolling"<br />
Driver "synaptics"<br />
MatchProduct "SynPS/2 Synaptics TouchPad"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "EmulateTwoFingerMinW" "8"<br />
Option "EmulateTwoFingerMinZ" "40"<br />
Option "TapButton1" "1"<br />
EndSection<br />
</nowiki>}}<br />
<br />
Adjust to your own needs. Read [[Touchpad Synaptics]] for more information.<br />
<br />
To adjust the speed/sensitivity of the TrackPoint add these lines in your {{ic|/etc/rc.local}} script:<br />
<br />
{{hc|/etc/rc.local|<nowiki><br />
TPDEV=/sys/devices/platform/i8042/serio1<br />
echo -n 180 > $TPDEV/speed<br />
echo -n 200 > $TPDEV/sensitivity<br />
</nowiki>}}<br />
<br />
Possible range of values are 1-255.<br />
<br />
===NVIDIA Optimus===<br />
[[Bumblebee|Bumblebee]] works as intended on models with NVIDIA Optimus<br />
<br />
=== Optional kernel boot arguments ===<br />
Using the following kernel boot parameters [[http://www.phoronix.com/scan.php?page=article&item=intel_i915_power&num=1| drastically reduces battery drain]]:<br />
{{hc||<nowiki><br />
pcie_aspm=force<br />
i915.i915_enable_rc6=1<br />
i915.i915_enable_fbc=1<br />
i915.lvds_downclock=1 <br />
</nowiki>}}<br />
{{ic|pcie_aspm&#61;force}} is no longer necessary with the latest > 3.3 linux kernel.<br><br />
<br />
This saves battery on the 3.5.x kernel and earlier, but with the 3.6 kernel these seem to draw a lot of power. Use with caution.<br />
<br />
==Troubleshooting==<br />
=== Media Keys ===<br />
Media keys that work out of the box:<br />
* Wireless On/Off<br />
* Backlight Brightness settings<br />
* Thinklight<br />
* Mute<br />
<br />
Media Keys that Do Not work out of the box:<br />
* [[Lenovo_ThinkPad_T420#Volume_up.2Fdown_not_changing_volume|Volume keys]] (Works out-of-the-box in [[Gnome|Gnome]])<br />
* Microphone mute<br />
You must find a workaround and bind the keys yourself for the rest of them.<br />
<br />
=== Rebind Forward and Back keys ===<br />
Keys forward and back (next to cursor keys) can be easily remapped to PageDown/PageUp.<br />
<br />
[[pacman|Install]] xmodmap with the package {{Pkg|xorg-server-utils}}<br />
<br />
Create a {{ic|~/.Xmodmap}} file with content:<br />
keysym XF86Back = Page_Up<br />
keysym XF86Forward = Page_Down<br />
<br />
Add this line to your {{ic|~/.xinitrc}} to make it work:<br />
xmodmap ~/.Xmodmap<br />
<br />
You can also re-map AudioPrev ({{Keypress|Fn+Left}}) and AudioNext ({{Keypress|Fn+Right}}) to Home/End:<br />
keysym XF86AudioNext = End<br />
keysym XF86AudioPrev = Home<br />
<br />
{{Note|You have to log out for the changes to take effect.}}<br />
<br />
{{Note|The keys should work out of the box, at least on [[KDE]].}}<br />
<br />
=== Turn touchpad on and off ===<br />
For some, the ({{Keypress|Fn+F8}}) key does not switch the touchpad on and off. Here is a simple keybind to add to your {{ic|~/.xbindkeysrc}} for keys to quickly change your touchpad state. For these to take effect, run {{ic|xbindkeysrc}}. This binds {{Keypress|Fn+F8}} to 'toggle the touchpad on and off'. (Tested in i3wm and xfce4, where normal {{Keypress|Fn+F8}} does not toggle the touchpad)<br />
<br />
# Toggle the Touchpad on|off<br />
"synclient TouchpadOff=`synclient -l | grep -ce TouchpadOff.*0`"<br />
m:0x0 + c:199<br />
XF86TouchpadToggle<br />
<br />
=== Volume up/down not changing volume ===<br />
Another quick keybind for {{ic|~/.xbindkeysrc}} to change the volume (which does not work on some DEs). Again, run {{ic|xbindkeys}} for these to take effect. Taken from [[Xbindkeys]]<br />
<br />
#increase volume<br />
"amixer set Master playback 1+"<br />
m:0x0 + c:123<br />
XF86AudioRaiseVolume<br />
<br />
#decrase volume<br />
"amixer set Master playback 1-"<br />
m:0x0 + c:122<br />
XF86AudioLowerVolume<br />
<br />
Also, while the mute button works, I rebound it to interface with ALSA. <br />
<br />
# Toggle mute<br />
"amixer set Master toggle"<br />
m:0x0 + c:121<br />
XF86AudioMute<br />
<br />
=== Shutdown on Battery ===<br />
Some users have reported that the T420 was rebooting on shutdown on battery power. There have been quite a few attempts to fix this. Three are detailed here. <br />
<br />
One way is to disable the module {{ic|ehci_hcd}}. See [[Kernel_modules#Blacklisting]] for more information.<br />
<br />
Or try disable Laptop-mode. <br />
Add {{Ic|!laptop-mode}} to the {{Ic|DAEMONS}} array in {{ic|/etc/rc.conf}}:<br />
DAEMONS=(...!laptop-mode...)<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?pid=1106437#p1106437 This forum post] details another way to have your computer not reboot on shutdown. Turning off the {{ic|laptop-mode}} daemon causes battery life to suffer, so when on the move and in need of a simple way to shutdown, this seems to work better.<br />
<br />
=== Hang on Reboot ===<br />
This is a problem on many laptops and can be fixed by [[Kernel modules#Blacklisting|blacklisting]] the {{ic|e1000e}} kernel module.<br />
<br />
=== No Backlight Controls ===<br />
One user has reported that the brightness controls (fn+home, fn+end) did not work in some desktop environments. This could be fixed by adding the following kernel options:<br />
acpi_backlight=vendor acpi_osi=Linux<br />
<br />
== See also ==<br />
* [[Lenovo ThinkPad T420s]]<br />
* [http://sysphere.org/~anrxc/j/articles/thinkpad-t420/index.html Arch Linux on ThinkPad T420i]</div>Btbyhttps://wiki.archlinux.org/index.php?title=Official_Installation_Guide_(%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%B0)&diff=154614Official Installation Guide (Українська)2011-08-31T10:44:00Z<p>Btby: </p>
<hr />
<div>[[Category:Getting and installing Arch (Українська)]]<br />
[[Category:HOWTOs (Українська)]]<br />
[[Category:Accessibility (Українська)]]<br />
[[Category:Website Resources]]<br />
{{Article summary start}}<br />
{{Article summary text| 1=<br />
<p>General installation documentation for the Arch Linux distribution.</p><br />
<br />
<p>This guide is only valid for release 2010.05 or newer.<br />
This guide is maintained in [http://projects.archlinux.org/?p=aif.git aif git] <br /><br />
Git pull requests, patches, comments are welcome on the arch<br />
[http://www.archlinux.org/mailman/listinfo/arch-releng releng mailing list]</p><br />
<br />
<p>This guide is available in the /usr/share/aif/docs directory of release media and on<br />
[http://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide The arch wiki]</p>}}<br />
{{Article summary heading|Available Languages}}<br />
<br />
{{i18n_entry|Українська|Official_Arch_Linux_Install_Guide_(Українська)}}<br />
<br />
{{Article summary heading|Related articles}}<br />
<br />
{{Article summary wiki|http://wiki.archlinux.org/index.php/Beginners_Guide Beginners Guide}} (If you are new to Arch)<br />
{{Article summary end}}<br />
<h1>Вступ</h1><br />
<br />
<h2>Що є Arch Linux?</h2><br />
<br />
<p>Arch Linux то є незалежно розроблюваний, i686 та x86_64 оптимізований дистрибутив Linux, що спочатку спирався на ідеї від CRUX. <br /><br />
Розроблення зосереджується на балансі між простотою, елегантністю, правильністю коду та найновішим софтом. <br /><br />
Його легкий та простий дизайн роблять нескладним його розширення та збирання у будь-яку систему, якої вам треба будувати.</p><br />
<br />
<h2>License</h2><br />
<br />
<p>Arch Linux and scripts are copyright</p><br />
<br />
<p>2002-2007 Judd Vinet</p><br />
<br />
<p>2007-2010 Aaron Griffin</p><br />
<br />
<p>and are licensed under the GNU General Public License (GPL).</p><br />
<br />
<h1>Pre-Installation</h1><br />
<br />
<h2>Architectures</h2><br />
<br />
<p>Arch Linux is optimized for i686 and x86_64 processors and therefore will not<br />
run on any lower or incompatible generations of x86 CPUs (i386, i486 or i586).<br />
A Pentium Pro, Pentium II or AMD Athlon (K7) processor or higher is required.<br />
(technically, cpu's without the cmov instruction such as AMD K6 and via C3 are also<br />
i686, but we use gcc and it uses cmov instructions)<br />
Before installing Arch Linux, <br />
you should decide which installation method you would like to use.</p><br />
<br />
<h2>Available images</h2><br />
<br />
<p>Arch Linux provides isofiles which can be written to CD-roms or to disks and usb sticks</p><br />
<br />
<p>The Isolinux bootloader is used.<br />
There are two variants of each installation medium which only differ<br />
in terms of supplied packages.</p><br />
<br />
<ul><br />
<li><p>The "core" images contain a snapshot of the core packages. <br /><br />
These images are best suited for people who have an internet connection<br />
which is slow or difficult to set up.</p></li><br />
<li><p>The "net" images contain no packages at all, and will use the network to<br />
install packages. <br /><br />
These images are preferred since you will end up with an up-<br />
to-date system and they are best suited for people with fast internet<br />
connections.</p></li><br />
</ul><br />
<br />
<p>You can instruct the installer to obtain the packages via the internet (or<br />
any network) using either of these images, and all images can also be used as<br />
fully functioning recovery environments. <br /><br />
The images run like any regular installed Arch Linux system. <br /><br />
In fact, they're exactly the same, just installed to a CD or USB image instead<br />
of a hard disk. <br /><br />
They include the entire "base" package set, as well as various<br />
networking utilities and drivers and have the aif package installed. <br /><br />
If there's something else you happen to need<br />
at runtime, just get your Internet connection up and install it using pacman. <br /><br />
A short pacman command reference is available at the end of this document.</p><br />
<br />
<p>All images are available in a i686, x86_64 or dual variant. The latter contains both and lets you choose<br />
an architecture at boot.</p><br />
<br />
<h2>AIF, the installation tool</h2><br />
<br />
<p>Arch Linux uses AIF aka 'Arch Linux Installation Framework' to perform<br />
installations. <br /><br />
This tool - written in bash - consists of some libraries to perform various<br />
functions (installing packages, setting up disks etc) and some so called<br />
procedures which use these libraries to provide an easy means to do<br />
an installation or to smaller related tasks ('partial procedures').<br />
These procedures are shipped by default:</p><br />
<br />
<ul><br />
<li>interactive: An interactive installation procedure, which asks you some<br />
questions, guides you through an installation and helps you<br />
configuring the target system by automatically changing some<br />
settings for you depending on what you did earlier<br />
(eg network settings) <br /><br />
The installed system will initially have only a customisable<br />
set of "base" packages installed with whatever utilities<br />
and drivers you need to get online. <br /><br />
Then once you've<br />
successfully booted the installed system, you'll run a full<br />
system upgrade and install any other packages you want.<br />
(aliased as <code>/arch/setup</code>)</li><br />
<li>automatic: An automated, deploy-tool-alike procedure designed for<br />
low-to zero interactivity. <br /><br />
uses profiles for configuration of the target system. <br /><br />
See /usr/share/aif/examples/ for example profile files.<br />
The examples implement quite generic scenarios but you're<br />
free to change them how you like to install extra packages,<br />
do configuration tweaks, etc.</li><br />
<li>base: basic, little-interactivity installation with some<br />
common defaults. <br /><br />
This procedure is used by the others to inherit from,<br />
it is NOT meant to be used directly by end users</li><br />
<li>partial-configure-network: exposes the network configuration step from<br />
the interactive procedure, to help you setup<br />
the network in the live environment</li><br />
<li>partial-disks: Process disk subsystem or do a rollback</li><br />
<li>partial-keymap: change your keymap/console font settings. (aliased as <code>km</code>)</li><br />
</ul><br />
<br />
<p>The benefit of procedures such as partial-keymap and<br />
partial-configure-network over direct usage of tools such as loadkeys or<br />
ifconfig is that when running the interactive procedure, you will get asked<br />
if you want to apply your settings to the config files of the target system.</p><br />
<br />
<p>If you want to go further, you can also:</p><br />
<br />
<ul><br />
<li>write your own procedures from scratch or by overriding certain parts of<br />
other procedures</li><br />
<li>write your own libraries, to provide new, reusable functionality</li><br />
<li>create your own configs for the procedures that support them (eg automatic)</li><br />
</ul><br />
<br />
<p>For more information, consult the readme of AIF.</p><br />
<br />
<h2>Acquiring Arch Linux</h2><br />
<br />
<ul><br />
<li><p>You can download Arch Linux from any of the mirrors listed on the<br />
[http://www.archlinux.org/download/ download] page.</p></li><br />
<li><p>You may also purchase an installation CD from Archux, OSDisc or LinuxCD<br />
and have it shipped anywhere in the world.</p></li><br />
</ul><br />
<br />
<h2>Preparing the Installation Media</h2><br />
<br />
<ul><br />
<li><p>Download your chosen medium through torrent (preferred) or from your favorite mirror.</p></li><br />
<li><p>Download iso/<release>/sha1sums.txt</p></li><br />
<li><p>Verify the integrity of the .iso image using sha1sum:</p><br />
<br />
<p>sha1sum --check sha1sums.txt</p><br />
<br />
<p>archlinux-XXX.iso: OK</p></li><br />
<li><p>Burn the ISO image to a CD-R or CD-RW using any software of your choice, or if using a USB mass storage device, such as a thumb drive,<br />
using dd or similar raw-write software:</p><br />
<br />
<p>dd if=archlinux-XXX.iso of=/dev/sdX</p></li><br />
</ul><br />
<br />
<p>Make sure to use /dev/sdX and not /dev/sdX1. <br /><br />
This command will irrevocably delete all files on your USB stick,<br />
so make sure you don't have any important files on it before doing this.</p><br />
<br />
<h1>Installing Arch Linux</h1><br />
<br />
<h2>Using the Install Media</h2><br />
<br />
<h3>Pre-boot</h3><br />
<br />
<p>Make sure your BIOS is set in a way to allow booting from your CD-ROM or USB<br />
device. <br /><br />
Reboot your computer with the Arch Linux Installation CD in the drive<br />
or the USB stick plugged in the port. Once the installation medium has started<br />
booting you will see the Arch Linux logo and a grub menu waiting for your<br />
selection. <br /><br />
Most likely you can just hit enter at this point. <br /><br />
If Grub hangs, you're one of the unlucky few whose CD-rom drive doesn't work<br />
with grub and you should try the isolinux image.</p><br />
<br />
<h3>Post-boot</h3><br />
<br />
<p>At the end of the boot procedure, you should be at a login prompt with some<br />
simple instructions at the top of the screen. <br /><br />
You should login as root. At this point you can<br />
optionally perform manual preparations and commence the actual installation</p><br />
<br />
<ul><br />
<li>If you prefer a non-US keymap or specific consolefont, type <code>km</code> to change<br />
any of these.</li><br />
<li>If for some reason you need network access before starting the installer<br />
(the interactive procedure lets you configure the network for NET<br />
installations) <br /><br />
you can type <code>aif -p partial-configure-network</code></li><br />
</ul><br />
<br />
<p>For both items, changed settings will be remembered to be optionally applied<br />
to the target system when using the interactive procedure.</p><br />
<br />
<p>There is also an <code>arch</code> login which can be usefull if you want to do things<br />
as non-privileged user. <br /><br />
Most people don't need this.</p><br />
<br />
<p>You will find that everything you need to perform this installation<br />
(a copy of this guide, aif README, shortcuts to common aif procedures)<br />
can be found in /arch</p><br />
<br />
<h2>Using PXE (Network booting)</h2><br />
<br />
<h3>Server</h3><br />
<br />
<p>On another machine running (Arch) Linux (live or normal), <br /><br />
you need to install and configure a dhcp and tftpd daemon.<br />
Dnsmasq is a fine choice which can do both. <br /><br />
You also need a nbd (network block device) daemon so the client can load <br />
the needed files.</p><br />
<br />
<p>You can find more info on the wiki<br />
[http://wiki.archlinux.org/index.php/Archiso-as-pxe-server Community contributed documentation]</p><br />
<br />
<p>(this section could be a bit more elaborate)</p><br />
<br />
<h3>Client</h3><br />
<br />
<p>Configure your system to try network booting (pxe) first.<br />
On most systems this happen by default.<br />
You will get an IP from the server and load all needed files over the network<br />
automatically. Once booted, you can proceed as normal.</p><br />
<br />
<h2>Performing the installation</h2><br />
<br />
<p>You can either use the interactive procedure or the automatic one. <br /><br />
See section [#Aif_the_installation_tool 2.3 AIF, the installation tool]<br />
or the AIF readme for more info.</p><br />
<br />
<h3>Interactive Installation Procedure</h3><br />
<br />
<p>Type <code>/arch/setup</code> (or <code>aif -p interactive</code>, which is the same) to start.</p><br />
<br />
<p>After the welcome message and disclaimer you will be presented with the main<br />
installation menu. You can use UP and DOWN arrow to navigate menus. Use TAB to<br />
switch between buttons and ENTER to select. At any point during the install<br />
process, you can switch to your 7th virtual console (ALT-F7) to view the<br />
output from the commands the setup is running. Use (ALT-F1) to get back to<br />
your first console where the installer is running, and any F-key in between if<br />
you need to open another console to intervene manually for any reason.</p><br />
<br />
<h4>Select Source</h4><br />
<br />
<p>As a first step you must choose the method you want to install Arch Linux. If<br />
you have a fast Internet connection, you might prefer the NET installation to<br />
ensure you get the latest packages instead of using the potentially outdated<br />
CD or USB image contents. If you're using a NET image you don't have much<br />
choice ;-).</p><br />
<br />
<h5>CD-ROM or OTHER SOURCE</h5><br />
<br />
<p>When choosing a CD-ROM or OTHER SOURCE install you will only be able to<br />
install packages contained on the CD, which may be quite old, or packages<br />
stored on a medium you were able to mount (DVD, USB stick or similar)<br />
somewhere in the filesystem tree manually. Of course it has the advantage that<br />
you won't need an Internet connection, and is therefore the recommended choice<br />
for dialup users or those unable or unwilling to download the entire package<br />
set.</p><br />
<br />
<h5>NET (FTP/HTTP)</h5><br />
<br />
<h6>Setup Network</h6><br />
<br />
<p>The first entry Setup Network will allow you to install and configure your<br />
network device. If you are using a wireless device you will still need to use<br />
the usual utilities to configure it manually, in which case this part of the<br />
installer isn't much use to you. A list of all currently available network<br />
devices is presented to you. If no ethernet device is available yet, or the<br />
one you wish to use is missing, either hit OK and go on to probe for it, or<br />
switch to another console and load the module manually. If you still can't<br />
configure your network card, make sure it's physically been properly<br />
installed, and that it is supported by the Linux kernel.</p><br />
<br />
<p>When the correct module is loaded, and your desired network card is listed,<br />
you should select the ethernet device you want to configure and you will be<br />
given the option to configure your network with DHCP. If your network uses<br />
DHCP, hit YES and let the installer do the rest. If you select NO, you will be<br />
asked to enter the networking information manually. Either way, your network<br />
should be successfully configured, and you may check connectivity using<br />
standard tools like ping on another console.</p><br />
<br />
<h6>Choose Mirror</h6><br />
<br />
<p>Choose Mirror will allow you to choose the preferred mirror to download the<br />
packages that will be installed in your Arch Linux system. You should choose a<br />
mirror situated near where you live, in order to achieve faster download<br />
speed. At some later point of the installation, you will be given the option<br />
to use the mirror you choose at this step, as the default mirror to download<br />
packages from.</p><br />
<br />
<p><em>*Note: *</em> ftp.archlinux.org is throttled to 50 KB/s.</p><br />
<br />
<p>These menu entries are only available when choosing FTP Installation, for<br />
rather obvious reasons. After successful preparation, choose Return to Main<br />
Menu.</p><br />
<br />
<h4>Set Clock</h4><br />
<br />
<p>Set Clock will allow you to set up your system clock and date. <br />
First you have to say if your hardwareclock is (or should be) in UTC or<br />
localtime.<br />
UTC is preferred, but if you have an OS installed which cannot handle UTC<br />
BIOS times correctly -like Windows- you'll have to choose localtime.<br />
Next the setup will want you to select your continent/country (timezone),<br />
and allow you to set the date and time (for which you can also use<br />
[http://www.ntp.org/ NTP] if your network is up)</p><br />
<br />
<h4>Prepare Hard Drive</h4><br />
<br />
<p>Prepare Hard Drive will lead you into a submenu offering two alternatives of<br />
preparing your target drive(s) for installation, and a means to undo changes if<br />
you want to retry.</p><br />
<br />
<ul><br />
<li>Auto-prepare will automatically partition (and fully overwrite) one disk<br />
of your choice.<br />
It creates a simple layout with a /boot, swap, / and /home partition where<br />
you have some control over the used filesystems and sizes thereof.</li><br />
<li>If you wish/need more control you can manually partition one or more hard<br />
disks and then manually specify a complete setup using the partitions on your<br />
disks. You can also use things such as lvm and dm_crypt here.</li><br />
<li>The Rollback feature will check which filesystems were created by either<br />
of these methods, unmount the relevant filesystems and destroy lvm and<br />
dm_crypt volumes if they were created by you. You need this option if you<br />
want to undo or redo a certain scheme. You will be prompted for this if<br />
you forget.</li><br />
</ul><br />
<br />
<p>Notes:</p><br />
<br />
<ul><br />
<li>AIF can help you set up new dm_crypt and lvm volumes, but not (yet) softraid.</li><br />
<li>AIF currently doesn't help you creating volumegroups that span multiple<br />
physical volumes. (if you need this -unlikely- : use vgcreate)</li><br />
<li>AIF supports reusing filesystems, but only if it can find the blockdevice.<br />
If you want to reuse a filesystem that is on top of lvm/dm_crypt/softraid,<br />
you'll need to bring up the volumes yourself.</li><br />
</ul><br />
<br />
<h5>Auto-Prepare</h5><br />
<br />
<p>Auto-Prepare will automatically partition a hard drive of your choice<br />
into a /boot, swap, a root partition, and a /home and then create filesystems<br />
on all four. These partitions will also be automatically mounted<br />
in the proper place. To be exact, this option will create:</p><br />
<br />
<ul><br />
<li>32 MB ext2 /boot partition</li><br />
<li>256 MB swap partition</li><br />
<li>7.5 GB root partition</li><br />
<li>/home partition with the remaining space</li><br />
</ul><br />
<br />
<p>You will be prompted to modify the sizes to your requirements, but /home will<br />
always use the remaining disk space. You can customize the used filesystem<br />
for /boot and for both of root and /home at once.</p><br />
<br />
<p><strong>AUTO-PREPARE WILL ERASE ALL DATA ON THE CHOSEN HARD DRIVE!</strong></p><br />
<br />
<h5>Manually partition Hard Drives</h5><br />
<br />
<p>Here you can select the disk(s) you want to partition, and you'll be<br />
dropped into the cfdisk program where you can freely modify the partitioning<br />
information until you [Write] and [Quit]. You will need at least a root<br />
partition to continue the installation.</p><br />
<br />
<h5>Manually configure block devices, filesystems and mountpoints</h5><br />
<br />
<p>In this menu all recognized partitions are listed. On top of these you can<br />
create new filesystems.<br />
You should be aware of three things:</p><br />
<br />
<ul><br />
<li>All of this is just a model, everything will only be set up after you confirm.</li><br />
<li>Not all blockdevices support all filesystems (Eg you cannot put an LVM<br />
volumegroup on something other then a LVM physical volume).<br />
The installer will automatically filter the list of possible filesystems<br />
and even select the one automatically for you if there's only one option.</li><br />
<li>Some filesystems will cause new blockdevices to be created.<br />
This is the case for dm_crypt and lvm volumes.<br />
You will see them appear in the model and you can use them to put another<br />
filesystem on top of it.</li><br />
<li>When asked for (optional) options to mkfs tools, pass<br />
arguments which will literally be added when calling mkfs.<br />
For example, to disable the journal on ext filesystems:<br />
<ul><br />
<li>don't do: <code>^has_journal</code></li><br />
<li>but rather: <code>-O ^has_journal</code></li><br />
</ul></li><br />
</ul><br />
<br />
<p>When filesystems setup is complete, you can select 'Done'. At this point a<br />
check will be run which will tell you any critical errors (such as no root<br />
filesystem) and/or give you some warnings which you may ignore (like no<br />
swap).<br />
If anything is found, you can go back to fix these issues, or continue at<br />
which point everything will be setup the way you asked.</p><br />
<br />
<p>For example, if you want a setup that uses LVM on top of dm_crypt, you would:</p><br />
<br />
<ul><br />
<li>make sure that you have a 2 partitions: a small one for the unencrypted<br />
boot (about 100M) and one for the rest of the (encrypted) system.<br />
(do this in "Manually partition hard drives")</li><br />
<li>on your /dev/sdX1, make an ext2 filesystem with mountpoint /boot</li><br />
<li>on your /dev/sdX2, make a dm_crypt volume, with label sdX2crypt<br />
(or whatever you want)</li><br />
<li>/dev/mapper/sdX2crypt will appear. Put a LVM physical volume on this</li><br />
<li>/dev/mapper/sdX2crypt+ appears. This is the representation of the<br />
physical volume. Put a volumegroup on this, with label cryptpool<br />
(or whatever you want)</li><br />
<li>/dev/mapper/cryptpool appears. On this volumegroup you are able to put<br />
multiple logical volumes. Make 2:<br />
<ul><br />
<li>one with size 5G: label this cryptroot</li><br />
<li>one with size 10G: label this crypthome</li><br />
</ul></li><br />
<li>2 new volumes appear:<br />
<ul><br />
<li>/dev/mapper/cryptpool-cryptroot: on this blockdevice, you can put your<br />
root filesystem, with mountpoint /.</li><br />
<li>/dev/mapper/cryptpool-crypthome is the blockdevice on which you can put<br />
the filesystem with mountpoint /home.</li><br />
</ul></li><br />
<li>If you want swapspace, make a logical volume for swap and put<br />
a swap volume on it.</li><br />
<li>That's it! If you select 'done' it should process the model and create<br />
your disk setup the way you specified.<br />
The cool part is that you can pick relatively small<br />
values for your volumes to start with, and if you need more space later<br />
you can grow the logical volume and the filesystem on top of it.</li><br />
</ul><br />
<br />
<h5>Rollbacks</h5><br />
<br />
<p>The rollback function will do everything necessary to "undo" changes you<br />
made in the 'Manually configure block devices, filesystems and mountpoints'<br />
or 'Autoprepare' step, to allow you completely redo your setup.</p><br />
<br />
<p>It will:</p><br />
<br />
<ul><br />
<li>unmount filesystems from the target system</li><br />
<li>destroy/undo lvm and dm_crypt volumes.</li><br />
</ul><br />
<br />
<p>It will not:</p><br />
<br />
<ul><br />
<li>undo any partitioning</li><br />
<li>remove 'simple' filesystems such as ext3, xfs, swap etc.</li><br />
</ul><br />
<br />
<p>The reason for this is simple: only things that might disturb subsequent<br />
hard disk preparations need to be undone.</p><br />
<br />
<h4>Select Packages</h4><br />
<br />
<p>Select Packages will let you select the packages you wish to install from the<br />
CD, USB or your NET mirror. You have the opportunity to specify whole package<br />
groups from which you'd generally like to install packages, then fine-tune<br />
your coarse selection by (de)selecting individual packages from the groups you<br />
have chosen using the space bar. It is recommended that you install all the<br />
"base" packages, but not anything else at this point. The only exception to<br />
this rule is installing any packages you need for setting up Internet<br />
connectivity.</p><br />
<br />
<p>Once you're done selecting the packages you need, leave the selection screen<br />
and continue to the next step.</p><br />
<br />
<h4>Install Packages</h4><br />
<br />
<p>Install Packages will now install the base system and any other packages you<br />
selected with resolved dependencies onto your harddisk.</p><br />
<br />
<h4>Configure System</h4><br />
<br />
<p>Configure System does multiple things:</p><br />
<br />
<ul><br />
<li>automatically preseed some configuration files (eg grub's menu.lst,<br />
mkinitcpio.conf's HOOKS, keymap settings in rc.conf, pacman mirror etc)</li><br />
<li>preseed some configuration files after you agreed. (eg network settings)</li><br />
<li>allow you to manually change important config files for your target system.<br />
You'll be asked which text editor you want to use.<br />
You have the choice between nano, joe and vi</li><br />
<li>allow you to set the root password for the target.</li><br />
</ul><br />
<br />
<p><strong>Configuration Files</strong></p><br />
<br />
<p>These are the core configuration files for Arch Linux.<br />
If you need help configuring a specific service, please read the appropriate<br />
manpage or refer to any online documentation you need.<br />
In many cases, the Arch Linux [http://wiki.archlinux.org/ Wiki] and<br />
[http://bbs.archlinux.org/ forums] are a rich source for help as well.</p><br />
<br />
<ul><br />
<li>/etc/rc.conf</li><br />
<li>[http://wiki.archlinux.org/index.php/Fstab /etc/fstab]</li><br />
<li>/etc/mkinitcpio.conf</li><br />
<li>/etc/modprobe.d/modprobe.conf</li><br />
<li>/etc/resolv.conf</li><br />
<li>/etc/hosts</li><br />
<li>/etc/hosts.deny</li><br />
<li>/etc/hosts.allow</li><br />
<li>/etc/locale.gen</li><br />
<li>/etc/pacman.d/mirrorlist</li><br />
<li>/etc/pacman.conf</li><br />
<li>/etc/crypttab</li><br />
</ul><br />
<br />
<p><strong>/etc/rc.conf</strong></p><br />
<br />
<p>This is the main configuration file for Arch Linux. It allows you to set your<br />
keyboard, timezone, hostname, network, daemons to run and modules to load at<br />
bootup, profiles, and more.</p><br />
<br />
<p><strong>LOCALE:</strong> This sets your system language, which will be used by all i18n-<br />
friendly applications and utilities. See locale.gen below for available<br />
options. This setting's default is fine for US English users.</p><br />
<br />
<p><strong>HARDWARECLOCK:</strong> Either UTC if your BIOS clock is set to UTC, or localtime<br />
if your BIOS clock is set to your local time. If you have an OS installed<br />
which cannot handle UTC BIOS times correctly, like Windows, choose localtime<br />
here, otherwise you should prefer UTC, which makes daylight savings time a<br />
non-issue and has a few other positive aspects.</p><br />
<br />
<p><strong>USEDIRECTISA:</strong> If set to "yes" it tells hwclock to use explicit I/O<br />
instructions to access the hardware clock. Otherwise, hwclock will try to use<br />
the /dev/rtc device it assumes to be driven by the rtc device driver. This<br />
setting's default "no" is fine for people not using an ISA machine.</p><br />
<br />
<p><strong>TIMEZONE:</strong> Specifies your time zone. Possible time zones are the relative<br />
path to a zoneinfo file starting from the directory /usr/share/zoneinfo. For<br />
example, a German timezone would be Europe/Berlin, which refers to the file<br />
/usr/share/zoneinfo/Europe/Berlin. If you don't know the exact name of your<br />
timezone file, worry about it later.</p><br />
<br />
<p><strong>KEYMAP:</strong> Defines the keymap to load with the loadkeys program on bootup.<br />
Possible keymaps are found in /usr/share/kbd/keymaps. Please note that this<br />
setting is only valid for your TTYs, not any graphical window managers or X!<br />
Again, the default is fine for US users.</p><br />
<br />
<p><strong>CONSOLEFONT:</strong> Defines the console font to load with the setfont program on<br />
bootup. Possible fonts are found in /usr/share/kbd/consolefonts.</p><br />
<br />
<p><strong>CONSOLEMAP:</strong> Defines the console map to load with the setfont program on<br />
bootup. Possible maps are found in /usr/share/kbd/consoletrans. Set this<br />
to a map suitable for the appropriate locale (8859-1 for Latin1, for example)<br />
if you're using an UTF-8 locale above, and use programs that generate 8-bit<br />
output. If you're using X11 for everyday work, don't bother, as it only<br />
affects the output of Linux console applications.</p><br />
<br />
<p><strong>USECOLOR:</strong> Enable (or disable) colorized status messages during boot-up.</p><br />
<br />
<p><strong>MOD_AUTOLOAD:</strong> If set to "yes", udev will be allowed to load modules as<br />
necessary upon bootup. If set to "no", it will not.</p><br />
<br />
<p><strong>MODULES:</strong> In this array you can list the names of modules you want to load<br />
during bootup without the need to bind them to a hardware device as in the<br />
modprobe.conf. Simply add the name of the module here, and put any options<br />
into modprobe.conf if need be. Prepending a module with a bang ('!') will<br />
blacklist the module, and not allow it to be loaded.</p><br />
<br />
<p><strong>USELVM:</strong> Set to "yes" to run a vgchange during sysinit, thus activating any<br />
LVM groups</p><br />
<br />
<p><strong>HOSTNAME:</strong> Set this to the hostname of the machine, without the domain<br />
part. This is totally your choice, as long as you stick to letters, digits and<br />
a few common special characters like the dash.</p><br />
<br />
<p><strong>INTERFACES:</strong> Here you define the settings for your networking interfaces.<br />
The default lines and the included comments explain the setup well enough. If<br />
you use DHCP, 'eth0="dhcp"' should work for you. If you do not use DHCP just<br />
keep in mind that the value of the variable (whose name must be equal to the<br />
name of the device which is supposed to be configured) equals the line which<br />
would be appended to the ifconfig command if you were to configure the device<br />
manually in the shell.</p><br />
<br />
<p><strong>ROUTES:</strong> You can define your own static network routes with arbitrary names<br />
here. Look at the example for a default gateway to get the idea. Basically the<br />
quoted part is identical to what you'd pass to a manual route add command,<br />
therefore reading man route is recommended or simply leave this alone.</p><br />
<br />
<p><strong>[/index.php/Network_Profiles NET_PROFILES]:</strong> Enables certain network profiles at bootup. Network<br />
profiles provide a convenient way of managing multiple network configurations,<br />
and are intended to replace the standard INTERFACES/ROUTES setup that is still<br />
recommended for systems with only one network configuration. If your computer<br />
will be participating in various networks at various times (eg, a laptop) then<br />
you should take a look at the /etc/network-profiles/ directory to set up some<br />
profiles. There is a template file included there that can be used to create<br />
new profiles. This now requires the netcfg package.</p><br />
<br />
<p><strong>DAEMONS:</strong> This array simply lists the names of those scripts contained in<br />
/etc/rc.d/ which are supposed to be started during the boot process. If a<br />
script name is prefixed with a bang (!), it is not executed. If a script is<br />
prefixed with an "at" symbol (@), then it will be executed in the background,<br />
ie. the startup sequence will not wait for successful completion before<br />
continuing. Usually you do not need to change the defaults to get a running<br />
system, but you are going to edit this array whenever you install system<br />
services like sshd, and want to start these automatically during bootup.</p><br />
<br />
<p><strong>[http://wiki.archlinux.org/index.php/Fstab /etc/fstab]</strong></p><br />
<br />
<p>Filesystem settings and mountpoints are configured here. The installer<br />
should have created the necessary entries. Ensure they are accurate and<br />
correct.</p><br />
<br />
<p><strong>/etc/mkinitcpio.conf</strong></p><br />
<br />
<p>This file allows you to fine-tune the initial ramdisk for your system. The<br />
ramdisk is a gzipped image that is read by the kernel during bootup. Its<br />
purpose is to bootstrap the system to the point where it can access the root<br />
filesystem. This means it has to load any modules that are required to "see"<br />
things like IDE, SCSI, or SATA drives (or USB/FW, if you are booting off a<br />
USB/FW drive). Once the ramdisk loads the proper modules, either manually or<br />
through udev, it passes control to the Arch system and your bootup continues.<br />
For this reason, the ramdisk only needs to contain the modules necessary to<br />
access the root filesystem. It does not need to contain every module you would<br />
ever want to use. The majority of your everyday modules will be loaded later<br />
on by udev, during the init process.</p><br />
<br />
<p>By default, mkinitcpio.conf is configured to autodetect all needed modules for<br />
IDE, SCSI, or SATA systems through so-called HOOKS. The installer should<br />
also have inserted hooks like crypt, lvm, keymap and usbinput if relevant.<br />
This means the default initrd should work for almost everybody.<br />
You can edit mkinitcpio.conf and remove the subsystem HOOKS<br />
(ie, IDE, SCSI, RAID, USB, etc) that you don't need.<br />
You can customize even further by specifying the exact modules you need<br />
in the MODULES array and remove even more of the hooks, but proceed with<br />
caution.</p><br />
<br />
<p>If you're using RAID on your root filesystem, the RAID settings near the<br />
bottom must be configured. See the wiki pages for<br />
RAID and mkinitcpio for more info. If you're using<br />
a non-US keyboard, you should also add the 'keymap' hook, as well as the<br />
'usbinput' hook if you are using a USB keyboard.</p><br />
<br />
<p><strong>/etc/modprobe.d/modprobe.conf</strong></p><br />
<br />
<p>This tells the kernel which modules to load for system devices, and<br />
what options to set. For example, to have the kernel load the Realtek 8139<br />
ethernet module when it starts the network (ie. tries to setup eth0), use this<br />
line:</p><br />
<br />
<pre> alias eth0 8139too<br />
</pre><br />
<br />
<p>Most people will not need to edit this file.</p><br />
<br />
<p><strong>/etc/resolv.conf</strong></p><br />
<br />
<p>Use this file to manually setup your preferred nameserver(s). It<br />
should basically look like this:</p><br />
<br />
<pre> search domain.tld<br />
<br />
nameserver 192.168.0.1<br />
<br />
nameserver 192.168.0.2<br />
</pre><br />
<br />
<p>Replace domain.tld and the ip addresses with your settings. The so-called<br />
search domain specifies the default domain that is appended to unqualified<br />
hostnames automatically. By setting this, a ping myhost will effectively<br />
become a ping myhost.domain.tld with the above values. These settings usually<br />
aren't mighty important, though, and most people should leave them alone for<br />
now. If you use DHCP, this file will be replaced with the correct values<br />
automatically when networking is started, meaning you can and should happily<br />
ignore this file.</p><br />
<br />
<p><strong>/etc/hosts</strong></p><br />
<br />
<p>This is where you stick hostname/ip associations of computers on your network.<br />
If a hostname isn't known to your DNS, you can add it here to allow proper<br />
resolving, or override DNS replies. You usually don't need to change anything<br />
here, but you might want to add the hostname and hostname + domain of the<br />
local machine to this file, resolving to the IP of your network interface.<br />
Some services, postfix for example, will bomb otherwise. If you don't know<br />
what you're doing, leave this file alone until you read man hosts.</p><br />
<br />
<p><strong>/etc/hosts.deny</strong></p><br />
<br />
<p>This file denies network services access. By default all network services are<br />
denied.</p><br />
<br />
<pre> ALL: ALL: DENY<br />
</pre><br />
<br />
<p><strong>/etc/hosts.allow</strong></p><br />
<br />
<p>This file allows network services access. Enter the services you want to allow<br />
here. eg. to allow all machines to connect via ssh:</p><br />
<br />
<pre> sshd: ALL: ALLOW<br />
</pre><br />
<br />
<p><strong>/etc/locale.gen</strong></p><br />
<br />
<p>This file contains a list of all supported locales and charsets available to<br />
you. When choosing a LOCALE in your /etc/rc.conf or when starting a program,<br />
it is required to uncomment the respective locale in this file, to make a<br />
"compiled" version available to the system, and run the locale-gen command as<br />
root to generate all uncommented locales and put them in their place<br />
afterwards. You should uncomment all locales you intend to use.</p><br />
<br />
<p>During the installation process, you do not need to run locale-gen manually,<br />
this will be taken care of automatically after saving your changes to this<br />
file. By default, all locales are enabled that would make sense by rc.conf's<br />
LOCALE= setting. To make your system work smoothly, you should edit this file<br />
and uncomment at least the one locale you're using in your rc.conf.</p><br />
<br />
<p><strong>/etc/pacman.d/mirrorlist</strong></p><br />
<br />
<p>This file contains a list of mirrors from which pacman will download packages<br />
for the official Arch Linux repositories. The mirrors are tried in the order<br />
in which they are listed. The $repo macro is automatically expanded by pacman<br />
depending on the repository (core, extra, community or testing).</p><br />
<br />
<p>If you are performing an FTP installation, the mirror you used to download the<br />
packages from will be added on top of the mirror list, in order to be used as<br />
the default mirror in your new Arch Linux system.</p><br />
<br />
<p><strong>/etc/pacman.conf</strong></p><br />
<br />
<p>Here you can customize pacman settings such as which repositories to use.</p><br />
<br />
<p><strong>/etc/crypttab</strong></p><br />
<br />
<p>If you use encryption on a device which is not used to bring up your root,<br />
(and hence is not enabled by the encrypt hook in mkinitcpio.conf), you should<br />
configure the volume in this file.</p><br />
<br />
<p><strong>Set Root Password</strong></p><br />
<br />
<p>At this step, you must set the root password for your system. Choose this<br />
password carefully, preferably as a mixture of alphanumeric and special<br />
characters, since this password allows you to modify critical parts of your<br />
system.</p><br />
<br />
<p>When you are done editing the configuration files choose Return to return to<br />
the main menu. The setup will regenerate the initial ramdisk to enable the<br />
changes you made in mkinitcpio.conf.</p><br />
<br />
<h4>Install Bootloader</h4><br />
<br />
<p>Install Bootloader will install a bootloader on your hard drive, either GRUB<br />
or NONE in case you have a bootloader already installed and want to use that<br />
one instead. If you choose to install GRUB, the setup script will want you to<br />
examine the appropriate configuration file to confirm the proper settings.</p><br />
<br />
<p><strong>/boot/grub/menu.lst</strong></p><br />
<br />
<p>You should check and modify this file to accommodate your boot setup if you<br />
want to use GRUB, otherwise you will have to modify your existing bootloader's<br />
configuration file. The installer will have pre-populated this file using UUID<br />
entries which you may have to change in the same cases you'd need to change<br />
them in your fstab.</p><br />
<br />
<p>After checking your bootloader configuration for correctness, you'll be<br />
prompted for a partition to install the loader to. Unless you're using yet<br />
another boot loader, you should install GRUB to the MBR of the installation<br />
disk, which is usually represented by the appropriate device name without a<br />
number suffix.</p><br />
<br />
<h4>Exit Install</h4><br />
<br />
<p>Exit the Installer, remove the media you used for the installation, type<br />
reboot at the command line and cross your fingers!</p><br />
<br />
<h3>Automatic Installation Procedure</h3><br />
<br />
<p>With the automatic installation procedure, you can do scripted/automatic<br />
installations.<br />
See [#Aif_the_installation_tool 2.3 AIF, the installation tool]<br />
In /usr/share/aif/examples you will find example profiles which will need<br />
no or minimal editing in order to install a system:</p><br />
<br />
<ul><br />
<li>generic-install-on-sda<br />
this file demonstrates some things you can do (adding custom packages,<br />
setting timezone, update config files etc)<br />
it sets up a simple installation (with a structure similar to what you get<br />
with Auto-prepare) on /dev/sda</li><br />
<li>fancy-install-on-sda<br />
very similar to generic-install-on-sda,<br />
but sets up a "filesystems on lvm on dm_crypt" system on /dev/sda</li><br />
</ul><br />
<br />
<p>Note that these files are plain bash files, so if you want to define for<br />
example <code>SYNC_URL</code> it must be singlequoted to prevent bash expanding <code>$repo</code></p><br />
<br />
<p>Invoke as <code>aif -p automatic -c /path/to/configfile</code><br />
Obviously, don't forget to change the hard disk names unless you want<br />
to use /dev/sda.</p><br />
<br />
<h4>Config file syntax</h4><br />
<br />
<p>Config files will be sourced by the bash shell, so they need to be valid<br />
bash code.</p><br />
<br />
<p><strong>PARTITIONS:</strong> Allows you to define partitions for your hard disk,<br />
separated by spaces.</p><br />
<br />
<ul><br />
<li>first comes the device file for the hard disk</li><br />
<li>then for each partition you want: size in MiB (or '*' for all remaining<br />
space),filesystem type and optionally a '+' to toggle the bootable flag.<br />
separated by colons (':')</li><br />
</ul><br />
<br />
<p><strong>BLOCKDATA:</strong> In this multi-line variable you can describe for each<br />
partition you'll have how it should be used. Study the examples to see how<br />
it works.</p><br />
<br />
<h3>Customizing Installations</h3><br />
<br />
<p>You can also customize your installation experience by writing new<br />
procedures (possibly inheriting from current procedures) or config files for<br />
procedures that support it (eg automatic).<br />
You have all the aif libraries at your disposal and you can create new<br />
libraries. (see /usr/lib/aif)<br />
This is a moving target, so consult the AIF readme for more information.</p><br />
<br />
<h1>Your new system</h1><br />
<br />
<p>If all went well, you can reboot your system (make sure you don't boot again<br />
from the same USB disk or CD-ROM drive) and your new system will boot.</p><br />
<br />
<p>You'll notice that in the early userspace (the part that comes after the<br />
bootloader) the hooks (as defined in mkinitcpio.conf) needed to get your root<br />
filesystem are run. <br /><br />
If you have lvm, it will run the lvm hook. If you use encryption, it will<br />
run the keymap and encrypt hooks so you can enter your password to decrypt the<br />
volume.</p><br />
<br />
<p>Once the system is booted, login as root. By default the password is empty<br />
but in the interactive procedure you can change it.</p><br />
<br />
<h1>More information</h1><br />
<br />
<h2>Package Management</h2><br />
<br />
<p>Pacman is the package manager which tracks all the software installed on your<br />
system. It has simple dependency support and uses the standard gzipped tar<br />
archive format for all packages. Some common tasks you might need to use<br />
during installation, are explained below with their respective commands. For<br />
an extensive explanation of pacman's options, read man pacman or consult the<br />
Arch Linux [http://wiki.archlinux.org/index.php/Pacman Wiki].</p><br />
<br />
<p><strong>Typical tasks:</strong></p><br />
<br />
<ul><br />
<li><p>Refreshing the package list</p><br />
<br />
<p># pacman --sync --refresh</p><br />
<br />
<p># pacman -Sy</p></li><br />
</ul><br />
<br />
<p>This will retrieve a fresh master package list from the repositories defined<br />
in the /etc/pacman.conf file and decompress it into the database area.</p><br />
<br />
<ul><br />
<li><p>Search the repositories for a package</p><br />
<br />
<p># pacman --sync --search <regexp></p><br />
<br />
<p># pacman -Ss <regexp></p></li><br />
</ul><br />
<br />
<p>Search each package in the sync databases for names or descriptions that match<br />
regexp.</p><br />
<br />
<ul><br />
<li><p>Display specific package info from the repository database</p><br />
<br />
<p># pacman --sync --info foo</p><br />
<br />
<p># pacman -Si foo</p></li><br />
</ul><br />
<br />
<p>Displays information from the repository database on package foo (size,<br />
build date, dependencies, conflicts, etc.)</p><br />
<br />
<ul><br />
<li><p>Adding a package from the repositories</p><br />
<br />
<p># pacman --sync foo</p><br />
<br />
<p># pacman -S foo</p></li><br />
</ul><br />
<br />
<p>Retrieve and install package foo, complete with all dependencies it requires.<br />
Before using any sync option, make sure you refreshed the package list.</p><br />
<br />
<ul><br />
<li><p>List installed packages</p><br />
<br />
<p># pacman --query</p><br />
<br />
<p># pacman -Q</p></li><br />
</ul><br />
<br />
<p>Displays a list of all installed packages in the system.</p><br />
<br />
<ul><br />
<li><p>Check if a specific package is installed</p><br />
<br />
<p># pacman --query foo</p><br />
<br />
<p># pacman -Q foo</p></li><br />
</ul><br />
<br />
<p>This command will display the name and version of the foo package if it is<br />
installed, nothing otherwise.</p><br />
<br />
<ul><br />
<li><p>Display specific package info</p><br />
<br />
<p># pacman --query --info foo</p><br />
<br />
<p># pacman -Qi foo</p></li><br />
</ul><br />
<br />
<p>Displays information on the installed package foo (size, install date, build<br />
date, dependencies, conflicts, etc.)</p><br />
<br />
<ul><br />
<li><p>Display list of files contained in package</p><br />
<br />
<p># pacman --query --list foo</p><br />
<br />
<p># pacman -Ql foo</p></li><br />
</ul><br />
<br />
<p>Lists all files belonging to package foo.</p><br />
<br />
<ul><br />
<li><p>Find out which package a specific file belongs to</p><br />
<br />
<p># pacman --query --owns /path/to/file</p><br />
<br />
<p># pacman -Qo /path/to/file</p></li><br />
</ul><br />
<br />
<p>This query displays the name and version of the package which contains the<br />
file referenced by its full path as a parameter.</p><br />
<br />
<h2>APPENDIX</h2><br />
<br />
<p>See [http://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide_Appendix Official Arch Linux Install Guide Appendix]<br />
for some related unofficial documentation, new users may find useful.</p></div>Btbyhttps://wiki.archlinux.org/index.php?title=Official_Installation_Guide_(%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%B0)&diff=154613Official Installation Guide (Українська)2011-08-31T10:42:03Z<p>Btby: </p>
<hr />
<div>[[Category:Getting and installing Arch (Українська)]]<br />
[[Category:HOWTOs (Українська)]]<br />
[[Category:Accessibility (Українська)]]<br />
[[Category:Website Resources]]<br />
{{Article summary start}}<br />
{{Article summary text| 1=<br />
<p>General installation documentation for the Arch Linux distribution.</p><br />
<br />
<p>This guide is only valid for release 2010.05 or newer.<br />
This guide is maintained in [http://projects.archlinux.org/?p=aif.git aif git] <br /><br />
Git pull requests, patches, comments are welcome on the arch<br />
[http://www.archlinux.org/mailman/listinfo/arch-releng releng mailing list]</p><br />
<br />
<p>This guide is available in the /usr/share/aif/docs directory of release media and on<br />
[http://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide The arch wiki]</p>}}<br />
{{Article summary heading|Available Languages}}<br />
<br />
{{i18n_entry|Українська|Official_Arch_Linux_Install_Guide_(Українська)}}<br />
<br />
{{Article summary heading|Related articles}}<br />
<br />
{{Article summary wiki|http://wiki.archlinux.org/index.php/Beginners_Guide Beginners Guide}} (If you are new to Arch)<br />
{{Article summary end}}<br />
<h1>Вступ</h1><br />
<br />
<h2>Що є Arch Linux?</h2><br />
<br />
<p>Arch Linux то є незалежно розроблюваний, i686 та x86_64 оптимізований дистрибутив Linux, що спочатку спирався на ідеї від CRUX. <br /><br />
Розроблення зосереджується на балансі між простотою, елегантністю, правільністю коду та найновішим софтом. <br /><br />
Його легкий та простий дизайн роблять нескладним його розширення та збирання у будь-яку систему, якої вам треба будувати.</p><br />
<br />
<h2>License</h2><br />
<br />
<p>Arch Linux and scripts are copyright</p><br />
<br />
<p>2002-2007 Judd Vinet</p><br />
<br />
<p>2007-2010 Aaron Griffin</p><br />
<br />
<p>and are licensed under the GNU General Public License (GPL).</p><br />
<br />
<h1>Pre-Installation</h1><br />
<br />
<h2>Architectures</h2><br />
<br />
<p>Arch Linux is optimized for i686 and x86_64 processors and therefore will not<br />
run on any lower or incompatible generations of x86 CPUs (i386, i486 or i586).<br />
A Pentium Pro, Pentium II or AMD Athlon (K7) processor or higher is required.<br />
(technically, cpu's without the cmov instruction such as AMD K6 and via C3 are also<br />
i686, but we use gcc and it uses cmov instructions)<br />
Before installing Arch Linux, <br />
you should decide which installation method you would like to use.</p><br />
<br />
<h2>Available images</h2><br />
<br />
<p>Arch Linux provides isofiles which can be written to CD-roms or to disks and usb sticks</p><br />
<br />
<p>The Isolinux bootloader is used.<br />
There are two variants of each installation medium which only differ<br />
in terms of supplied packages.</p><br />
<br />
<ul><br />
<li><p>The "core" images contain a snapshot of the core packages. <br /><br />
These images are best suited for people who have an internet connection<br />
which is slow or difficult to set up.</p></li><br />
<li><p>The "net" images contain no packages at all, and will use the network to<br />
install packages. <br /><br />
These images are preferred since you will end up with an up-<br />
to-date system and they are best suited for people with fast internet<br />
connections.</p></li><br />
</ul><br />
<br />
<p>You can instruct the installer to obtain the packages via the internet (or<br />
any network) using either of these images, and all images can also be used as<br />
fully functioning recovery environments. <br /><br />
The images run like any regular installed Arch Linux system. <br /><br />
In fact, they're exactly the same, just installed to a CD or USB image instead<br />
of a hard disk. <br /><br />
They include the entire "base" package set, as well as various<br />
networking utilities and drivers and have the aif package installed. <br /><br />
If there's something else you happen to need<br />
at runtime, just get your Internet connection up and install it using pacman. <br /><br />
A short pacman command reference is available at the end of this document.</p><br />
<br />
<p>All images are available in a i686, x86_64 or dual variant. The latter contains both and lets you choose<br />
an architecture at boot.</p><br />
<br />
<h2>AIF, the installation tool</h2><br />
<br />
<p>Arch Linux uses AIF aka 'Arch Linux Installation Framework' to perform<br />
installations. <br /><br />
This tool - written in bash - consists of some libraries to perform various<br />
functions (installing packages, setting up disks etc) and some so called<br />
procedures which use these libraries to provide an easy means to do<br />
an installation or to smaller related tasks ('partial procedures').<br />
These procedures are shipped by default:</p><br />
<br />
<ul><br />
<li>interactive: An interactive installation procedure, which asks you some<br />
questions, guides you through an installation and helps you<br />
configuring the target system by automatically changing some<br />
settings for you depending on what you did earlier<br />
(eg network settings) <br /><br />
The installed system will initially have only a customisable<br />
set of "base" packages installed with whatever utilities<br />
and drivers you need to get online. <br /><br />
Then once you've<br />
successfully booted the installed system, you'll run a full<br />
system upgrade and install any other packages you want.<br />
(aliased as <code>/arch/setup</code>)</li><br />
<li>automatic: An automated, deploy-tool-alike procedure designed for<br />
low-to zero interactivity. <br /><br />
uses profiles for configuration of the target system. <br /><br />
See /usr/share/aif/examples/ for example profile files.<br />
The examples implement quite generic scenarios but you're<br />
free to change them how you like to install extra packages,<br />
do configuration tweaks, etc.</li><br />
<li>base: basic, little-interactivity installation with some<br />
common defaults. <br /><br />
This procedure is used by the others to inherit from,<br />
it is NOT meant to be used directly by end users</li><br />
<li>partial-configure-network: exposes the network configuration step from<br />
the interactive procedure, to help you setup<br />
the network in the live environment</li><br />
<li>partial-disks: Process disk subsystem or do a rollback</li><br />
<li>partial-keymap: change your keymap/console font settings. (aliased as <code>km</code>)</li><br />
</ul><br />
<br />
<p>The benefit of procedures such as partial-keymap and<br />
partial-configure-network over direct usage of tools such as loadkeys or<br />
ifconfig is that when running the interactive procedure, you will get asked<br />
if you want to apply your settings to the config files of the target system.</p><br />
<br />
<p>If you want to go further, you can also:</p><br />
<br />
<ul><br />
<li>write your own procedures from scratch or by overriding certain parts of<br />
other procedures</li><br />
<li>write your own libraries, to provide new, reusable functionality</li><br />
<li>create your own configs for the procedures that support them (eg automatic)</li><br />
</ul><br />
<br />
<p>For more information, consult the readme of AIF.</p><br />
<br />
<h2>Acquiring Arch Linux</h2><br />
<br />
<ul><br />
<li><p>You can download Arch Linux from any of the mirrors listed on the<br />
[http://www.archlinux.org/download/ download] page.</p></li><br />
<li><p>You may also purchase an installation CD from Archux, OSDisc or LinuxCD<br />
and have it shipped anywhere in the world.</p></li><br />
</ul><br />
<br />
<h2>Preparing the Installation Media</h2><br />
<br />
<ul><br />
<li><p>Download your chosen medium through torrent (preferred) or from your favorite mirror.</p></li><br />
<li><p>Download iso/<release>/sha1sums.txt</p></li><br />
<li><p>Verify the integrity of the .iso image using sha1sum:</p><br />
<br />
<p>sha1sum --check sha1sums.txt</p><br />
<br />
<p>archlinux-XXX.iso: OK</p></li><br />
<li><p>Burn the ISO image to a CD-R or CD-RW using any software of your choice, or if using a USB mass storage device, such as a thumb drive,<br />
using dd or similar raw-write software:</p><br />
<br />
<p>dd if=archlinux-XXX.iso of=/dev/sdX</p></li><br />
</ul><br />
<br />
<p>Make sure to use /dev/sdX and not /dev/sdX1. <br /><br />
This command will irrevocably delete all files on your USB stick,<br />
so make sure you don't have any important files on it before doing this.</p><br />
<br />
<h1>Installing Arch Linux</h1><br />
<br />
<h2>Using the Install Media</h2><br />
<br />
<h3>Pre-boot</h3><br />
<br />
<p>Make sure your BIOS is set in a way to allow booting from your CD-ROM or USB<br />
device. <br /><br />
Reboot your computer with the Arch Linux Installation CD in the drive<br />
or the USB stick plugged in the port. Once the installation medium has started<br />
booting you will see the Arch Linux logo and a grub menu waiting for your<br />
selection. <br /><br />
Most likely you can just hit enter at this point. <br /><br />
If Grub hangs, you're one of the unlucky few whose CD-rom drive doesn't work<br />
with grub and you should try the isolinux image.</p><br />
<br />
<h3>Post-boot</h3><br />
<br />
<p>At the end of the boot procedure, you should be at a login prompt with some<br />
simple instructions at the top of the screen. <br /><br />
You should login as root. At this point you can<br />
optionally perform manual preparations and commence the actual installation</p><br />
<br />
<ul><br />
<li>If you prefer a non-US keymap or specific consolefont, type <code>km</code> to change<br />
any of these.</li><br />
<li>If for some reason you need network access before starting the installer<br />
(the interactive procedure lets you configure the network for NET<br />
installations) <br /><br />
you can type <code>aif -p partial-configure-network</code></li><br />
</ul><br />
<br />
<p>For both items, changed settings will be remembered to be optionally applied<br />
to the target system when using the interactive procedure.</p><br />
<br />
<p>There is also an <code>arch</code> login which can be usefull if you want to do things<br />
as non-privileged user. <br /><br />
Most people don't need this.</p><br />
<br />
<p>You will find that everything you need to perform this installation<br />
(a copy of this guide, aif README, shortcuts to common aif procedures)<br />
can be found in /arch</p><br />
<br />
<h2>Using PXE (Network booting)</h2><br />
<br />
<h3>Server</h3><br />
<br />
<p>On another machine running (Arch) Linux (live or normal), <br /><br />
you need to install and configure a dhcp and tftpd daemon.<br />
Dnsmasq is a fine choice which can do both. <br /><br />
You also need a nbd (network block device) daemon so the client can load <br />
the needed files.</p><br />
<br />
<p>You can find more info on the wiki<br />
[http://wiki.archlinux.org/index.php/Archiso-as-pxe-server Community contributed documentation]</p><br />
<br />
<p>(this section could be a bit more elaborate)</p><br />
<br />
<h3>Client</h3><br />
<br />
<p>Configure your system to try network booting (pxe) first.<br />
On most systems this happen by default.<br />
You will get an IP from the server and load all needed files over the network<br />
automatically. Once booted, you can proceed as normal.</p><br />
<br />
<h2>Performing the installation</h2><br />
<br />
<p>You can either use the interactive procedure or the automatic one. <br /><br />
See section [#Aif_the_installation_tool 2.3 AIF, the installation tool]<br />
or the AIF readme for more info.</p><br />
<br />
<h3>Interactive Installation Procedure</h3><br />
<br />
<p>Type <code>/arch/setup</code> (or <code>aif -p interactive</code>, which is the same) to start.</p><br />
<br />
<p>After the welcome message and disclaimer you will be presented with the main<br />
installation menu. You can use UP and DOWN arrow to navigate menus. Use TAB to<br />
switch between buttons and ENTER to select. At any point during the install<br />
process, you can switch to your 7th virtual console (ALT-F7) to view the<br />
output from the commands the setup is running. Use (ALT-F1) to get back to<br />
your first console where the installer is running, and any F-key in between if<br />
you need to open another console to intervene manually for any reason.</p><br />
<br />
<h4>Select Source</h4><br />
<br />
<p>As a first step you must choose the method you want to install Arch Linux. If<br />
you have a fast Internet connection, you might prefer the NET installation to<br />
ensure you get the latest packages instead of using the potentially outdated<br />
CD or USB image contents. If you're using a NET image you don't have much<br />
choice ;-).</p><br />
<br />
<h5>CD-ROM or OTHER SOURCE</h5><br />
<br />
<p>When choosing a CD-ROM or OTHER SOURCE install you will only be able to<br />
install packages contained on the CD, which may be quite old, or packages<br />
stored on a medium you were able to mount (DVD, USB stick or similar)<br />
somewhere in the filesystem tree manually. Of course it has the advantage that<br />
you won't need an Internet connection, and is therefore the recommended choice<br />
for dialup users or those unable or unwilling to download the entire package<br />
set.</p><br />
<br />
<h5>NET (FTP/HTTP)</h5><br />
<br />
<h6>Setup Network</h6><br />
<br />
<p>The first entry Setup Network will allow you to install and configure your<br />
network device. If you are using a wireless device you will still need to use<br />
the usual utilities to configure it manually, in which case this part of the<br />
installer isn't much use to you. A list of all currently available network<br />
devices is presented to you. If no ethernet device is available yet, or the<br />
one you wish to use is missing, either hit OK and go on to probe for it, or<br />
switch to another console and load the module manually. If you still can't<br />
configure your network card, make sure it's physically been properly<br />
installed, and that it is supported by the Linux kernel.</p><br />
<br />
<p>When the correct module is loaded, and your desired network card is listed,<br />
you should select the ethernet device you want to configure and you will be<br />
given the option to configure your network with DHCP. If your network uses<br />
DHCP, hit YES and let the installer do the rest. If you select NO, you will be<br />
asked to enter the networking information manually. Either way, your network<br />
should be successfully configured, and you may check connectivity using<br />
standard tools like ping on another console.</p><br />
<br />
<h6>Choose Mirror</h6><br />
<br />
<p>Choose Mirror will allow you to choose the preferred mirror to download the<br />
packages that will be installed in your Arch Linux system. You should choose a<br />
mirror situated near where you live, in order to achieve faster download<br />
speed. At some later point of the installation, you will be given the option<br />
to use the mirror you choose at this step, as the default mirror to download<br />
packages from.</p><br />
<br />
<p><em>*Note: *</em> ftp.archlinux.org is throttled to 50 KB/s.</p><br />
<br />
<p>These menu entries are only available when choosing FTP Installation, for<br />
rather obvious reasons. After successful preparation, choose Return to Main<br />
Menu.</p><br />
<br />
<h4>Set Clock</h4><br />
<br />
<p>Set Clock will allow you to set up your system clock and date. <br />
First you have to say if your hardwareclock is (or should be) in UTC or<br />
localtime.<br />
UTC is preferred, but if you have an OS installed which cannot handle UTC<br />
BIOS times correctly -like Windows- you'll have to choose localtime.<br />
Next the setup will want you to select your continent/country (timezone),<br />
and allow you to set the date and time (for which you can also use<br />
[http://www.ntp.org/ NTP] if your network is up)</p><br />
<br />
<h4>Prepare Hard Drive</h4><br />
<br />
<p>Prepare Hard Drive will lead you into a submenu offering two alternatives of<br />
preparing your target drive(s) for installation, and a means to undo changes if<br />
you want to retry.</p><br />
<br />
<ul><br />
<li>Auto-prepare will automatically partition (and fully overwrite) one disk<br />
of your choice.<br />
It creates a simple layout with a /boot, swap, / and /home partition where<br />
you have some control over the used filesystems and sizes thereof.</li><br />
<li>If you wish/need more control you can manually partition one or more hard<br />
disks and then manually specify a complete setup using the partitions on your<br />
disks. You can also use things such as lvm and dm_crypt here.</li><br />
<li>The Rollback feature will check which filesystems were created by either<br />
of these methods, unmount the relevant filesystems and destroy lvm and<br />
dm_crypt volumes if they were created by you. You need this option if you<br />
want to undo or redo a certain scheme. You will be prompted for this if<br />
you forget.</li><br />
</ul><br />
<br />
<p>Notes:</p><br />
<br />
<ul><br />
<li>AIF can help you set up new dm_crypt and lvm volumes, but not (yet) softraid.</li><br />
<li>AIF currently doesn't help you creating volumegroups that span multiple<br />
physical volumes. (if you need this -unlikely- : use vgcreate)</li><br />
<li>AIF supports reusing filesystems, but only if it can find the blockdevice.<br />
If you want to reuse a filesystem that is on top of lvm/dm_crypt/softraid,<br />
you'll need to bring up the volumes yourself.</li><br />
</ul><br />
<br />
<h5>Auto-Prepare</h5><br />
<br />
<p>Auto-Prepare will automatically partition a hard drive of your choice<br />
into a /boot, swap, a root partition, and a /home and then create filesystems<br />
on all four. These partitions will also be automatically mounted<br />
in the proper place. To be exact, this option will create:</p><br />
<br />
<ul><br />
<li>32 MB ext2 /boot partition</li><br />
<li>256 MB swap partition</li><br />
<li>7.5 GB root partition</li><br />
<li>/home partition with the remaining space</li><br />
</ul><br />
<br />
<p>You will be prompted to modify the sizes to your requirements, but /home will<br />
always use the remaining disk space. You can customize the used filesystem<br />
for /boot and for both of root and /home at once.</p><br />
<br />
<p><strong>AUTO-PREPARE WILL ERASE ALL DATA ON THE CHOSEN HARD DRIVE!</strong></p><br />
<br />
<h5>Manually partition Hard Drives</h5><br />
<br />
<p>Here you can select the disk(s) you want to partition, and you'll be<br />
dropped into the cfdisk program where you can freely modify the partitioning<br />
information until you [Write] and [Quit]. You will need at least a root<br />
partition to continue the installation.</p><br />
<br />
<h5>Manually configure block devices, filesystems and mountpoints</h5><br />
<br />
<p>In this menu all recognized partitions are listed. On top of these you can<br />
create new filesystems.<br />
You should be aware of three things:</p><br />
<br />
<ul><br />
<li>All of this is just a model, everything will only be set up after you confirm.</li><br />
<li>Not all blockdevices support all filesystems (Eg you cannot put an LVM<br />
volumegroup on something other then a LVM physical volume).<br />
The installer will automatically filter the list of possible filesystems<br />
and even select the one automatically for you if there's only one option.</li><br />
<li>Some filesystems will cause new blockdevices to be created.<br />
This is the case for dm_crypt and lvm volumes.<br />
You will see them appear in the model and you can use them to put another<br />
filesystem on top of it.</li><br />
<li>When asked for (optional) options to mkfs tools, pass<br />
arguments which will literally be added when calling mkfs.<br />
For example, to disable the journal on ext filesystems:<br />
<ul><br />
<li>don't do: <code>^has_journal</code></li><br />
<li>but rather: <code>-O ^has_journal</code></li><br />
</ul></li><br />
</ul><br />
<br />
<p>When filesystems setup is complete, you can select 'Done'. At this point a<br />
check will be run which will tell you any critical errors (such as no root<br />
filesystem) and/or give you some warnings which you may ignore (like no<br />
swap).<br />
If anything is found, you can go back to fix these issues, or continue at<br />
which point everything will be setup the way you asked.</p><br />
<br />
<p>For example, if you want a setup that uses LVM on top of dm_crypt, you would:</p><br />
<br />
<ul><br />
<li>make sure that you have a 2 partitions: a small one for the unencrypted<br />
boot (about 100M) and one for the rest of the (encrypted) system.<br />
(do this in "Manually partition hard drives")</li><br />
<li>on your /dev/sdX1, make an ext2 filesystem with mountpoint /boot</li><br />
<li>on your /dev/sdX2, make a dm_crypt volume, with label sdX2crypt<br />
(or whatever you want)</li><br />
<li>/dev/mapper/sdX2crypt will appear. Put a LVM physical volume on this</li><br />
<li>/dev/mapper/sdX2crypt+ appears. This is the representation of the<br />
physical volume. Put a volumegroup on this, with label cryptpool<br />
(or whatever you want)</li><br />
<li>/dev/mapper/cryptpool appears. On this volumegroup you are able to put<br />
multiple logical volumes. Make 2:<br />
<ul><br />
<li>one with size 5G: label this cryptroot</li><br />
<li>one with size 10G: label this crypthome</li><br />
</ul></li><br />
<li>2 new volumes appear:<br />
<ul><br />
<li>/dev/mapper/cryptpool-cryptroot: on this blockdevice, you can put your<br />
root filesystem, with mountpoint /.</li><br />
<li>/dev/mapper/cryptpool-crypthome is the blockdevice on which you can put<br />
the filesystem with mountpoint /home.</li><br />
</ul></li><br />
<li>If you want swapspace, make a logical volume for swap and put<br />
a swap volume on it.</li><br />
<li>That's it! If you select 'done' it should process the model and create<br />
your disk setup the way you specified.<br />
The cool part is that you can pick relatively small<br />
values for your volumes to start with, and if you need more space later<br />
you can grow the logical volume and the filesystem on top of it.</li><br />
</ul><br />
<br />
<h5>Rollbacks</h5><br />
<br />
<p>The rollback function will do everything necessary to "undo" changes you<br />
made in the 'Manually configure block devices, filesystems and mountpoints'<br />
or 'Autoprepare' step, to allow you completely redo your setup.</p><br />
<br />
<p>It will:</p><br />
<br />
<ul><br />
<li>unmount filesystems from the target system</li><br />
<li>destroy/undo lvm and dm_crypt volumes.</li><br />
</ul><br />
<br />
<p>It will not:</p><br />
<br />
<ul><br />
<li>undo any partitioning</li><br />
<li>remove 'simple' filesystems such as ext3, xfs, swap etc.</li><br />
</ul><br />
<br />
<p>The reason for this is simple: only things that might disturb subsequent<br />
hard disk preparations need to be undone.</p><br />
<br />
<h4>Select Packages</h4><br />
<br />
<p>Select Packages will let you select the packages you wish to install from the<br />
CD, USB or your NET mirror. You have the opportunity to specify whole package<br />
groups from which you'd generally like to install packages, then fine-tune<br />
your coarse selection by (de)selecting individual packages from the groups you<br />
have chosen using the space bar. It is recommended that you install all the<br />
"base" packages, but not anything else at this point. The only exception to<br />
this rule is installing any packages you need for setting up Internet<br />
connectivity.</p><br />
<br />
<p>Once you're done selecting the packages you need, leave the selection screen<br />
and continue to the next step.</p><br />
<br />
<h4>Install Packages</h4><br />
<br />
<p>Install Packages will now install the base system and any other packages you<br />
selected with resolved dependencies onto your harddisk.</p><br />
<br />
<h4>Configure System</h4><br />
<br />
<p>Configure System does multiple things:</p><br />
<br />
<ul><br />
<li>automatically preseed some configuration files (eg grub's menu.lst,<br />
mkinitcpio.conf's HOOKS, keymap settings in rc.conf, pacman mirror etc)</li><br />
<li>preseed some configuration files after you agreed. (eg network settings)</li><br />
<li>allow you to manually change important config files for your target system.<br />
You'll be asked which text editor you want to use.<br />
You have the choice between nano, joe and vi</li><br />
<li>allow you to set the root password for the target.</li><br />
</ul><br />
<br />
<p><strong>Configuration Files</strong></p><br />
<br />
<p>These are the core configuration files for Arch Linux.<br />
If you need help configuring a specific service, please read the appropriate<br />
manpage or refer to any online documentation you need.<br />
In many cases, the Arch Linux [http://wiki.archlinux.org/ Wiki] and<br />
[http://bbs.archlinux.org/ forums] are a rich source for help as well.</p><br />
<br />
<ul><br />
<li>/etc/rc.conf</li><br />
<li>[http://wiki.archlinux.org/index.php/Fstab /etc/fstab]</li><br />
<li>/etc/mkinitcpio.conf</li><br />
<li>/etc/modprobe.d/modprobe.conf</li><br />
<li>/etc/resolv.conf</li><br />
<li>/etc/hosts</li><br />
<li>/etc/hosts.deny</li><br />
<li>/etc/hosts.allow</li><br />
<li>/etc/locale.gen</li><br />
<li>/etc/pacman.d/mirrorlist</li><br />
<li>/etc/pacman.conf</li><br />
<li>/etc/crypttab</li><br />
</ul><br />
<br />
<p><strong>/etc/rc.conf</strong></p><br />
<br />
<p>This is the main configuration file for Arch Linux. It allows you to set your<br />
keyboard, timezone, hostname, network, daemons to run and modules to load at<br />
bootup, profiles, and more.</p><br />
<br />
<p><strong>LOCALE:</strong> This sets your system language, which will be used by all i18n-<br />
friendly applications and utilities. See locale.gen below for available<br />
options. This setting's default is fine for US English users.</p><br />
<br />
<p><strong>HARDWARECLOCK:</strong> Either UTC if your BIOS clock is set to UTC, or localtime<br />
if your BIOS clock is set to your local time. If you have an OS installed<br />
which cannot handle UTC BIOS times correctly, like Windows, choose localtime<br />
here, otherwise you should prefer UTC, which makes daylight savings time a<br />
non-issue and has a few other positive aspects.</p><br />
<br />
<p><strong>USEDIRECTISA:</strong> If set to "yes" it tells hwclock to use explicit I/O<br />
instructions to access the hardware clock. Otherwise, hwclock will try to use<br />
the /dev/rtc device it assumes to be driven by the rtc device driver. This<br />
setting's default "no" is fine for people not using an ISA machine.</p><br />
<br />
<p><strong>TIMEZONE:</strong> Specifies your time zone. Possible time zones are the relative<br />
path to a zoneinfo file starting from the directory /usr/share/zoneinfo. For<br />
example, a German timezone would be Europe/Berlin, which refers to the file<br />
/usr/share/zoneinfo/Europe/Berlin. If you don't know the exact name of your<br />
timezone file, worry about it later.</p><br />
<br />
<p><strong>KEYMAP:</strong> Defines the keymap to load with the loadkeys program on bootup.<br />
Possible keymaps are found in /usr/share/kbd/keymaps. Please note that this<br />
setting is only valid for your TTYs, not any graphical window managers or X!<br />
Again, the default is fine for US users.</p><br />
<br />
<p><strong>CONSOLEFONT:</strong> Defines the console font to load with the setfont program on<br />
bootup. Possible fonts are found in /usr/share/kbd/consolefonts.</p><br />
<br />
<p><strong>CONSOLEMAP:</strong> Defines the console map to load with the setfont program on<br />
bootup. Possible maps are found in /usr/share/kbd/consoletrans. Set this<br />
to a map suitable for the appropriate locale (8859-1 for Latin1, for example)<br />
if you're using an UTF-8 locale above, and use programs that generate 8-bit<br />
output. If you're using X11 for everyday work, don't bother, as it only<br />
affects the output of Linux console applications.</p><br />
<br />
<p><strong>USECOLOR:</strong> Enable (or disable) colorized status messages during boot-up.</p><br />
<br />
<p><strong>MOD_AUTOLOAD:</strong> If set to "yes", udev will be allowed to load modules as<br />
necessary upon bootup. If set to "no", it will not.</p><br />
<br />
<p><strong>MODULES:</strong> In this array you can list the names of modules you want to load<br />
during bootup without the need to bind them to a hardware device as in the<br />
modprobe.conf. Simply add the name of the module here, and put any options<br />
into modprobe.conf if need be. Prepending a module with a bang ('!') will<br />
blacklist the module, and not allow it to be loaded.</p><br />
<br />
<p><strong>USELVM:</strong> Set to "yes" to run a vgchange during sysinit, thus activating any<br />
LVM groups</p><br />
<br />
<p><strong>HOSTNAME:</strong> Set this to the hostname of the machine, without the domain<br />
part. This is totally your choice, as long as you stick to letters, digits and<br />
a few common special characters like the dash.</p><br />
<br />
<p><strong>INTERFACES:</strong> Here you define the settings for your networking interfaces.<br />
The default lines and the included comments explain the setup well enough. If<br />
you use DHCP, 'eth0="dhcp"' should work for you. If you do not use DHCP just<br />
keep in mind that the value of the variable (whose name must be equal to the<br />
name of the device which is supposed to be configured) equals the line which<br />
would be appended to the ifconfig command if you were to configure the device<br />
manually in the shell.</p><br />
<br />
<p><strong>ROUTES:</strong> You can define your own static network routes with arbitrary names<br />
here. Look at the example for a default gateway to get the idea. Basically the<br />
quoted part is identical to what you'd pass to a manual route add command,<br />
therefore reading man route is recommended or simply leave this alone.</p><br />
<br />
<p><strong>[/index.php/Network_Profiles NET_PROFILES]:</strong> Enables certain network profiles at bootup. Network<br />
profiles provide a convenient way of managing multiple network configurations,<br />
and are intended to replace the standard INTERFACES/ROUTES setup that is still<br />
recommended for systems with only one network configuration. If your computer<br />
will be participating in various networks at various times (eg, a laptop) then<br />
you should take a look at the /etc/network-profiles/ directory to set up some<br />
profiles. There is a template file included there that can be used to create<br />
new profiles. This now requires the netcfg package.</p><br />
<br />
<p><strong>DAEMONS:</strong> This array simply lists the names of those scripts contained in<br />
/etc/rc.d/ which are supposed to be started during the boot process. If a<br />
script name is prefixed with a bang (!), it is not executed. If a script is<br />
prefixed with an "at" symbol (@), then it will be executed in the background,<br />
ie. the startup sequence will not wait for successful completion before<br />
continuing. Usually you do not need to change the defaults to get a running<br />
system, but you are going to edit this array whenever you install system<br />
services like sshd, and want to start these automatically during bootup.</p><br />
<br />
<p><strong>[http://wiki.archlinux.org/index.php/Fstab /etc/fstab]</strong></p><br />
<br />
<p>Filesystem settings and mountpoints are configured here. The installer<br />
should have created the necessary entries. Ensure they are accurate and<br />
correct.</p><br />
<br />
<p><strong>/etc/mkinitcpio.conf</strong></p><br />
<br />
<p>This file allows you to fine-tune the initial ramdisk for your system. The<br />
ramdisk is a gzipped image that is read by the kernel during bootup. Its<br />
purpose is to bootstrap the system to the point where it can access the root<br />
filesystem. This means it has to load any modules that are required to "see"<br />
things like IDE, SCSI, or SATA drives (or USB/FW, if you are booting off a<br />
USB/FW drive). Once the ramdisk loads the proper modules, either manually or<br />
through udev, it passes control to the Arch system and your bootup continues.<br />
For this reason, the ramdisk only needs to contain the modules necessary to<br />
access the root filesystem. It does not need to contain every module you would<br />
ever want to use. The majority of your everyday modules will be loaded later<br />
on by udev, during the init process.</p><br />
<br />
<p>By default, mkinitcpio.conf is configured to autodetect all needed modules for<br />
IDE, SCSI, or SATA systems through so-called HOOKS. The installer should<br />
also have inserted hooks like crypt, lvm, keymap and usbinput if relevant.<br />
This means the default initrd should work for almost everybody.<br />
You can edit mkinitcpio.conf and remove the subsystem HOOKS<br />
(ie, IDE, SCSI, RAID, USB, etc) that you don't need.<br />
You can customize even further by specifying the exact modules you need<br />
in the MODULES array and remove even more of the hooks, but proceed with<br />
caution.</p><br />
<br />
<p>If you're using RAID on your root filesystem, the RAID settings near the<br />
bottom must be configured. See the wiki pages for<br />
RAID and mkinitcpio for more info. If you're using<br />
a non-US keyboard, you should also add the 'keymap' hook, as well as the<br />
'usbinput' hook if you are using a USB keyboard.</p><br />
<br />
<p><strong>/etc/modprobe.d/modprobe.conf</strong></p><br />
<br />
<p>This tells the kernel which modules to load for system devices, and<br />
what options to set. For example, to have the kernel load the Realtek 8139<br />
ethernet module when it starts the network (ie. tries to setup eth0), use this<br />
line:</p><br />
<br />
<pre> alias eth0 8139too<br />
</pre><br />
<br />
<p>Most people will not need to edit this file.</p><br />
<br />
<p><strong>/etc/resolv.conf</strong></p><br />
<br />
<p>Use this file to manually setup your preferred nameserver(s). It<br />
should basically look like this:</p><br />
<br />
<pre> search domain.tld<br />
<br />
nameserver 192.168.0.1<br />
<br />
nameserver 192.168.0.2<br />
</pre><br />
<br />
<p>Replace domain.tld and the ip addresses with your settings. The so-called<br />
search domain specifies the default domain that is appended to unqualified<br />
hostnames automatically. By setting this, a ping myhost will effectively<br />
become a ping myhost.domain.tld with the above values. These settings usually<br />
aren't mighty important, though, and most people should leave them alone for<br />
now. If you use DHCP, this file will be replaced with the correct values<br />
automatically when networking is started, meaning you can and should happily<br />
ignore this file.</p><br />
<br />
<p><strong>/etc/hosts</strong></p><br />
<br />
<p>This is where you stick hostname/ip associations of computers on your network.<br />
If a hostname isn't known to your DNS, you can add it here to allow proper<br />
resolving, or override DNS replies. You usually don't need to change anything<br />
here, but you might want to add the hostname and hostname + domain of the<br />
local machine to this file, resolving to the IP of your network interface.<br />
Some services, postfix for example, will bomb otherwise. If you don't know<br />
what you're doing, leave this file alone until you read man hosts.</p><br />
<br />
<p><strong>/etc/hosts.deny</strong></p><br />
<br />
<p>This file denies network services access. By default all network services are<br />
denied.</p><br />
<br />
<pre> ALL: ALL: DENY<br />
</pre><br />
<br />
<p><strong>/etc/hosts.allow</strong></p><br />
<br />
<p>This file allows network services access. Enter the services you want to allow<br />
here. eg. to allow all machines to connect via ssh:</p><br />
<br />
<pre> sshd: ALL: ALLOW<br />
</pre><br />
<br />
<p><strong>/etc/locale.gen</strong></p><br />
<br />
<p>This file contains a list of all supported locales and charsets available to<br />
you. When choosing a LOCALE in your /etc/rc.conf or when starting a program,<br />
it is required to uncomment the respective locale in this file, to make a<br />
"compiled" version available to the system, and run the locale-gen command as<br />
root to generate all uncommented locales and put them in their place<br />
afterwards. You should uncomment all locales you intend to use.</p><br />
<br />
<p>During the installation process, you do not need to run locale-gen manually,<br />
this will be taken care of automatically after saving your changes to this<br />
file. By default, all locales are enabled that would make sense by rc.conf's<br />
LOCALE= setting. To make your system work smoothly, you should edit this file<br />
and uncomment at least the one locale you're using in your rc.conf.</p><br />
<br />
<p><strong>/etc/pacman.d/mirrorlist</strong></p><br />
<br />
<p>This file contains a list of mirrors from which pacman will download packages<br />
for the official Arch Linux repositories. The mirrors are tried in the order<br />
in which they are listed. The $repo macro is automatically expanded by pacman<br />
depending on the repository (core, extra, community or testing).</p><br />
<br />
<p>If you are performing an FTP installation, the mirror you used to download the<br />
packages from will be added on top of the mirror list, in order to be used as<br />
the default mirror in your new Arch Linux system.</p><br />
<br />
<p><strong>/etc/pacman.conf</strong></p><br />
<br />
<p>Here you can customize pacman settings such as which repositories to use.</p><br />
<br />
<p><strong>/etc/crypttab</strong></p><br />
<br />
<p>If you use encryption on a device which is not used to bring up your root,<br />
(and hence is not enabled by the encrypt hook in mkinitcpio.conf), you should<br />
configure the volume in this file.</p><br />
<br />
<p><strong>Set Root Password</strong></p><br />
<br />
<p>At this step, you must set the root password for your system. Choose this<br />
password carefully, preferably as a mixture of alphanumeric and special<br />
characters, since this password allows you to modify critical parts of your<br />
system.</p><br />
<br />
<p>When you are done editing the configuration files choose Return to return to<br />
the main menu. The setup will regenerate the initial ramdisk to enable the<br />
changes you made in mkinitcpio.conf.</p><br />
<br />
<h4>Install Bootloader</h4><br />
<br />
<p>Install Bootloader will install a bootloader on your hard drive, either GRUB<br />
or NONE in case you have a bootloader already installed and want to use that<br />
one instead. If you choose to install GRUB, the setup script will want you to<br />
examine the appropriate configuration file to confirm the proper settings.</p><br />
<br />
<p><strong>/boot/grub/menu.lst</strong></p><br />
<br />
<p>You should check and modify this file to accommodate your boot setup if you<br />
want to use GRUB, otherwise you will have to modify your existing bootloader's<br />
configuration file. The installer will have pre-populated this file using UUID<br />
entries which you may have to change in the same cases you'd need to change<br />
them in your fstab.</p><br />
<br />
<p>After checking your bootloader configuration for correctness, you'll be<br />
prompted for a partition to install the loader to. Unless you're using yet<br />
another boot loader, you should install GRUB to the MBR of the installation<br />
disk, which is usually represented by the appropriate device name without a<br />
number suffix.</p><br />
<br />
<h4>Exit Install</h4><br />
<br />
<p>Exit the Installer, remove the media you used for the installation, type<br />
reboot at the command line and cross your fingers!</p><br />
<br />
<h3>Automatic Installation Procedure</h3><br />
<br />
<p>With the automatic installation procedure, you can do scripted/automatic<br />
installations.<br />
See [#Aif_the_installation_tool 2.3 AIF, the installation tool]<br />
In /usr/share/aif/examples you will find example profiles which will need<br />
no or minimal editing in order to install a system:</p><br />
<br />
<ul><br />
<li>generic-install-on-sda<br />
this file demonstrates some things you can do (adding custom packages,<br />
setting timezone, update config files etc)<br />
it sets up a simple installation (with a structure similar to what you get<br />
with Auto-prepare) on /dev/sda</li><br />
<li>fancy-install-on-sda<br />
very similar to generic-install-on-sda,<br />
but sets up a "filesystems on lvm on dm_crypt" system on /dev/sda</li><br />
</ul><br />
<br />
<p>Note that these files are plain bash files, so if you want to define for<br />
example <code>SYNC_URL</code> it must be singlequoted to prevent bash expanding <code>$repo</code></p><br />
<br />
<p>Invoke as <code>aif -p automatic -c /path/to/configfile</code><br />
Obviously, don't forget to change the hard disk names unless you want<br />
to use /dev/sda.</p><br />
<br />
<h4>Config file syntax</h4><br />
<br />
<p>Config files will be sourced by the bash shell, so they need to be valid<br />
bash code.</p><br />
<br />
<p><strong>PARTITIONS:</strong> Allows you to define partitions for your hard disk,<br />
separated by spaces.</p><br />
<br />
<ul><br />
<li>first comes the device file for the hard disk</li><br />
<li>then for each partition you want: size in MiB (or '*' for all remaining<br />
space),filesystem type and optionally a '+' to toggle the bootable flag.<br />
separated by colons (':')</li><br />
</ul><br />
<br />
<p><strong>BLOCKDATA:</strong> In this multi-line variable you can describe for each<br />
partition you'll have how it should be used. Study the examples to see how<br />
it works.</p><br />
<br />
<h3>Customizing Installations</h3><br />
<br />
<p>You can also customize your installation experience by writing new<br />
procedures (possibly inheriting from current procedures) or config files for<br />
procedures that support it (eg automatic).<br />
You have all the aif libraries at your disposal and you can create new<br />
libraries. (see /usr/lib/aif)<br />
This is a moving target, so consult the AIF readme for more information.</p><br />
<br />
<h1>Your new system</h1><br />
<br />
<p>If all went well, you can reboot your system (make sure you don't boot again<br />
from the same USB disk or CD-ROM drive) and your new system will boot.</p><br />
<br />
<p>You'll notice that in the early userspace (the part that comes after the<br />
bootloader) the hooks (as defined in mkinitcpio.conf) needed to get your root<br />
filesystem are run. <br /><br />
If you have lvm, it will run the lvm hook. If you use encryption, it will<br />
run the keymap and encrypt hooks so you can enter your password to decrypt the<br />
volume.</p><br />
<br />
<p>Once the system is booted, login as root. By default the password is empty<br />
but in the interactive procedure you can change it.</p><br />
<br />
<h1>More information</h1><br />
<br />
<h2>Package Management</h2><br />
<br />
<p>Pacman is the package manager which tracks all the software installed on your<br />
system. It has simple dependency support and uses the standard gzipped tar<br />
archive format for all packages. Some common tasks you might need to use<br />
during installation, are explained below with their respective commands. For<br />
an extensive explanation of pacman's options, read man pacman or consult the<br />
Arch Linux [http://wiki.archlinux.org/index.php/Pacman Wiki].</p><br />
<br />
<p><strong>Typical tasks:</strong></p><br />
<br />
<ul><br />
<li><p>Refreshing the package list</p><br />
<br />
<p># pacman --sync --refresh</p><br />
<br />
<p># pacman -Sy</p></li><br />
</ul><br />
<br />
<p>This will retrieve a fresh master package list from the repositories defined<br />
in the /etc/pacman.conf file and decompress it into the database area.</p><br />
<br />
<ul><br />
<li><p>Search the repositories for a package</p><br />
<br />
<p># pacman --sync --search <regexp></p><br />
<br />
<p># pacman -Ss <regexp></p></li><br />
</ul><br />
<br />
<p>Search each package in the sync databases for names or descriptions that match<br />
regexp.</p><br />
<br />
<ul><br />
<li><p>Display specific package info from the repository database</p><br />
<br />
<p># pacman --sync --info foo</p><br />
<br />
<p># pacman -Si foo</p></li><br />
</ul><br />
<br />
<p>Displays information from the repository database on package foo (size,<br />
build date, dependencies, conflicts, etc.)</p><br />
<br />
<ul><br />
<li><p>Adding a package from the repositories</p><br />
<br />
<p># pacman --sync foo</p><br />
<br />
<p># pacman -S foo</p></li><br />
</ul><br />
<br />
<p>Retrieve and install package foo, complete with all dependencies it requires.<br />
Before using any sync option, make sure you refreshed the package list.</p><br />
<br />
<ul><br />
<li><p>List installed packages</p><br />
<br />
<p># pacman --query</p><br />
<br />
<p># pacman -Q</p></li><br />
</ul><br />
<br />
<p>Displays a list of all installed packages in the system.</p><br />
<br />
<ul><br />
<li><p>Check if a specific package is installed</p><br />
<br />
<p># pacman --query foo</p><br />
<br />
<p># pacman -Q foo</p></li><br />
</ul><br />
<br />
<p>This command will display the name and version of the foo package if it is<br />
installed, nothing otherwise.</p><br />
<br />
<ul><br />
<li><p>Display specific package info</p><br />
<br />
<p># pacman --query --info foo</p><br />
<br />
<p># pacman -Qi foo</p></li><br />
</ul><br />
<br />
<p>Displays information on the installed package foo (size, install date, build<br />
date, dependencies, conflicts, etc.)</p><br />
<br />
<ul><br />
<li><p>Display list of files contained in package</p><br />
<br />
<p># pacman --query --list foo</p><br />
<br />
<p># pacman -Ql foo</p></li><br />
</ul><br />
<br />
<p>Lists all files belonging to package foo.</p><br />
<br />
<ul><br />
<li><p>Find out which package a specific file belongs to</p><br />
<br />
<p># pacman --query --owns /path/to/file</p><br />
<br />
<p># pacman -Qo /path/to/file</p></li><br />
</ul><br />
<br />
<p>This query displays the name and version of the package which contains the<br />
file referenced by its full path as a parameter.</p><br />
<br />
<h2>APPENDIX</h2><br />
<br />
<p>See [http://wiki.archlinux.org/index.php/Official_Arch_Linux_Install_Guide_Appendix Official Arch Linux Install Guide Appendix]<br />
for some related unofficial documentation, new users may find useful.</p></div>Btbyhttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=148667Arch is the best2011-07-09T11:22:19Z<p>Btby: </p>
<hr />
<div>[[Category:About Arch (English)]]<br />
<br />
== Purpose ==<br />
<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which aims to prove Arch's superiority.<br />
<br />
== History ==<br />
<br />
The project was initiated in April 2008 by long time Arch community member [http://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". Over the following weeks, this project gathered momentum and was ported to multiple different languages, both programming and verbal.<br />
<br />
== The Code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
<br />
'''Ada''' - A pascal dialect.<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end HelloWorld;<br />
<br />
<br />
'''Awk''' - A data-driven programming language designed for processing text-based data.<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
<br />
'''Bash''' - The original program, should be compatible with any shell.<br />
#!/bin/bash<br />
echo "Arch is the best!"<br />
<br />
<br />
'''Bash (Alternate)''' - Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
#!/bin/bash<br />
yes Arch is the best!<br />
<br />
<br />
'''Bash (Dynamically updated)'''<br />
#!/bin/bash<br />
wget http://wiki.archlinux.org/index.php/Arch_is_the_best -qO-| sed -n ':b;n;s/id="Translations"//;Tb;:d;n;s/id="Links"//;t;p;bd'|sed 's/<[^>]*>//g'|sed 'N;s/\n/: /;N;N;s/\n//g'<br />
<br />
<br />
'''Befunge''' - Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
<br />
'''brainf*ck''' - Doesn't the language name exaplain it?<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
<br />
'''C''' - Note the three space indenting used in this project, much like that used by other superior beings.<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main () <br />
{<br />
printf("Arch is the best!\n");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
'''C#''' - Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
'''C++''' - Arch == Linux++<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
'''Clojure''' - A Lisp dialect that runs on the JVM.<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn arch-is-the-best<br />
"Asks for a language and prints the corresponding translation. <br />
Loops until input is 'quit'"<br />
[]<br />
(println "Available languages: ")<br />
(doseq [language (keys translations)]<br />
(println (str "\t" language)))<br />
(flush)<br />
(loop []<br />
(print "Enter language, or quit: ")<br />
(flush)<br />
(let [input (. (read-line) toLowerCase)]<br />
(if (= input "quit")<br />
(println "Goodbye!")<br />
(do<br />
(println (translations input "Bad input!"))<br />
(recur))))))<br />
<br />
<br />
'''Common Lisp''' - Tested on SBCL, feel free to add more of the translations.<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
<br />
'''Common Lisp (Alternate)''' - Should run on any implementation (Clisp, Allegro, SBCL...)<br />
(princ "Arch is the best!")<br />
<br />
<br />
'''Dash''' - Debian Almquist shell (dash) is a Unix shell, much smaller than bash but still aiming at POSIX-compliancy.<br />
#!/bin/dash<br />
echo "Arch is the best!"<br />
<br />
<br />
'''Forth''' Stack-based language.<br />
." Arch is the best" cr -- kiss way<br />
<br />
<br />
'''Gjs''' - A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
<br />
'''Go''' - A language created by Google that's a love child between C, C++ and Python.<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() <br />
{<br />
fmt.Printf("Arch is the best!\n")<br />
}<br />
<br />
<br />
'''Haskell''' - The language where IO is easy and unproblematic.<br />
main = putStrLn "Arch is the best!"<br />
<br />
<br />
'''HTML''' - A scripting language used to create and define web pages and their content.<br />
<html><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
Arch is the best!<br />
</body><br />
</html><br />
<br />
<br />
'''Java''' - An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
'''JavaScript''' - Also known as ECMAScript, a prototype-based object-oriented scripting language. <br />
<script type="text/javascript"><br />
alert('Arch is the best!');<br />
</script><br />
<br />
<br />
'''LilyPond''' - A powerful music engraving program with an intuitive LaTeX-like input language.<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
<br />
'''LOLCODE''' - Why not?<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
<br />
'''Lua''' - A lightweight, extensible programming language.<br />
if io.popen("uname -r"):read():match("ARCH") then print("Arch is the best") else print("Get the Arch") end<br />
<br />
<br />
'''Objective-C''' - A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
NSLog(@"Arch is the best!");<br />
<br />
<br />
'''OCaml''' - The main implementation of the Caml programming language.<br />
print_endline "Arch is the best!"<br />
<br />
<br />
'''Perl''' - A high-level, general-purpose, interpreted, dynamic programming language.<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
<br />
'''PHP''' - A general-purpose scripting language.<br />
<?php<br />
echo "Arch is the best!\n";<br />
?> <br />
<br />
<br />
'''Pixilang''' - Make me pixels.<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
<br />
'''Portable GNU assembler''' - as -o arch.o arch.s && ld -o arch -O0 arch.o<br />
<br />
.section .data<br />
archIsBest: <br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax <br />
xorl %ebx, %ebx<br />
incl %ebx <br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx <br />
int $0x80 <br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx <br />
int $0x80<br />
<br />
<br />
'''Processing''' - An open source programming language and IDE built for the electronic arts and visual design.<br />
println("Arch is the best!");<br />
<br />
<br />
'''Prolog''' - A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
format('Arch is the best~n',[]).<br />
<br />
<br />
'''Python''' - An interpreted, general-purpose high-level programming language.<br />
#!/usr/bin/env python<br />
print('Arch is the best!')<br />
<br />
<br />
'''QBASIC''' - An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
PRINT "Arch is the best!"<br />
<br />
<br />
'''R''' - A language for statistical computing (and much more!).<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
<br />
'''Ruby''' - A dynamic, reflective, general purpose object-oriented programming language.<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
<br />
'''Scheme''' - A dialect of Lisp.<br />
(display "Arch is the best!\n")<br />
<br />
<br />
'''Seed''' - A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
<br />
'''Shoes''' - A Ruby version using Shoes for a GUI<br />
Shoes.app :width => 135, :height => 30 do <br />
para "Arch is the Best!"<br />
end<br />
<br />
<br />
'''Standard ML''' - A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
print "Arch is the best!\n"<br />
<br />
<br />
'''Tcl/Tk''' - A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
<br />
''' Wiring (Arduino)''' - Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
void setup() <br />
{<br />
Serial.begin(9600); <br />
}<br />
void loop() <br />
{ <br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
<br />
''' X11 ''' - X11 is an architecture independent system for display of graphical user interfaces.<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
==Translations==<br />
'''Arabic'''<br />
ارتش هو الأفضل<br />
<br />
'''Australian'''<br />
Arch is fair dinkum, mate!<br />
<br />
'''Bahasa Indonesia'''<br />
Arch terbaik!<br />
<br />
'''Basque'''<br />
Arch onena da!<br />
<br />
'''Belarusian'''<br />
Арч - самы лепшы!<br />
<br />
'''Bengali'''<br />
Arch shobcheye bhalo!<br />
<br />
'''Binary ASCII'''<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
'''British'''<br />
Arch is simply spiffing.<br />
<br />
'''Bulgarian'''<br />
Арч е най-добрият!<br />
<br />
'''Chinese (Simplified)'''<br />
Arch 最棒了!<br />
<br />
'''Ancient Chinese'''<br />
阿祺,盡善矣。<br />
<br />
'''Czech'''<br />
Arch je nejlepší!<br />
<br />
'''Danish'''<br />
Arch er bedst!<br />
<br />
'''Desrever (Reversed)'''<br />
!tseb eht si hcrA<br />
<br />
'''Dutch'''<br />
Arch is de beste!<br />
<br />
'''Finnish'''<br />
Arch on paras!<br />
<br />
'''Filipino'''<br />
Mabuhay ang Arch!<br />
<br />
'''French'''<br />
Arch est le meilleur!<br />
<br />
'''Galician'''<br />
Arch é o mellor!<br />
<br />
'''German'''<br />
Arch ist das Beste!<br />
<br />
'''Greek'''<br />
Το Arch είναι το καλύτερο!<br />
<br />
'''h4x0r'''<br />
Arch 15 7h3 b357!<br />
<br />
'''Hantec'''<br />
Arch je nejbetélnější!<br />
<br />
'''Hebrew'''<br />
ארצ' זה הכי אחי!<br />
<br />
'''Hexadecimal ASCII'''<br />
4172636820697320746865206265737421<br />
<br />
'''Hindi'''<br />
आर्ख सब से अच्छा है ।<br />
<br />
'''Hungarian'''<br />
Az Arch a legjobb!<br />
<br />
'''Irish'''<br />
Arch é is fearr!<br />
<br />
'''Italian'''<br />
Arch è il migliore!<br />
<br />
'''Japanese'''<br />
Archが一番ですよ!<br />
<br />
'''Kazakh'''<br />
Арч - ең жақсы!<br />
<br />
'''Latin'''<br />
Arch optimus est!<br />
<br />
'''Latvian'''<br />
Arch ir labākais!<br />
<br />
'''Lithuanian'''<br />
Arch yra geriausias!<br />
<br />
'''Marathi'''<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
'''Norwegian'''<br />
Arch er best!<br />
<br />
'''Pig Latin'''<br />
Archway isway ethay estbay!<br />
<br />
'''Polish'''<br />
Arch jest najlepszy!<br />
<br />
'''Portuguese'''<br />
Arch é o melhor!<br />
<br />
'''Québécois'''<br />
Arch est le plus meilleure du monde!<br />
<br />
'''Romanian'''<br />
Аrch e cel mai bun!<br />
<br />
'''Russian'''<br />
Арч - лучший!<br />
<br />
'''Serbian'''<br />
Arch je najbolji!<br />
<br />
'''Slovenian'''<br />
Arch je najboljši!<br />
<br />
'''Spanish'''<br />
¡Arch es el mejor!<br />
<br />
'''Swedish'''<br />
Arch är bäst!<br />
<br />
'''Fikonspråket'''<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
'''Turkish'''<br />
Arch en iyisidir!<br />
<br />
'''Tamil'''<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
'''Ukrainian'''<br />
Arch є найкращий!<br />
<br />
'''Vietnamese'''<br />
Arch là tốt nhất!<br />
<br />
'''Morse Code'''<br />
..- -... ..- -. - ..- / .. ... / - .... . / -... . ... -<br />
<br />
'''Braille'''<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
'''Base64'''<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
'''URL Encoded'''<br />
Arch%20is%20the%20best!<br />
<br />
'''ROT13'''<br />
Nepu vf gur orfg!<br />
<br />
== Links ==<br />
<br />
* [http://bbs.archlinux.org/viewtopic.php?id=47306 forum Thread]</div>Btby