https://wiki.archlinux.org/api.php?action=feedcontributions&user=Vladislav.tyulbashev&feedformat=atomArchWiki - User contributions [en]2024-03-29T14:21:29ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_P50&diff=462283Lenovo ThinkPad P502017-01-10T18:33:15Z<p>Vladislav.tyulbashev: External display usage</p>
<hr />
<div>[[Category:Lenovo]]<br />
[[ja:Lenovo ThinkPad P50]]<br />
The Lenovo P50 is a quad core Intel Skylake Laptop.<br />
<br />
== Installation ==<br />
<br />
If you have the 4K display, console fonts will be extremely small. Run {{ic|setfont sun12x22}} to make them a bit bigger.<br />
<br />
After that, follow the [[Beginner's guide]] to install Arch.<br />
<br />
== Configuration ==<br />
<br />
=== External video ===<br />
<br />
External video using the Mini DisplayPort seems to work most reliably when the BIOS is configured to use only the discrete graphics card. To use Xorg with this configuration, install {{Pkg|nvidia}} and create a {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} file with the following contents:<br />
<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "NoLogo" "true"<br />
EndSection<br />
<br />
== Troubleshooting ==<br />
<br />
=== Sluggish graphics performance with HD Graphics 530 (Skylake GT2) ===<br />
When running with the native 4K resolution, performance can appear sluggish.<br />
This might be improved in the UEFI BIOS by increasing the amout of RAM the Intel graphics adapter should take from the DRAM from 256MB to the maximum 512MB.<br />
<br />
=== High CPU chromium bug ===<br />
Chromium takes too long to even display the "new tab" page with the small previews and uses 100% CPU on all cores for several seconds if 5-6 new tabs get open simultaneously when using the Intel Graphics.<br />
This might be due to some hardware acceleration bug maybe related to: [[Intel_graphics#Corruption.2FUnresponsiveness_in_Chromium_and_Firefox|Corruption/Unresponsiveness in Chromium and Firefox with Intel Graphics]] but has not been tested yet.<br />
But it is simply enough to deactivate hardware acceleration in the chromium settings GUI. Another workaround that seems to work with keeping hardware acceleration enabled is activating the flag<br />
<br />
--ignore-gpu-blacklist<br />
<br />
by creating the file ".config/chromium-flag" and adding the flag.<br />
<br />
=== High fan speed on low CPU load ===<br />
Even with just low CPU load and only a browser open the fan keeps to switch on and speed up to full power. This behaviour can be at least reduced a bit by only using Intel Graphics and completely powering down the NVIDIA optimus card that uses the same cooling system [[Hybrid_graphics#Fully_Power_Down_Discrete_GPU|Power down discrete GPU]]. This seems due to a low temperature trigger value for the nvidia chip fan.<br />
<br />
=== Mouse cursor disappears after screen unlocks ===<br />
This is a known bug with light-locker and the Intel graphics driver. To work around it, switch to a console (Ctrl-Alt-F1) and back to X (Alt-F7). For more information, see<br />
<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782]<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604]<br />
* [https://github.com/the-cavalry/light-locker/issues/80 https://github.com/the-cavalry/light-locker/issues/80]<br />
* [https://bugs.freedesktop.org/show_bug.cgi?id=94677 https://bugs.freedesktop.org/show_bug.cgi?id=94677]<br />
<br />
=== Touchpad active even if disabled in BIOS ===<br />
The touchpad may be enabled in Linux even if it's disabled in the BIOS. To disable it, run<br />
<br />
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0<br />
<br />
in an appropriate startup file (e.g., {{ic|~/.xprofile}}). To check the device name to use, run<br />
<br />
xinput list<br />
<br />
=== Prevent tap clicking while typing ===<br />
The touchpad is very sensitive so it often happens that while typing the cursor is moved from unwanted clicks.<br />
Best solution is to deactivate tap click for the touchpad and use the harware buttons.<br />
<br />
This can be done either in the settings of your graphical desktop enviroment (Gnome3 works after installing libinput drivers) or directly from the shell temporarily with:<br />
<br />
synclient TapButton1=0<br />
<br />
This change can be made permament by changing the Xorg configuration.<br />
<br />
=== Video compression artifacts in VLC ===<br />
<br />
When running on the Nvidia dGPU, if you see compression artifacts when playing videos in VLC, go to Tools -> Preferences -> Input / Codecs and set "Hardware-accelerated decoding" to "Disable".<br />
<br />
=== Fingeprint Validity Sensor not working ===<br />
<br />
And there is nothing you can do. [https://bugs.freedesktop.org/show_bug.cgi?id=94536 bug report at freedesktop]. [https://forums.lenovo.com/t5/Linux-Discussion/Validity-Fingerprint-Reader-Linux/td-p/3352145/page/4 discussion on official lenovo forum]<br />
<br />
=== Headsets not working with pulseaudio ===<br />
<br />
Try to boot with headsets plugged in. Pulseaudio is innocent.<br />
<br />
=== Wifi failing to come up (Intel 8260) ===<br />
<br />
On a clean install with kernel 4.8.10 I was unable to bring up the wireless interface. It showed up in 'ip link' and 'iw dev' and was clear of blocks (confirmed via 'rfkill list'). Step 1 is to make sure that it's not soft blocked with rfkill via the 'rfkill list' command. If it is blocked you can use the "F8" wifi toggle key to ensure that it's not been disabled via that switch.<br />
<br />
More importantly: I was unable to get it working intially. I eventually started downgrading the available firmware for this unit by simply moving specific iwlwifi firmware out of /lib/firmware until I identified the working firmware packages.<br />
<br />
At the time of this note, the available iwlwifi-8000C-XX.ucode files include version 13, 16, 21 and 22. 22 seems to be the culprit here. 21 and 16 both worked for me. I left all files in place and moved firmware v. 22 to /root/lib/firmware for safe keeping. A reboot (or modprobe -r iwlwifi / modprobe iwlwifi) and the card was working.<br />
<br />
=== External monitor can't be detected on Hybrid Graphics ===<br />
This [https://wiki.archlinux.org/index.php/Bumblebee#Output_wired_to_the_NVIDIA_chip guide] works, if you want to use nvidia driver. If you are using nouveau driver look at [https://bbs.archlinux.org/viewtopic.php?id=221358 this] thread. <br />
<br />
== lspci ==<br />
<br />
{{Accuracy|No detailed model number, see [[:Category:Laptops]]}}<br />
<br />
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)<br />
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)<br />
00:02.0 VGA compatible controller: Intel Corporation Device 191d (rev 06)<br />
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)<br />
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)<br />
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)<br />
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)<br />
00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1)<br />
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)<br />
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)<br />
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)<br />
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)<br />
00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1)<br />
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)<br />
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)<br />
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)<br />
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)<br />
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GM107GLM [Quadro M2000M] (rev ff)<br />
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)<br />
3e:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
3f:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)<br />
<br />
{{ic|lsusb}} returns something like:<br />
<br />
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc.<br />
Bus 001 Device 003: ID 04f2:b52c Chicony Electronics Co., Ltd<br />
Bus 001 Device 006: ID 8087:0a2b Intel Corp.<br />
Bus 001 Device 005: ID 0765:5010 X-Rite, Inc.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_P50&diff=457183Lenovo ThinkPad P502016-11-19T12:36:25Z<p>Vladislav.tyulbashev: Problems with headsets</p>
<hr />
<div>[[Category:Lenovo]]<br />
<br />
The Lenovo P50 is a quad core Intel Skylake Laptop.<br />
<br />
== Installation ==<br />
<br />
If you have the 4K display, console fonts will be extremely small. Run {{ic|setfont sun12x22}} to make them a bit bigger.<br />
<br />
After that, follow the [[Beginner's guide]] to install Arch.<br />
<br />
== Configuration ==<br />
<br />
=== External video ===<br />
<br />
External video using the Mini DisplayPort seems to work most reliably when the BIOS is configured to use only the discrete graphics card. To use Xorg with this configuration, install {{Pkg|nvidia}} and create a {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} file with the following contents:<br />
<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "NoLogo" "true"<br />
EndSection<br />
<br />
== Troubleshooting ==<br />
<br />
=== Sluggish graphics performance with HD Graphics 530 (Skylake GT2) ===<br />
When running with the native 4K resolution, performance can appear sluggish.<br />
This might be improved in the UEFI BIOS by increasing the amout of RAM the Intel graphics adapter should take from the DRAM from 256MB to the maximum 512MB.<br />
<br />
=== High CPU chromium bug ===<br />
Chromium takes too long to even display the "new tab" page with the small previews and uses 100% CPU on all cores for several seconds if 5-6 new tabs get open simultaneously when using the Intel Graphics.<br />
This might be due to some hardware acceleration bug maybe related to: [[Intel_graphics#Corruption.2FUnresponsiveness_in_Chromium_and_Firefox|Corruption/Unresponsiveness in Chromium and Firefox with Intel Graphics]] but has not been tested yet.<br />
But it is simply enough to deactivate hardware acceleration in the chromium settings GUI. Another workaround that seems to work with keeping hardware acceleration enabled is activating the flag<br />
<br />
--ignore-gpu-blacklist<br />
<br />
by creating the file ".config/chromium-flag" and adding the flag.<br />
<br />
=== High fan speed on low CPU load ===<br />
Even with just low CPU load and only a browser open the fan keeps to switch on and speed up to full power. This behaviour can be at least reduced a bit by only using Intel Graphics and completely powering down the NVIDIA optimus card that uses the same cooling system [[Hybrid_graphics#Fully_Power_Down_Discrete_GPU|Power down discrete GPU]]. This seems due to a low temperature trigger value for the nvidia chip fan.<br />
<br />
=== Mouse cursor disappears after screen unlocks ===<br />
This is a known bug with light-locker and the Intel graphics driver. To work around it, switch to a console (Ctrl-Alt-F1) and back to X (Alt-F7). For more information, see<br />
<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782]<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604]<br />
* [https://github.com/the-cavalry/light-locker/issues/80 https://github.com/the-cavalry/light-locker/issues/80]<br />
* [https://bugs.freedesktop.org/show_bug.cgi?id=94677 https://bugs.freedesktop.org/show_bug.cgi?id=94677]<br />
<br />
=== Touchpad active even if disabled in BIOS ===<br />
The touchpad may be enabled in Linux even if it's disabled in the BIOS. To disable it, run<br />
<br />
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0<br />
<br />
in an appropriate startup file (e.g., {{ic|~/.xprofile}}). To check the device name to use, run<br />
<br />
xinput list<br />
<br />
=== Prevent tap clicking while typing ===<br />
The touchpad is very sensitive so it often happens that while typing the cursor is moved from unwanted clicks.<br />
Best solution is to deactivate tap click for the touchpad and use the harware buttons.<br />
<br />
This can be done either in the settings of your graphical desktop enviroment (Gnome3 works after installing libinput drivers) or directly from the shell temporarily with:<br />
<br />
synclient TapButton1=0<br />
<br />
This change can be made permament by changing the Xorg configuration.<br />
<br />
=== Video compression artifacts in VLC ===<br />
<br />
When running on the Nvidia dGPU, if you see compression artifacts when playing videos in VLC, go to Tools -> Preferences -> Input / Codecs and set "Hardware-accelerated decoding" to "Disable".<br />
<br />
=== Fingeprint Validity Sensor not working ===<br />
<br />
And there is nothing you can do. [https://bugs.freedesktop.org/show_bug.cgi?id=94536 bug report at freedesktop]. [https://forums.lenovo.com/t5/Linux-Discussion/Validity-Fingerprint-Reader-Linux/td-p/3352145/page/4 discussion on official lenovo forum]<br />
<br />
=== Headsets not working with pulseaudio ===<br />
<br />
Try to boot with headsets plugged in. Pulseaudio is innocent.<br />
<br />
== lspci ==<br />
<br />
{{Accuracy|No detailed model number, see [[:Category:Laptops]]}}<br />
<br />
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)<br />
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)<br />
00:02.0 VGA compatible controller: Intel Corporation Device 191d (rev 06)<br />
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)<br />
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)<br />
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)<br />
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)<br />
00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1)<br />
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)<br />
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)<br />
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)<br />
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)<br />
00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1)<br />
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)<br />
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)<br />
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)<br />
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)<br />
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GM107GLM [Quadro M2000M] (rev ff)<br />
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)<br />
3e:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
3f:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)<br />
<br />
{{ic|lsusb}} returns something like:<br />
<br />
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc.<br />
Bus 001 Device 003: ID 04f2:b52c Chicony Electronics Co., Ltd<br />
Bus 001 Device 006: ID 8087:0a2b Intel Corp.<br />
Bus 001 Device 005: ID 0765:5010 X-Rite, Inc.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_P50&diff=457026Lenovo ThinkPad P502016-11-17T21:05:13Z<p>Vladislav.tyulbashev: Info about fingerprint module</p>
<hr />
<div>[[Category:Lenovo]]<br />
<br />
The Lenovo P50 is a quad core Intel Skylake Laptop.<br />
<br />
== Installation ==<br />
<br />
If you have the 4K display, console fonts will be extremely small. Run {{ic|setfont sun12x22}} to make them a bit bigger.<br />
<br />
After that, follow the [[Beginner's guide]] to install Arch.<br />
<br />
== Configuration ==<br />
<br />
=== External video ===<br />
<br />
External video using the Mini DisplayPort seems to work most reliably when the BIOS is configured to use only the discrete graphics card. To use Xorg with this configuration, install {{Pkg|nvidia}} and create a {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} file with the following contents:<br />
<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
Option "NoLogo" "true"<br />
EndSection<br />
<br />
== Troubleshooting ==<br />
<br />
=== Sluggish graphics performance with HD Graphics 530 (Skylake GT2) ===<br />
When running with the native 4K resolution, performance can appear sluggish.<br />
This might be improved in the UEFI BIOS by increasing the amout of RAM the Intel graphics adapter should take from the DRAM from 256MB to the maximum 512MB.<br />
<br />
=== High CPU chromium bug ===<br />
Chromium takes too long to even display the "new tab" page with the small previews and uses 100% CPU on all cores for several seconds if 5-6 new tabs get open simultaneously when using the Intel Graphics.<br />
This might be due to some hardware acceleration bug maybe related to: [[Intel_graphics#Corruption.2FUnresponsiveness_in_Chromium_and_Firefox|Corruption/Unresponsiveness in Chromium and Firefox with Intel Graphics]] but has not been tested yet.<br />
But it is simply enough to deactivate hardware acceleration in the chromium settings GUI. Another workaround that seems to work with keeping hardware acceleration enabled is activating the flag<br />
<br />
--ignore-gpu-blacklist<br />
<br />
by creating the file ".config/chromium-flag" and adding the flag.<br />
<br />
=== High fan speed on low CPU load ===<br />
Even with just low CPU load and only a browser open the fan keeps to switch on and speed up to full power. This behaviour can be at least reduced a bit by only using Intel Graphics and completely powering down the NVIDIA optimus card that uses the same cooling system [[Hybrid_graphics#Fully_Power_Down_Discrete_GPU|Power down discrete GPU]]. This seems due to a low temperature trigger value for the nvidia chip fan.<br />
<br />
=== Mouse cursor disappears after screen unlocks ===<br />
This is a known bug with light-locker and the Intel graphics driver. To work around it, switch to a console (Ctrl-Alt-F1) and back to X (Alt-F7). For more information, see<br />
<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/492782]<br />
* [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1568604]<br />
* [https://github.com/the-cavalry/light-locker/issues/80 https://github.com/the-cavalry/light-locker/issues/80]<br />
* [https://bugs.freedesktop.org/show_bug.cgi?id=94677 https://bugs.freedesktop.org/show_bug.cgi?id=94677]<br />
<br />
=== Touchpad active even if disabled in BIOS ===<br />
The touchpad may be enabled in Linux even if it's disabled in the BIOS. To disable it, run<br />
<br />
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0<br />
<br />
in an appropriate startup file (e.g., {{ic|~/.xprofile}}). To check the device name to use, run<br />
<br />
xinput list<br />
<br />
=== Prevent tap clicking while typing ===<br />
The touchpad is very sensitive so it often happens that while typing the cursor is moved from unwanted clicks.<br />
Best solution is to deactivate tap click for the touchpad and use the harware buttons.<br />
<br />
This can be done either in the settings of your graphical desktop enviroment (Gnome3 works after installing libinput drivers) or directly from the shell temporarily with:<br />
<br />
synclient TapButton1=0<br />
<br />
This change can be made permament by changing the Xorg configuration.<br />
<br />
=== Video compression artifacts in VLC ===<br />
<br />
When running on the Nvidia dGPU, if you see compression artifacts when playing videos in VLC, go to Tools -> Preferences -> Input / Codecs and set "Hardware-accelerated decoding" to "Disable".<br />
<br />
=== Fingeprint Validity Sensor not working ===<br />
<br />
And there is nothing you can do. [https://bugs.freedesktop.org/show_bug.cgi?id=94536 bug report at freedesktop]. [https://forums.lenovo.com/t5/Linux-Discussion/Validity-Fingerprint-Reader-Linux/td-p/3352145/page/4 discussion on official lenovo forum]<br />
<br />
== lspci ==<br />
<br />
{{Accuracy|No detailed model number, see [[:Category:Laptops]]}}<br />
<br />
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)<br />
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)<br />
00:02.0 VGA compatible controller: Intel Corporation Device 191d (rev 06)<br />
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)<br />
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)<br />
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)<br />
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)<br />
00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1)<br />
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)<br />
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)<br />
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)<br />
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)<br />
00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1)<br />
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)<br />
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)<br />
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)<br />
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)<br />
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GM107GLM [Quadro M2000M] (rev ff)<br />
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
04:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)<br />
3e:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)<br />
3f:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)<br />
<br />
{{ic|lsusb}} returns something like:<br />
<br />
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc.<br />
Bus 001 Device 003: ID 04f2:b52c Chicony Electronics Co., Ltd<br />
Bus 001 Device 006: ID 8087:0a2b Intel Corp.<br />
Bus 001 Device 005: ID 0765:5010 X-Rite, Inc.<br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Beginners%27_Guide/Installation_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=262828Beginners' Guide/Installation (Русский)2013-06-15T09:38:42Z<p>Vladislav.tyulbashev: /* Настройка сети */</p>
<hr />
<div><noinclude><br />
[[Category:Русский]]<br />
[[da:Beginners' Guide/Installation]]<br />
[[en:Beginners' Guide/Installation]]<br />
[[es:Beginners' Guide/Installation]]<br />
[[hr:Beginners' Guide/Installation]]<br />
[[hu:Beginners' Guide/Installation]]<br />
[[it:Beginners' Guide/Installation]]<br />
[[ko:Beginners' Guide/Installation]]<br />
[[nl:Beginners' Guide/Installatie]]<br />
[[pt:Beginners' Guide/Installation]]<br />
[[sr:Beginners' Guide/Installation]]<br />
[[zh-CN:Beginners' Guide/Installation]]<br />
{{Note| Это часть более обширной статьи '''[[Beginners' Guide_(Русский)|Руководство для новичков]]'''.}}<br />
</noinclude><br />
<br />
==Установка==<br />
<br />
Теперь вы видите приглашение командной строки от имени пользователя root.<br />
<br />
====Изменение языка====<br />
<br />
{{Tip|Эти действия выполнять не обязательно, если вам не нужно вносить записи в конфигурационные файлы на русском языке, или же использовать отличные от стандартных английских символы при установлении пароля Wi-Fi, а также получать системные сообщения на родном языке (например, сообщения об ошибках).}}<br />
<br />
По умолчанию, раскладка клавиатуры установлена в {{ic|us}}. Если вам нужна не раскладка, отличная от американской ([[Wikipedia:File:KB_United_States-NoAltGr.svg|US]]), как, впрочем, и предполагается для русскоязычного пользователя, выполните:<br />
<br />
# loadkeys ''layout''<br />
<br />
...где ''layout'' может быть {{ic|ru}} (для русской раскладки), {{ic|ua}} (для украинской) и др. Другие раскладки можно найти в {{ic|/usr/share/kbd/keymaps/}} (можно не указывать полный путь и расширение файла с раскладкой при использовании команды loadkeys). См. соответствующий список раскладок [[KEYMAP#Keyboard_layouts|здесь]].<br />
<br />
Шрифт также должен быть изменен, поскольку большинство языков используют больше символов, чем 26 букв [[Wikipedia:English_alphabet|английского алфавита]]. В противном случае некоторые символы, отличные от стандартных английских, могут отображаться как белые квадраты или другие знаки. Обратите внимание, что наименование шрифта чувствительно к регистру, поэтому, пожалуйста, введите его ''точно'' так, как вы его видите, например:<br />
<br />
# setfont cyr-sun16<br />
<br />
Другие шрифты, в том числе кириллические, можно найти в {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
По умолчанию языком системы является английский (US/США). Если вы хотите изменить настройки языка, используемые в процессе установки ''(русский, в данном примере)'', удалите символ комментария {{ic|#}} перед нужной вам [http://www.greendesktiny.com/support/knowledgebase_detail.php?ref=EUH-483 локалью] в файле {{ic|/etc/locale.gen}}, наряду с английской локалью (US). Пожалуйста, выбирайте юникодовскую локаль {{ic|UTF-8}}.<br />
<br />
Используйте клавиши {{Keypress|Ctrl+X}} для выхода, когда же вам будет предложено сохранить изменения, нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения файла под тем же именем.<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
# export LANG=ru_RU.UTF-8<br />
<br />
Помните, раскладка переключается установленным для нее и неизменяемым сочетанием клавиш (для {{ic|ru}} - {{Keypress|LCtrl+LShift}}).<br />
<br />
===Настройка сети===<br />
<br />
{{Warning| udev теперь не присваивает имена сетевых интерфейсов по схеме wlanX и ethX. Если вы пришли с другого дистрибутива или переустанавливаете Arch и не осведомлены о новом стиле именования интерфейсов, пожалуйста не думайте что Ваше беспроводное соединение имеет имя wlan0, или проводное соединение имеет имя eth0. Вы можете использовать утилиту "ip" для того чтобы узнать имена интерфейсов.}}<br />
<br />
Начиная с релиза systemd-197's и далее, udev теперь назначае предсказуемое, стабильное имя сети которое отличается от привычного именования (wlan0, wlan1, и т.д.). Эти имена интерфейсов гарантированно сохраняются и после перезагрузки, которые решают проблему отсутствия предсказуемости назначения имени сетевого интерфейса. Для получения дополнительной информации о том, почему это было необходимо, читайте http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames .<br />
<br />
Сетевой демон {{ic|dhcpcd}} стартует при загрузке автоматически и попытается подключиться к проводному соединению, если оно доступно. Попробуйте пропинговать какой-нибудь сайт.<br />
<br />
{{hc|# ping -c 3 ya.ru|2=<br />
PING ya.ru (93.158.134.203) 56(84) bytes of data.<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=1 ttl=54 time=62.4 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=2 ttl=54 time=63.0 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=3 ttl=54 time=62.4 ms<br />
<br />
--- ya.ru ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2002ms<br />
rtt min/avg/max/mdev = 62.423/62.623/63.009/0.273 ms<br />
}}<br />
<br />
Если вместо этого вы увидели ошибку {{ic|ping: unknown host}}, Вам необходимо настроить соединение вручную, как описано ниже<br />
<br />
В противном случае переходите к разделу [[#Подготовка жесткого диска|Подготовка жесткого диска]].<br />
<br />
====Настройка проводного соединения====<br />
<br />
Выполните эту процедуру, если вам нужно установить проводное соединение через статический IP адрес.<br />
Во-первых, определите название вашего интерфейса.<br />
{{hc|# ip link|<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT <br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000<br />
link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff<br />
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000<br />
link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}<br />
<br />
В этом примере сетевой интерфейсом Ethernet является enp2s0f0. Если вы не уверены, что ваш Ethernet интерфейс может начинаться с буквы "e", и вряд ли будет "lo" или начинаться с "w". Вы также можете использовать iwconfig и посмотреть, какие интерфейсы не являются беспроводными:<br />
<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере, ни enp2s0f0 ни lo не имеют беспроводных дополнений, то есть enp2s0f0 наш интерфейс Ethernet.<br />
<br />
Вам необходимо знать следующие настройки:<br />
<br />
* Ваш статический IP адрес.<br />
* Маска сети.<br />
* Широковещательный адрес<br />
* Ваш шлюз.<br />
* Адреса ваших DNS серверов.<br />
* Доменное имя.<br />
<br />
Поднимите сетевое соединение, например, для {{ic|enp2s0f0}}:<br />
<br />
# ip link set enp2s0f0 up<br />
<br />
Добавьте адрес:<br />
<br />
# ip addr add <ip address>/<subnetmask> dev <interface><br />
<br />
Например:<br />
<br />
# ip addr add 192.168.1.2/24 dev enp2s0f0<br />
<br />
Для дополнительной настройки обратитесь к {{ic|man ip}}.<br />
<br />
Добавьте ваш шлюз как показано ниже, вставив IP-адрес своего шлюза:<br />
<br />
# ip route add default via <ip address><br />
<br />
Например:<br />
<br />
# ip route add default via 192.168.1.1<br />
<br />
Отредактируйте {{ic|resolv.conf}}, сменив адреса ваших DNS серверов и доменное имя:<br />
<br />
{{hc|# nano /etc/resolv.conf|<br />
nameserver 61.23.173.5<br />
nameserver 61.95.849.8<br />
search example.com}}<br />
<br />
{{Note|Сейчас у вас может быть включено максимум 3 строки {{ic|nameserver}}.}}<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Configuring Network (Русский)]].<br />
<br />
====Настройка беспроводного соединения====<br />
<br />
Следуйте указанной процедуре, если вам в процессе установки необходимо беспроводное соединение.<br />
Если вы в первый раз уставливаете Arch Linux, вы будете удивлены что названия беспроводных интерфейсов теперь не именуются по схеме "wlanX". Не паникуйте, используйте {{ic|iwconfig}} чтобы узнать имя вашего беспроводного соединения.<br />
<br />
Драйверы и утилиты для настройки беспроводного соединения теперь доступны на установочном диске. Для успешной настройки имеет большое значение хорошее представление о собственном оборудовании для беспроводных сетей, . Учтите, что ''описываемый процесс настройки'' действителен только ''на время установки в live-системе''. Вам нужно будет повторить его уже ''в установленной системе после загрузки в нее''.<br />
<br />
Имейте также в виду, что настройка беспроводного соединения необязательна для установки системы, если во время установки такое соединение не доступно. Функциональность, обеспечиваемая беспроводным соединением, всегда может быть добавлена позже.<br />
<br />
{{Note|Данный пример использует {{ic|wlp3s0}} в качестве имени интерфейса и {{ic|linksys}} для ESSID. Не забудьте изменить эти настройки применительно к вашей ситуации.}}<br />
<br />
Основные этапы:<br />
* (необязательно) Определите используемое беспроводное оборудование:<br />
<br />
# lspci | grep -i net<br />
или же при использовании USB-адаптера:<br />
<br />
# lsusb<br />
<br />
* Удостоверьтесь командой {{ic|/usr/sbin/iwconfig}}, что udev загрузил нужный драйвер, который создал беспроводный интерфейс:<br />
<br />
{{Note|Если вы не увидели аналогичный вывод, значит драйвер для вашего беспроводного оборудования не был загружен. В этом случае вы должны загрузить драйвер самостоятельно. Обратитесь к статье [[Wireless Setup]] для получения дополнительной информации.}}<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере {{ic|wlp3s0}} - имя беспроводного интерфейса. <br />
<br />
* Поднимите интерфейс:<br />
<br />
# ip link set wlp3s0 up<br />
<br />
Некоторое беспроводное оборудование в дополнение к драйверу требует также загрузки проприетарной прошивки. В этом случае вы, скорее всего, увидите такое сообщение:<br />
<br />
{{hc|# ip link set wlp3s0 up|<br />
SIOCSIFFLAGS: No such file or directory}}<br />
<br />
Если вы не уверены в необходимости проприетарной прошивки для вашего оборудования, выполните команду {{ic|/usr/bin/dmesg}} для того, чтобы увидеть сообщения ядра системы, где должна быть строка с требованием загрузить прошивку. <br />
<br />
Вот пример для чипсета Intel:<br />
<br />
{{hc|# dmesg <nowiki>|</nowiki> grep firmware|<br />
firmware: requesting iwlwifi-5000-1.ucode}}<br />
<br />
Если подобного сообщения нет, значит, ваше оборудование не требует загрузки прошивки.<br />
<br />
{{Note|Прошивки для беспроводного оборудования во время установки расположены в директории {{ic|/usr/lib/firmware}}, ''но должны быть установлены явным образом в новую систему на этапе выбора пакетов!'' Процесс установки пакетов описан ниже в этом руководстве. Убедитесь, что вы устанавливаете как драйвера, так и прошивки для вашего беспроводного оборудования. Прочтите статью [[Wireless Setup]], если вы не уверены насчет прошивки, требуемой для Вашего оборудования. Это типичная ошибка.}}<br />
<br />
Наконец, используйте интерактивное меню для установки подключения по Wi-Fi, предлагаемое пакетом {{pkg|netcfg}}:<br />
<br />
# wifi-menu wlp3s0<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Wireless Setup]].<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Если у вас роутер в режиме моста, выполните:<br />
<br />
# pppoe-setup<br />
<br />
* Введите свое имя (логин), выданный провайдером.<br />
* Нажмите {{Keypress|Enter}} для "eth0".<br />
* Нажмите {{Keypress|Enter}} для выбора опции "no", так что эта настройка останется постоянной.<br />
* Нажмите {{ic|server}} (выбор в большинстве случаев).<br />
* Нажмите {{Keypress|1}} для брандмауэра.<br />
* Введите пароль, выданный провайдером.<br />
* В конце нажмите {{Keypress|y}}.<br />
<br />
Для использования этих настроек и подключения к провайдеру, выполните:<br />
<br />
# pppoe-start<br />
<br />
Вам также может потребоваться настроить свой конфигурационный файл {{ic|resolv.conf}}:<br />
<br />
# echo nameserver 8.8.8.8 > /etc/resolv.conf<br />
<br />
Для аналогового модема (dial-up) и ISDN, см. [[Direct Modem Connection]].<br />
<br />
====Использование прокси-сервера====<br />
<br />
Если вы используете прокси-сервер, вам необходимо экспортировать переменные среды {{ic|http_proxy}} и {{ic|ftp_proxy}}. '''[[Proxy|Нажмите здесь]]''' для получения информации по данной теме.<br />
<br />
{{Note|В установленной системе данные переменные должны быть указаны в файле {{ic|/etc/wgetrc}}.}}<br />
<br />
===Подготовка жесткого диска===<br />
<br />
{{Warning| Ошибка в разбиении диска на разделы может уничтожить данные. Поэтому настоятельно рекомендуется сделать резервную копию наиболее важных данных.}}<br />
Новичкам рекомендуется использовать графическую утилиту для разметки диска. Хороший пример подобной утилиты -[http://gparted.sourceforge.net/download.php GParted], запускаемый из live-дистрибутива Linux, такого как [[Wikipedia:Parted_Magic|Parted Magic]], [[Wikipedia:Ubuntu_(operating_system)|Ubuntu]], [[Wikipedia:Linux_Mint|Linux Mint]] и др. Смотрите [[Partitioning]] для получения общих сведений и убедитесь, что отформатировали разделы с файловой системой (например, '''ext4''', '''btrfs''' и др.) до перезагрузки компьютера.<br />
<br />
Если вы уже произвели разметку жесткого диска, переходите к разделу [[#Монтирование_разделов|монтированию разделов]].<br />
<br />
В противном случае, посмотрите следующий пример.<br />
<br />
====Пример====<br />
<br />
Установочный образ Arch Linux включает следующие утилиты разбиения диска:<br />
<br />
* [[Wikipedia:cfdisk|cfdisk]] – поддерживает только таблицы разделов [[MBR]].<br />
<br />
* [[Wikipedia:gdisk|gdisk]] – поддерживает только таблицы разделов [[GPT]].<br />
<br />
* [[Wikipedia:parted|parted]] – поддерживает обе таблицы разделов.<br />
<br />
Приводимый ниже пример использует утилиту '''cfdisk''', но с той же легкостью может быть использована и утилита '''gdisk''' для разделов GPT.<br />
<br />
{{Note|Если у вас материнская плата [[UEFI]], вам потребуется создать дополнительный раздел, именуемый системным разделом UEFI. Обратитесь к [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux|данной статье]].}}<br />
<br />
{{Note|Если вы хотите установить загрузчик GRUB в режиме BIOS-GPT, то вам потребуется создать "загрузочный раздел BIOS" размером в 2 Мб. Обратитесь к [[GRUB#GPT_specific_instructions|особым инструкциям по использованию GPT]] за дальнейшей информацией.}}<br />
<br />
{{Note|Если вы производите установку на USB-флешку, смотрите [[Installing Arch Linux on a USB key]].}}<br />
<br />
{{Note|Если вы не будете использовать двойную загрузку с Windows, то предпочтительнее использовать таблицу разделов [[GPT]] вместо [[MBR]]. Разбиение на разделы GPT может быть проведено только с использованием '''gdisk''' или '''parted'''. Прочтите статью [[GPT]] для выяснения преимуществ такого разбиения.}}<br />
<br />
# cfdisk /dev/sda<br />
<br />
Система в данном примере будет содержать корневой раздел (root) ({{ic|/}}) размером 15 Гб, раздел подкачки {{ic|swap}} в 1 Гб и домашний раздел {{ic|/home}}, занимающий всё оставшееся место.<br />
<br />
Следует особо отметить, что разбиение диска отвечает личным предпочтениям пользователя и данный пример имеет исключительно иллюстративный характер. См. [[Partitioning]].<br />
<br />
'''Root:'''<br />
<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "15360" – {{Keypress|Enter}} для пункта Beginning/Начало – {{Keypress|Enter}} для того, чтобы сделать этот диск Bootable/Загрузочным.<br />
<br />
'''Swap:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "1024" – {{Keypress|Enter}} для пункта Beginning/Начало.<br />
* Выберите Type/Тип (или нажмите {{Keypress|T}}) – нажмите любую клавишу, чтобы прокрутить список вниз – {{Keypress|Enter}} для выбора типа 82.<br />
<br />
'''Home:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела – {{Keypress|Enter}} для использования оставшегося дискового пространства (или вы можете вручную ввести требуемый размер раздела).<br />
<br />
Вот как это должно выглядеть:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-----------------------------------------------------------------------<br />
sda1 Boot Primary Linux 15360<br />
sda2 Primary Linux swap / Solaris 1024<br />
sda3 Primary Linux 133000*<br />
<br />
или в русскоязычном варианте:<br />
<br />
Имя Флаги Тип раздела Тип ФС [Метка] Размер (MБ)<br />
-------------------------------------------------------------------------<br />
sda1 Загрузочный Основной Linux 15360<br />
sda2 Основной Linux своп / Solaris 1024<br />
sda3 Основной Linux 133000*<br />
<br />
Прежде чем продолжить, проверьте несколько раз сделанные изменения и убедитесь что вы довольны как размерами разделов, так и раскладкой таблицы разбиения.<br />
<br />
Если захотите начать все сначала, можете просто выбрать Quit/Выход (или нажмите {{Keypress|Q}}) для выхода без сохранения изменений, а затем перезапустить cfdisk.<br />
<br />
Если вас устраивает разбивка, выберите Write/Запись (или нажмите {{Keypress|Shift+W}}), чтобы завершить разбиение и записать таблицу разделов на диск. Наберите "yes"/"да" и выберите Quit/Выход (или нажмите {{Keypress|Q}}), чтобы выйти из cfdisk без каких-либо изменений.<br />
<br />
Простого разбиения на разделы недостаточно, необходимо также явно задать [[File Systems|файловую систему]]. Для форматирования разделов с файловой системой ext4 выполните:<br />
<br />
# mkfs.ext4 /dev/sda1<br />
# mkfs.ext4 /dev/sda3<br />
<br />
Форматирование и подключение раздела подкачки:<br />
<br />
# mkswap /dev/sda2<br />
# swapon /dev/sda2<br />
<br />
===Монтирование разделов===<br />
<br />
Каждый раздел отождествляется определенным числовым суффиксом. Например, раздел {{ic|sda1}} указывает на первый раздел первого диска, в то время как {{ic|sda}} обозначает весь диск.<br />
<br />
Чтобы увидеть текущую таблицу разделов выполните команду:<br />
<br />
# lsblk /dev/sda<br />
<br />
Обратите внимание, что для установки вашей системы важен порядок монтирования разделов.<br />
<br />
Сперва монтируется корневой раздел (root) в {{ic|/mnt}}. В приводимом ниже примере (у вас могут быть отличия) это выглядит так:<br />
<br />
# mount /dev/sda1 /mnt<br />
<br />
Затем монтируется домашний ({{ic|/home}}) раздел и все остальные отдельные разделы ({{ic|/boot}}, {{ic|/var}} и др.), если они у вас имеются:<br />
<br />
# mkdir /mnt/home<br />
# mount /dev/sda3 /mnt/home<br />
<br />
В случае, если у вас имеется отдельный загрузочный ({{ic|/boot}}) раздел:<br />
<br />
# mkdir /mnt/boot<br />
# mount /dev/sda''x'' /mnt/boot<br />
<br />
Если у вас материнская плата UEFI, монтируется раздел UEFI:<br />
<br />
# mkdir /mnt/boot/efi<br />
# mount /dev/sda''x'' /mnt/boot/efi<br />
<br />
===Выбор зеркал===<br />
<br />
Зеркала перечислены в файле {{ic|/etc/pacman.d/mirrorlist}} и должны располагаться по приоритету. Перед установкой вы можете отредактировать файл {{ic|mirrorlist}}и поместите нужные зеркала на первые позиции. Копия этого файла будет установлена скриптом {{ic|pacstrap}} в вашу новую систему, так что стоит проделать эту работу.<br />
<br />
{{hc|# nano /etc/pacman.d/mirrorlist|<br />
##<br />
## Arch Linux repository mirrorlist<br />
## Sorted by mirror score from mirror status page<br />
## Generated on 2012-MM-DD<br />
##<br />
<br />
<nowiki>Server = http://mirror.example.xyz/archlinux/$repo/os/$arch</nowiki><br />
...}}<br />
<br />
* {{Keypress|Alt+6}} для копирования строки {{ic|Server}}.<br />
* {{Keypress|PageUp}} клавиша для прокрутки.<br />
* {{Keypress|Ctrl+U}}, чтобы вставить скопированное наверх часть списка.<br />
* {{Keypress|Ctrl+X}} для выхода, когда будет предложено сохранить изменения - нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения в файл с тем же именем.<br />
<br />
Если вы захотите, что можете сделать доступным ''только одно'' зеркало, удалив все остальные (используя {{Keypress|Ctrl+K}}), но обычно правильной идеей является использование нескольких зеркал, которые будут доступны, если первое из списка уйдет в offline.<br />
<br />
{{Tip|<br />
* Используйте генератор зеркал [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] для получения обновленного списка зеркал, доступных в вашей стране. Зеркала HTTP быстрее чем зеркала FTP из-за использования сообщений типа [[Wikipedia:Keepalive|keepalive]]. В случае с FTP, pacman каждый раз, когда он загружает пакет, будет посылать сигнал, завершающийся короткой паузой. Помните, что сгенерированный таким образом список зеркал будет содержать строки не только с серверами, но и указанием их статуса (если вы включили опцию {{ic|Use mirror status}}):<br />
<br />
## Score: 4.8, Russian Federation<br />
<nowiki>#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch</nowiki><br />
<br />
Требуется раскомментировать только строки, содержащие сервера (начинающиеся с {{ic|Server}})!<br />
Чтобы узнать о других способах создания собственного списка зеркал, обратитесь к статьям [[Mirrors#Sorting_mirrors|Sorting mirrors]] и [[Reflector]]<br />
<br />
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] сообщает различную информацию о зеркалах, такую, как сетевые проблемы с зеркалами, проблемы со сбором данных, последнее время синхронизации зеркал и т.д.}}<br />
{{Note|<br />
* При любом изменении списка зеркал всегда формируйте обновление списка пакетов с помощью команды {{ic|pacman -Syy}}. Такой способ рассматривается как правильный и поможет избежать головной боли. Смотрите статью [[Mirrors]] для получения дальнейшей информации.<br />
* Если вы используете устаревший установочный носитель, ваш список зеркал также, скорее всего, устарел, что может привести к проблемам с обновлением Arch Linux (см. {{Bug|22510}}). В силу этого настоятельно рекомендуется получить свежую информацию о зеркалах, как описано выше.<br />
* На [https://bbs.archlinux.org/ форумах Arch Linux] сообщалось о некоторых сетевых проблемах, мешающих pacman произвести обновление/синхронизацию репозиториев (см. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] и [https://bbs.archlinux.org/viewtopic.php?id&#61;65728]). Во время установки Arch Linux на реальную машину эти проблемы разрешались путем замены загрузчика файлов по умолчанию, используемого в pacman, альтернативным загрузчиком (см. [[Improve Pacman Performance]] для более детальной информации). В случае же установки Arch Linux в качестве гостевой машины в [[VirtualBox]], данная проблема также решалась путем использования типа подключения "Виртуальный адаптер хоста" вместо "NAT" в настройках виртуальной машины.}}<br />
<br />
===Установка базовой системы===<br />
<br />
Базовая система устанавливается с использованием скрипта [https://github.com/falconindy/arch-install-scripts/blob/master/pacstrap.in pacstrap].<br />
<br />
# pacstrap /mnt base base-devel<br />
<br />
{{Note|Если pacman не может проверить подписи ваших пакетов, убедитесь в правильной установке системного времени. Если системное время выставлено неверно (например, показывает 2010 год), срок ключей будут считаться истекшими или неверными, проверка подписей пакетов окажется неудачной и установка будет прервана. Скорректируйте системное время вручную или с использованием клиента {{Pkg|ntp}} и вновь запустите команду pacstrap. Обратитесь к странице [[Time_(Русский)|Time (Русский)]] за дальнейшей информацией о корректировке системного времени.}}<br />
<br />
* {{Grp|base}}: пакеты программного обеспечения из репозитория [core], обеспечивающие минимальное рабочее окружение.<br />
<br />
* {{Grp|base-devel}}: дополнительные утилиты из репозитория [core], такие, как {{ic|make}} и {{ic|automake}}. Большинству новичков лучше их установить сразу, так как в дальнейшем они, скорее всего, всё равно понадобятся для наращивания установленной системы. В частности, группа ''base-devel'' необходима для установки программ из [[Arch User Repository]].<br />
<br />
Таким образом, вы получили базовую систему Arch. Остальные пакеты могут быть установлены позднее с использованием [[pacman]].<br />
<br />
===Генерированиеe fstab===<br />
<br />
Сгенерируйте файл [[fstab]] приводимой ниже командой. Если вы предпочитаете использовать в данном файле UUID или метки дисков, соответственно добавьте опции {{ic|-U}} или {{ic|-L}}. Хорошей идеей станет проверка данного файла перед продолжением работы:<br />
<br />
{{Note|Если вы столкнетесь с ошибками при запуске genfstab или с ошибками, возникающими позже в процессе установки, '''не''' выполняйте команду genfstab вновь; просто отредактируйте файл fstab.}}<br />
<br />
# genfstab -p /mnt > /mnt/etc/fstab<br />
# nano /mnt/etc/fstab<br />
<br />
Только корневой раздел ({{ic|/}}) нуждается в значении {{ic|1}}, указываемом в последнем поле. Все остальные должны быть помечены или значением {{ic|2}}, или значением {{ic|0}} (см.[[Fstab#Field_definitions|Field definitions]]).<br />
<br />
Также, опция {{ic|1=data=ordered}} должна быть удалена, потому что она используется автоматически вне зависимости от того, указали вы ее или нет. Нет смысла загромождать ваш fstab.<br />
<br />
===Chroot и конфигурирование базовой системы===<br />
<br />
Затем, мы входим с помощью [[chroot]] во вновь установленную систему:<br />
<br />
# arch-chroot /mnt<br />
<br />
На этом этапе установки вам предстоит настроить основные файлы конфигурации своей базовой системы Arch Linux. Эти файлы могут быть созданы, если они не существуют, или отредактированы, если вы хотите изменить настройки по умолчанию.<br />
<br />
Внимательное следование приведенным ниже шагам и понимание сути своих действий имеет ключевое значение для правильной настройки системы.<br />
<br />
====Локализация====<br />
<br />
Локали используются '''glibc''' и другими программами или библиотеками для рендеринга текста, корректного отображения значений региональных валют, формата времени и даты, алфавитных особенностей и других специфических языковых и локальных стандартов.<br />
<br />
Необходимо отредактировать два файла: {{ic|locale.gen}} и {{ic|locale.conf}}.<br />
<br />
* Файл {{ic|locale.gen}} по умолчанию пустой (точнее, все значения в нем закомментированы) и вам потребуется удалить символ комментария {{ic|#}} в начале избранной (избранных) вами строки (строк) с нужными локалями. Вы можете раскомментировать больше строк, чем просто строка с американским английским языком (English (US)), одновременно выбирая свою кодировку (предпочтительно {{ic|UTF-8}}):<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
<br />
Эта команда запускается при каждом обновлении '''glibc''', генерируя локали, указанные в {{ic|/etc/locale.gen}}. Не забудьте запустить ее после правки файла {{ic|locale.gen}}<br />
<br />
* Файл {{ic|locale.conf}} по умолчанию отсутствует. Его необходимо создать, при этом достаточно указать в нем только лишь значение переменной {{ic|LANG}}. Данное значение будет использоваться по умолчанию остальными переменными. Для американского английского языка:<br />
<br />
# echo LANG=en_US.UTF-8 > /etc/locale.conf<br />
# export LANG=en_US.UTF-8<br />
<br />
Для русского языка:<br />
<br />
# echo LANG=ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG=ru_RU.UTF-8<br />
<br />
{{Note|если в начале процесса установки вы определили язык, отличный от американского английского языка, приводимая выше команда уже будет выглядеть так:<br />
# echo LANG<nowiki>=</nowiki>ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG<nowiki>=</nowiki>ru_RU.UTF-8<br />
}}<br />
<br />
Для использования других переменных {{ic|LC_*}}, сначала выполните {{ic|locale}}, чтобы увидеть доступные опции. Дополнительные сведения могут быть получены [[Locale#Setting_system-wide_locale|здесь]].<br />
<br />
{{Warning|Использовать переменную {{ic|LC_ALL}} категорически не рекомендуется, так как она изменяет значение всех остальных переменных.}}<br />
<br />
====Консольный шрифт и раскладка клавиатуры====<br />
<br />
Если вы выбрали раскладку клавиатуры на [[#Изменение_языка|начальной]] стадии процесса установки, загрузите её вновь точно таким же образом, поскольку рабочее окружение изменилось. Например:<br />
<br />
# loadkeys ''ru''<br />
# setfont cyr-sun16<br />
<br />
Чтобы эти настройки сохранились после перезагрузки, отредактируте файл {{ic|vconsole.conf}}:<br />
<br />
{{hc|# nano /etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
FONT_MAP=}}<br />
<br />
* {{ic|KEYMAP}} – имейте в виду, что эта настройка действует только для ваших TTY, а не графических оконных менеджеров или X.Org.<br />
<br />
* {{ic|FONT}} – доступны и другие консольные шрифты, расположенные в директории {{ic|/usr/share/kbd/consolefonts/}}. Значение по умолчанию (шрифт не указан) является безопаасным для системы, но некоторые символы на языках, отличных от английского, могут отображаться как белые квадраты или другие знаки. Рекомендуется изменить значение по умолчанию (для выбора шрифта {{ic|cyr-sun16}} или другого шрифта смотрите файлы {{ic|КREADME}} в указанной директории {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
* {{ic|FONT_MAP}} – определяет консольную таблицу символов при загрузке. Для уточнения деталей смотрите {{ic|man setfont}}. Значение по умолчанию (не установлено) является безопасным для системы.<br />
<br />
Смотрите [[Fonts (Русский)#Шрифт в консоли|Шрифт в консоли]] и {{ic|man vconsole.conf}} для получения дальнейшей информации.<br />
<br />
====Временная зона====<br />
<br />
Доступные временные зона и субзоны находятся в директориях {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}.<br />
<br />
Чтобы увидеть доступные зоны (<Zone>), проверьте директорию {{ic|/usr/share/zoneinfo/}}:<br />
<br />
# ls /usr/share/zoneinfo/<br />
<br />
Таким же образом можно проверить содержимое директорий, относящихся к субзонам (<SubZone>):<br />
<br />
# ls /usr/share/zoneinfo/Europe<br />
<br />
Создайте символическую ссылку {{ic|/etc/localtime}} на файл со своей временной зоной {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}, используя данную команду:<br />
<br />
# ln -s {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}} /etc/localtime<br />
<br />
'''Пример:'''<br />
<br />
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
====Аппаратные часы====<br />
<br />
Установите аппаратные часы единообразно во всех используемых вами операционных системах. В противном случае, ОС могут менять значения аппаратных часов и вызывать временные сдвиги.<br />
<br />
Можно сгненерировать {{ic|/etc/adjtime}} автоматически с помощью одной из следующих команд:<br />
<br />
* '''UTC''' (рекомендуется)<br />
<br />
: {{Note|Использование [[Wikipedia:Coordinated Universal Time|UTC]] для аппаратных часов не означает, что программное обеспечение будет отображать время в UTC.}}<br />
<br />
: {{bc|# hwclock --systohc --utc}}<br />
<br />
* '''localtime''' (не рекомендуется, используется по умолчанию в Windows)<br />
<br />
: {{Warning|Использование ''localtime'' может привести к ряду известных и до сих пор не исправленных ошибок. Тем не менее, не планируется отказаться от поддержки ''localtime''.}}<br />
<br />
: {{bc|# hwclock --systohc --localtime}}<br />
<br />
Если у вас уже есть (или планируется использовать) двойная загрузка с Windows:<br />
<br />
* Рекомендуется: Установить обе системы (и Arch Linux, и Windows) с использованием UTC. Потребуется быстрое [[Time#UTC_in_Windows|исправление реестра]]. Кроме того, убедитесь, что Windows не будет синхронизировать время on-line, поскольку в этом случае аппаратные часы вернутся по умолчанию к ''localtime''. Если вам нужна такая функциональность (синхронизация с использованием NTP), вместо этого следует использовать [[ntpd]] на установленной системе Arch Linux.<br />
<br />
* Не рекомендуется: Установка в Arch Linux значения по ''localtime'' и остановка любых связанных с синхронизацией времени сервисов, наподобие {{ic|ntpd.service}}. Это позволит Windows корректировать значение аппаратных часов и вам нужно будет не забывать о необходимости загружаться в Windows по меньшей мере дважды в годr (весной и осенью) когда осуществляется переход от зимнего времени к летнему и наоборот ([[Wikipedia:Daylight_savings_time|DST]], если такая смена времени вновь будет введена в России). Поэтому, пожалуйста, не задавайте на форумах вопросов о том, почему ваши часы ушли на один час вперед или назад, как это случается в течение нескольких дней или недель без загрузки Windows.<br />
<br />
====Модули ядра====<br />
<br />
{{Tip|Это просто пример, вам не обязательно ему следовать. Все необходимые модули автоматически подгружаются udev, поэтому редко возникает необходимость добавить еще какой-то модуль. Добавляйте только те модули, о которых вам точно известно, что они пропущены при загрузке ядра.}}<br />
<br />
Для того, чтобы модуль ядра подгрузился во время загрузки, поместите в директорию {{ic|/etc/modules-load.d/}} файл {{ic|*.conf}} с именем используемой программы (чтобы удобнее было запомнить имя конфигурационного файла).<br />
<br />
{{hc|# nano /etc/modules-load.d/virtio-net.conf|<br />
# Load 'virtio-net.ko' at boot.<br />
<br />
virtio-net}}<br />
<br />
Если в файле {{ic|*.conf}} указан более чем один модуль, имена модулей записываются с новой строки. Хороший пример можно посмотреть [[VirtualBox#Auto-start_modules|здесь]].<br />
<br />
Пустые строки и строки, начинающиеся с символов {{ic|#}} или {{ic|;}}, игнорируются.<br />
<br />
====Имя компьютера====<br />
<br />
Добавьте свой [[Wikipedia:hostname|hostname]] (например ''arch''):<br />
<br />
# echo ''myhostname'' > /etc/hostname <br />
<br />
{{Note|Редактировать {{ic|/etc/hosts}} нет необходимости.}}<br />
<br />
===Настройка сети===<br />
<br />
Вам надо заново сконфигурировать сетевое соединение, но на этот раз во вновь установленном окружении. Порядок и условия настройки сети очень похожи на те, что описаны [[#Настройка_сети|выше]], за исключением того, что мы собираемся сделать сетевое соединение постоянным и автоматически запускаемым при загрузке системы.<br />
<br />
{{Note|Для получения более подробной информации о конфигурации сети, посетите страницы [[Configuring Network (Русский)]] и [[Wireless Setup]].}}<br />
<br />
====Проводное соединение====<br />
<br />
; Динамический IP<br />
<br />
Если у вас только одно фиксированное проводное подключение к сети, вам необходим сервис управления сетью, доступ к которому просто получить с помощью сервиса {{ic|dhcpcd}}, где <interface> ваше проводное соединение:<br />
<br />
# systemctl enable dhcpcd@<interface>.service<br />
<br />
{{Warning|1={{ic|systemd}} теперь [https://bbs.archlinux.org/viewtopic.php?id=156375 переименовывает] сетевые соединения. Более того, {{ic|dhcpcd@.service}} всегда [https://bbs.archlinux.org/viewtopic.php?pid=1218527#p1218527 создает] символическую ссылку {{ic|dhcpcd@eth0.service}}, что бы вы ни поставли вместо {{ic|<interface>}}.}}<br />
<br />
Чтобы исправить это, скопируйте {{ic|dhcpcd@.service}} в /etc/systemd/system/ и отредактируйте строку Alias= для вашего правильного {{ic|<interface>}} или удалите ее и замените на WantedBy=multi-user.target<br />
# cp /usr/share/lib/system/dhcpcd@.service /etc/systemd/system/<br />
# nano /etc/systemd/system/dhcpcd@.service<br />
<br />
В качестве альтернативного варианта вы можете использовать инструмент {{ic|net-auto-wired}} из пакета {{Pkg|netcfg}}, который корректно создает подключение к новым сетям:<br />
<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите dhcp профиль и включите сервис {{ic|net-auto-wired}}:<br />
<br />
# cd /etc/network.d<br />
# ln -s examples/ethernet-dhcp .<br />
# systemctl enable net-auto-wired.service<br />
<br />
; Статический IP<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите пакет {{Pkg|netcfg}} (если вы еще не сделали этого):<br />
<br />
# pacman -S netcfg<br />
<br />
Скопируйте образец профиля из {{ic|/etc/network.d/examples}} в {{ic|/etc/network.d}}:<br />
<br />
# cd /etc/network.d<br />
# cp examples/ethernet-static .<br />
<br />
При необходимости, настройте профиль:<br />
<br />
# nano ethernet-static<br />
<br />
Измените имя сетевого интерфейса в {{ic|/etc/conf.d/netcfg}} так как скорее всего это не eth0. Вы можете узнать больше об именовании в предупреждении выше.<br />
<br />
{{ic|<nowiki>WIRED_INTERFACE="<interface>"</nowiki>}}<br />
<br />
Сделайте доступным сервис {{ic|net-auto-wired}}:<br />
<br />
# systemctl enable net-auto-wired.service<br />
<br />
====Беспроводное соединение====<br />
<br />
Для настройки и управления профилями беспроводных соединений вам необходимо установить дополнительные программы, такие, как [[netcfg]].<br />
<br />
Также популярные программы - [[NetworkManager]] и [[Wicd]].<br />
<br />
* Установите требуемые пакеты:<br />
<br />
# pacman -S wireless_tools wpa_supplicant wpa_actiond netcfg dialog<br />
<br />
Если вашему адаптеру беспроводной сети требуется проприетарная прошивка (как описано выше в секции [[#Настройка_беспроводного_соединения|Настройка сети]], а также [[Wireless_Setup#Drivers_and_firmware|здесь]]), установите пакет, содержащий эту прошивку. Например:<br />
<br />
# pacman -S zd1211-firmware<br />
После окончания остальной части этой установки и перезагрузки, вы можете подключиться к сети с помощью {{ic|wifi-menu <interface>}} (где <interface> является интерфейсом беспроводных чипсетов), который будет генерировать файл профиля в {{ic|/etc/network.d}} после имени SSID. Для ручной настройки также доступны шаблоны в {{ic|/etc/network.d/examples/}}<br />
<br />
# wifi-menu <interface><br />
<br />
{{Warning| Если вы используете wifi-menu, это должно быть сделано *после* перезагрузки, когда вы больше не в chroot. Этот процесс будет конфликтовать если запускается за пределами корня. Кроме того, можно просто настроить профиль сети вручную, используя шаблоны о которых уже упоминалось ранее, так что вам не придется беспокоиться об использовании WiFi-меню вообще.}} <br />
<br />
<br />
* Сделайте доступным (для автозагрузки) сервис {{ic|net-auto-wireless}}, который будет подключаться к известным сетям и корректно обрабатывать роуминг и обрывы соединения.<br />
<br />
# systemctl enable net-auto-wireless.service<br />
<br />
{{Note|Пакет [[Netcfg]] также включает {{ic|net-auto-wired}}, который может использоваться совместно с {{ic|net-auto-wireless}}.}}<br />
<br />
* Убедитесь в правильном установлении беспроводного интерфейса (обычно {{ic|wlan0}}) в файле {{ic|/etc/conf.d/netcfg}}:<br />
<br />
{{hc|# nano /etc/conf.d/netcfg|2=<br />
WIRELESS_INTERFACE="wlp3s0"}}<br />
<br />
Также возможно определить список сетевых профилей для автоматического соединения при использовании переменной {{ic|AUTO_PROFILES}} в {{ic|/etc/conf.d/netcfg}}. Если переменная {{ic|AUTO_PROFILES}} не установлена, система будет пытаться подключиться ко всем известным сетям.<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Для xDSL, аналогового модема (dial-up) и ISDN, смотрите [[Direct Modem Connection]].<br />
<br />
===Конфигурирование pacman===<br />
<br />
Pacman - пакетный менеджер Arch Linux (аббревиатура от '''pac'''kage '''man'''ager). Настоятельно рекомендуется изучить его и научиться им пользоваться. Прочтите {{ic|man pacman}}, просмотрите статью [[pacman (Русский)]], или же сверьтесь со статьей [[Pacman Rosetta]] для сравнения данной утилиты с другими популярными пакетными менеджерами.<br />
<br />
Для выбора репозиториев (хранилищ пакетов) и настройки pacman, отредактируйте конфигурационный файл {{ic|pacman.conf}}:<br />
<br />
# nano /etc/pacman.conf<br />
<br />
{{Note|Выбирая репозитории, убедитесь, что раскомментировали как строки заголовка {{ic|[''repo_name'']}}, так и строку {{ic|Include}}. Если это не будет сделано, то выбранные репозитории будут пропущены! Это довольно распространенная ошибка. Ваши репозитории должны выглядеть так:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# The testing repositories are disabled by default. To enable, uncomment the<br />
# repo name header and Include lines. You can add preferred servers immediately<br />
# after the header, and they will be used before the default mirrors.<br />
<br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist}}<br />
}}<br />
<br />
Большинство людей используют репозитории {{ic|[core]}}, {{ic|[extra]}} и{{ic|[community]}}.<br />
<br />
Если вы устанавливаете x86_64 версию Arch Linux, то рекомендуется сделать доступным также и репозиторий {{ic|[multilib]}} (позволяющий запускать в вашей системе как 32-битные, так и 64-битные приложения):<br />
<br />
[multilib]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
Смотрите статью [[Official Repositories (Русский)]] для получения дальнейшей информации, включая детальное описание предназначения каждого репозитория.<br />
<br />
Для установки программ, которые недоступные посредством pacman, смотрите статью [[Arch User Repository (Русский)]].<br />
<br />
===Создание начального окружения виртуального диска===<br />
<br />
{{Tip|Большинство пользователей могут пропустить данный шаг и использовать загрузочный диск по умолчанию, создаваемый {{ic|mkinitcpio.conf}}. Образ initramfs (из директории {{ic|/boot}}) уже был сгенерирован на основе данного файла на предшествующем этапе установки, когда при помощи {{ic|pacstrap}} устанавливалось ядро Linux - пакет {{Pkg|linux}}.}}<br />
<br />
Тем не менее, вам необходимо установить правильные [[Mkinitcpio#HOOKS|хуки]], если корень системы расположен на USB-диске, а также если вы используете RAID, LVM, или если директория {{ic|/usr}} расположена на отдельном разделе.<br />
<br />
Отредактируйте конфигурационный файл {{ic|/etc/mkinitcpio.conf}} и сгенерируйте заново образ initramfs командой:<br />
<br />
# mkinitcpio -p linux<br />
<br />
===Установка пароля суперпользователя и добавление пользователя===<br />
<br />
Вы можете установить пароль суперпользователя (root) командой:<br />
<br />
# passwd<br />
<br />
{{Warning|Linux - многопользовательская система. Вы не должны использовать в повседневной работе учетную запись суперпользователя root. Это более, чем нежелательно - это опасно. Используйте суперпользователя только для задач управления системой.}}<br />
<br />
Создайте обычного пользователя (без повышенных привилегий) одним из двух приведенных ниже способов. Пользователь под именем ''archie'' здесь приведен исключительно в качестве примера.<br />
<br />
====Интерактивный метод====<br />
<br />
Команда {{ic|adduser}} будет работать в интерактивном режиме:<br />
<br />
{{hc|# adduser|<br />
<br />
Login name for new user []: '''archie''' #Имя (логин) нового пользователя<br />
<br />
User ID ('UID') [ defaults to next available ]: #ID пользователя (по умолчанию следующее свободное)<br />
<br />
Initial group [ users ]: #Группа, в которую первоначально входит пользователь<br />
<br />
Additional groups (comma separated) []: '''audio,games,lp,optical,power,scanner,storage,video''' #Дополнительные группы (разделяемые запятой)<br />
<br />
Home directory [ /home/archie ]: #Домашняя директория пользователя<br />
<br />
Shell [ /bin/bash ]: #Оболочка (в примере указана оболочка Bash)<br />
<br />
Expiry date (YYYY-MM-DD) []: #Дата, когда истечет срок использования данного логина}}<br />
<br />
Как показано в приведенном примере, вам следует указать только лишь имя пользователя (еще именуемое его "логином" - {{ic|Login name}}) и дополнительные группы, в которые должен входить ваш пользователь ({{ic|Additional groups}}), а остальные поля оставить незаполненными.<br />
<br />
Список дополнительных групп {{ic|Additional groups}} из примера является типичным выбором для настольной системы, поэтому он и рекомендуется для новичков:<br />
<br />
* '''audio''' - для задач управления звуком и музыкального программного обеспечения.<br />
* '''games''' - для разрешения играм из группы games осуществлять операции записи.<br />
* '''lp''' - для управления функциями печати.<br />
* '''optical''' - для доступа к приводам оптических дисков.<br />
* '''power''' - для использования функций управления питанием (например выключение кнопкой power на корпусе).<br />
* '''scanner''' - для использования сканера.<br />
* '''storage''' - для управления устройствами хранения данных.<br />
* '''video''' - для задач, связанных с видео.<br />
<br />
Для получения дальнейшей информации о приведенных выше группах или других группах, смотрите [[Groups#User_groups|User groups]].<br />
<br />
Теперь вам будет представлен предварительный просмотр нового аккаунта, а также возможность отменить или продолжить операцию. После нажатия {{Keypress|Enter}} будет создана новая учетная запись и вам будет предложено ввести дополнительные (необязательные) сведения о новом пользователе (например, его полное имя). После этого вам будет предложено ввести пароль для данной учетной записи.<br />
<br />
====Неинтерактивный метод====<br />
<br />
# useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video -s /bin/bash archie<br />
<br />
Вам надо будет установить пароль командой {{ic|passwd}}. Для ввода дополнительной информации используйте команду {{ic|chfn}}.<br />
<br />
====Удаление учетной записи пользователя====<br />
<br />
В случае ошибки, а также если вы пожелаете удалить данный пользовательский аккаунт в связи со сменой имени (логина) или по какой-нибудь другой причине, используйте команду {{ic|userdel}} (где username - имя пользователя):<br />
<br />
# userdel -r [username]<br />
<br />
Ключ {{ic|-r}} удалит также и домашнюю директорию пользователя со всем ее содержимым, включая пользовательские настройки (так называемые "файлы с точкой" - англ. "dot" files, поскольку перед именами конфигурационных файлов и директорий в пользовательском каталоге проставляется точка, чтобы они не были видны без специальных ухищрений).<br />
<br />
====Дальнейшая информация====<br />
<br />
Обратитесь к статье [[Users and Groups]] для получения дальнейшей информации. Если вы хотите просто сменить имя пользователя (своего пользователя или любого из существующих в системе), обратитесь к странице [[Change username]]. Также ознакомьтесь со страницами руководства для команд {{ic|usermod(8)}} и {{ic|gpasswd(8)}}.<br />
<br />
===Установка и конфигурирование загрузчика===<br />
<br />
====Для материнских плат с BIOS====<br />
<br />
Для систем с BIOS существуют три загрузчика - Syslinux, GRUB и [[LILO]]. Выберите тот загрузчик, который вам наиболее удобен. Ниже будет объяснена установка только загрузчиков Syslinux и GRUB. <br />
<br />
* Syslinux ограничен в своей функциональности(в настоящее время) - он может загружать только разделы с того диска, на котором он установлен. Считается, что его конфигурационный файл легче понять. Пример конфигурации смотрите [https://bbs.archlinux.org/viewtopic.php?pid=1109328#p1109328 здесь].<br />
<br />
* GRUB функционально богаче и поддерживает более сложные сценарии. Его конфигурационный файл больше напоминает скриптовый язык и может вызвать трудности у начинающих пользователей при ручном конфигурировании. Рекомендуется, чтобы новички автоматически генерировали данный конфигурационный файл.<br />
<br />
===== Syslinux =====<br />
<br />
Установите пакет {{Pkg|syslinux}} и затем используйте скрипт {{ic|syslinux-install_update}} для автоматической ''установки'' файлов ({{ic|-i}}), обозначения ''активного'' раздела путем установки флага загрузки ({{ic|-a}}) и установки загрузочного кода ''MBR'' ({{ic|-m}}):<br />
<br />
{{Note|Если вы размечали диск как GPT, поставьте также пакет {{Pkg|gptfdisk}} - ({{ic|pacman -S gptfdisk}}), поскольку он содержит утилиту {{ic|sgdisk}}, позволяющую устанавливать специфичный для GPT флаг загрузки.}}<br />
<br />
# pacman -S syslinux<br />
# syslinux-install_update -iam<br />
<br />
Настройте {{ic|syslinux.cfg}} для указания правильного загрузочного раздела. Этот шаг жизненно необходим. Если конфигурационный файл будет содержать неверное указание раздела загрузки, то Arch Linux не загрузится. Измените {{ic|/dev/sda3}} на соответствующий загрузочный раздел вашей системы ''(если вы разбили ваш диск так, как было указано в [[#Подготовка_жесткого_диска|данном примере]], вышим загрузочным разделом является sda1)''. Сделайте тоже самое для пункта fallback.<br />
<br />
{{hc|# nano /boot/syslinux/syslinux.cfg|2=<br />
...<br />
LABEL arch<br />
...<br />
APPEND root=/dev/sda3 ro<br />
...}}<br />
<br />
Для получения более детальной информации о конфигурировании и использовании Syslinux, смотрите [[Syslinux]].<br />
<br />
===== GRUB =====<br />
<br />
{{Note|При GPT-разметке дисков на материнских платах с BIOS, GRUB нуждается в 2-мегабайтном "[[GRUB#GPT_specific_instructions|загрузочном разделе BIOS]]".}}<br />
<br />
{{Note|Пожалуйста, не пользуйтесь обозначениями разделов наподобие {{ic|/dev/sda1}} в приведенной ниже команде.}}<br />
<br />
# pacman -S grub-bios<br />
# grub-install --target=i386-pc --recheck /dev/sda<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
====Для материнских плат UEFI====<br />
<br />
Для загрузки UEFI, требуется GPT-разметка диска и разметка системы под UEFI (512 Мб или больше, FAT32, должен присутствовать тип {{ic|EF00}}) и диск должен быть смонтирован в {{ic|/boot/efi}}. Если вы с самого начала следовали указаниям данного руководства, у вас уже соблюдены все необходимые требования.<br />
<br />
Несмотря на наличие других [[UEFI_Bootloaders|загрузчиков UEFI]], рекомендуется использовать EFISTUB. Ниже приведены инструкции по установке EFISTUB и GRUB.<br />
<br />
{{Note|Syslinux не поддерживает UEFI.}}<br />
<br />
===== EFISTUB =====<br />
<br />
Используя EFISTUB, ядро Linux может выступать как свой собственный загрузчик. Вот загрузочный метод UEFI, рекомендованный разработчиками и более простой, чем {{ic|grub-efi-x86_64}}. Приведенные ниже шаги устанавливают rEFInd (форк rEFIt), чтобы обеспечить меню для ядер EFISTUB, равно как и для загрузки других загрузчиков UEFI. Вы можете пользоваться такжеe [[UEFI_Bootloaders#Using_gummiboot|gummiboot]] (не протестирован) вместо rEFInd. И rEFInd, и gummiboot могут обнаружить загрузчик Windows UEFI при двойной загрузке.<br />
<br />
1. Загрузитесь в режиме UEFI и подгрузите модуль ядра {{ic|efivars}} перед выполнением chroot:<br />
<br />
# modprobe efivars # перед выполнением chroot<br />
<br />
2. Примонтируйте раздел UEFISYS в {{ic|/mnt/boot/efi}}, выполните chroot и [[UEFI_Bootloaders#Setting_up_EFISTUB|скопируйте ядро и файлы initramfs]] в {{ic|/boot/efi}}.<br />
<br />
3. Каждый раз при обновлении ядра и файлом initramfs files в {{ic|/boot}} их необходимо обновлять и в {{ic|/boot/efi/EFI/arch}}. Этот процесс может быть автоматизирован или [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Systemd|с использованием systemd]] или же [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Incron|с использованием incron]] (для установок, не использующих systemd).<br />
<br />
4. Установите следующие пакеты:<br />
<br />
# pacman -S refind-efi-x86_64 efibootmgr<br />
<br />
5. Установите rEFInd в раздел UEFISYS (кратко из статьи [[UEFI Bootloaders#Using rEFInd]]):<br />
<br />
# mkdir -p /boot/efi/EFI/arch/refind<br />
# cp /usr/lib/refind/refindx64.efi /boot/efi/EFI/arch/refind/refindx64.efi<br />
# cp /usr/lib/refind/config/refind.conf /boot/efi/EFI/arch/refind/refind.conf<br />
# cp -r /usr/share/refind/icons /boot/efi/EFI/arch/refind/icons<br />
<br />
6. Создайте файл {{ic|refind_linux.conf}} с параметрами ядра, которые будут использоваться rEFInd:<br />
<br />
{{hc|# nano /boot/efi/EFI/arch/refind_linux.conf|2=<br />
"Boot to X" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=graphical.target"<br />
"Boot to console" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=multi-user.target"}}<br />
<br />
7. Добавьте rEFInd в загрузочное меню UEFI, используя [[UEFI#efibootmgr|efibootmgr]]. <br />
<br />
{{Warning|Использование {{ic|efibootmgr}} на компьютерах Apple Macs может повредить прошивку и потребовать перепрошивки ROM на материнской плате. Для компьютеров Mac, используйте {{AUR|mactel-boot}}, или "благословите" данное использование из самой Mac OS X.}}<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (rEFInd)" -l '\\EFI\\arch\\refind\\refindx64.efi'<br />
<br />
{{Note|В приведенной выше команде, X и Y обозначают диски и разделы раздела UEFISYS. Например, в {{ic|/dev/sdc5}}, X обозначает "c" и Y обозначает "5".}}<br />
<br />
8. (не обязательно) Как запасный вариант, в случае, когда созданный {{ic|efibootmgr}} загрузочная запись не работает, скопируйте {{ic|refindx64.efi}} в {{ic|/boot/efi/EFI/boot/bootx64.efi}} как показано ниже:<br />
<br />
# cp -r /boot/efi/EFI/arch/refind/* /boot/efi/EFI/boot/<br />
# mv /boot/efi/EFI/boot/refindx64.efi to /boot/efi/EFI/boot/bootx64.efi<br />
<br />
===== GRUB =====<br />
<br />
{{Note|В случае системы с 32-битным EFI, как Mac до 2008 года, вместо этого установите {{ic|grub-efi-i386}} и используйте опцию {{ic|1=--target=i386-efi}}.}}<br />
<br />
# pacman -S grub-efi-x86_64 efibootmgr<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Выполните следующую команду для создания пункта меню GRUB в загрузочном меню UEFI. Смотрите [[UEFI#efibootmgr|efibootmgr]] для получения дальнейшей информации.<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (GRUB)" -l '\\EFI\\arch_grub\\grubx64.efi'<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
===Обновление системы===<br />
<br />
{{Warning|1=Обновление системы каждый раз должно выполняться c осторожностью. Очень важно прочитать и понять [https://bbs.archlinux.org/viewtopic.php?id=57205 эти правила (англ.)], прежде чем продолжить.}}<br />
<br />
Часто разработчики предоставляют важную информацию о требованиях к конфигурации и изменениях с указанием известных проблем. От пользователя Arch Linux ожидается, что он обратит внимание на данные сведения перед выполнением обновления:<br />
<br />
* [http://archlinux.org.ru/ Новости на главной странице Arch]. Если вы не прочитали их перед обновлением и затем обнаружили ошибку, проверьте раздел новостей ''до'' того, как зададите вопрос на форуме!<br />
<br />
* [https://archlinux.org/pipermail/arch-announce/ списки рассылки (англ.)].<br />
<br />
Синхронизуйте и обновите базу данных пакетов, выполните обновление системы в целом командой:<br />
<br />
# pacman -Syu<br />
<br />
Или, что то же самое:<br />
<br />
# pacman --sync --refresh --sysupgrade<br />
<br />
Если в этот момент вам будет предложено обновить pacman, согласитесь, нажав клавишу {{Keypress|Y}}, а по окончании обновления установщика повторите команду {{ic|pacman -Syu}}.<br />
<br />
{{Note|Иногда изменения в конфигурации могут потребовать от пользователя определенных действий в процессе обновления; читайте вывод программы pacman для получения соответствующей информации. Смотрите статью [[Pacnew and Pacsave Files]] для получения более подробной информации.}}<br />
<br />
{{Note|Перезагрузитесь, если обновили пакет ядра {{Pkg|linux}}.}}<br />
<br />
Имейте в виду, что дистрибутив Arch придерживается модели '''rolling release'''. Это означает, что пользователю не придется переустановить или выполнять сложную пересборку системы для обновления её до новейшей версии. Периодическое использование команды {{ic|pacman -Syu}} (с учетом приведенных выше предупреждений) позволяет сохранять всю систему в актуальном состоянии и на переднем крае. По итогам этого обновления будет получена система с текущими версиями всех пакетов.<br />
<br />
Смотрите раздел [[FAQ_(Русский)#Управление пакетами|Управление пакетами]] статьи [[FAQ (Русский)]] для получения ответов на вопросы, касающиеся обновления системы и управления пакетами.<br />
<br />
=====Игнорирование обновления пакетов=====<br />
<br />
Команда {{ic|pacman -Syu}} выполнит обновление вашей системы. Существует возможность защитить какой-либо пакет от обновления. Обычно это касается пакета, обновление которого может создать проблемы для стабильной работы вашей системы. <br />
<br />
В этом случае у вас есть два варианта: <br />
<br />
* Обозначить пакет/пакеты, который/которые вы не хотите обновлять, указав при обновлении ключ {{ic|--ignore}}:<br />
<br />
# pacman -Syu --ignore libass filesystem<br />
<br />
* Указать игнориуемый пакет/пакеты в конфигурационном файле {{ic|pacman.conf}}:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
IgnorePkg = libass filesystem}}<br />
<br />
Ожидается, что опытные пользователи будут поддерживать '''всю''' систему в актуальном состоянии при помощи {{ic|pacman -Syu}}, а не обновлять отдельные пакеты. Конечно, вы можете отклониться от такого типичного использования, если пожелаете; однако, имейте в виду: в таком случае гораздо вероятнее, что программы не будут работать, как ожидается, и такие действия могут повредить всю систему. Большинство проблем возникает, когда производится выборочное обновление пакетов или нестандартная компиляция. Поэтому использование секции {{ic|IgnorePkg}} в файле {{ic|/etc/pacman.conf}} не рекомендуется и должно применяться крайне редко, и только если вы знаете, что вы делаете. Используйте {{ic|IgnorePkg}} на свой страх и риск.<br />
<br />
===Отмонтирование разделов и перезагрузка===<br />
<br />
Покиньте окружение chroot:<br />
<br />
# exit<br />
<br />
Так как разделы были примонтированы в {{ic|/mnt}}, мы используем следующую команду, чтобы отмонитровать их:<br />
<br />
# umount /mnt/{boot,home,}<br />
<br />
Перезагрузите компьютер:<br />
<br />
# reboot<br />
<br />
{{Tip|Не забудьте вынуть установочный диск из привода, иначе вы снова попадете в установщик системы.}}<noinclude><br />
{{Beginners' Guide navigation (Русский)}}</noinclude></div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=234096Systemd (Русский)2012-11-06T17:56:02Z<p>Vladislav.tyulbashev: /* Временная зона */</p>
<hr />
<div>[[Category:Русский]]<br />
[[en:systemd]]<br />
[[es:systemd]]<br />
[[fr:systemd]]<br />
[[it:systemd]]<br />
[[zh-CN:systemd]]<br />
{{Article summary start|Сводка}}<br />
{{Article summary text|Статья охватывает установку и настройку systemd.}}<br />
{{Article summary heading|Связанные статьи}}<br />
{{Article summary wiki|Systemd/Services}}<br />
{{Article summary wiki|Systemd FAQ}}<br />
{{Article summary wiki|Init Rosetta (Русский)}}<br />
{{Article summary wiki|Udev (Русский)}}<br />
{{Article summary end}}<br />
Цитата с [http://freedesktop.org/wiki/Software/systemd веб-страницы проекта]:<br />
<br />
''"'''systemd''' - система [инициализации] и менеджер служб для Linux, совместимые со скриптами инициализации SysV и LSB. '''systemd''' обеспечивает возможности агрессивной параллелизации, использует сокеты и активацию [[D-Bus]] для запускаемых служб, предлагает запуск демонов по необходимости, отслеживает процессы при помощи [[cgroups|контрольных групп]] Linux, поддерживает мгновенные снимки и восстановление состояния системы, монтирование и точки монтирования, а также внедряет основанную на зависимостях логику контроля процессов сложных транзакций. Эта система может выступать заменой [[SysVinit|sysvinit]]."''.<br />
<br />
{{Note|1=За детальным объяснением причин происходящего перехода Arch'а на systemd обратитесь к [https://bbs.archlinux.org/viewtopic.php?pid&#61;1149530#p1149530 сообщению на англоязычном форуме].}}<br />
<br />
Смотрите также [[Wikipedia:Systemd|статью в Википедии]].<br />
== Что надо усвоить до начала миграции на данную систему ==<br />
<br />
* Настоятельно рекомендуется перейти на новую конфигурацию '''initscripts''', описанную в статье [[rc.conf (Русский)|rc.conf]]. Сконфигурировав таким образом свою систему, вы проделаете бóльшую часть работы, необходимую для миграции на systemd.<br />
* Почитайте про systemd на [http://freedesktop.org/wiki/Software/systemd/ сайте разработчиков].<br />
* Обратите внимание, что systemd имеет собственный '''журнал (journal)''', заменяющий '''syslog''', хотя оба варианта ведения логов могут сосуществовать. Обратитесь к приведенному ниже [[#Журнал|разделу, посвященному журналу]].<br />
* Хотя systemd вполне способна заменить определенную функциональность таких демонов, как '''cron''', '''acpid''' или '''xinetd''', но если вы не хотите, можете не отказываться от использования традиционных демонов.<br />
<br />
== Установка ==<br />
Systemd может быть установлен параллельно со стандартным пакетом инициализации {{Pkg|initscripts}}, и между ними можно будет переключаться путем добавления/удаления [[kernel parameters|параметров ядра]] {{ic|1=init=/usr/lib/systemd/systemd}}. <br />
<br />
=== Смешанная установка systemd/SysVinit/initscripts ===<br />
<br />
Возможно иметь в своей системе одновременно установленными systemd и SysVinit и использовать одни и те же конфигурационные файлы, что позволит вам свободно переключаться между ними туда и обратно:<br />
<br />
# Откажитесь от устаревшего формата конфигурации initscripts (о них сообщается при загрузке системы) в пользу [[#Родные системные файлы в systemd|родных системных файлов systemd]] и перезагрузитесь для проверки работоспособности initscripts.<br />
# Установите пакет {{Pkg|systemd}} из [[Official Repositories (Русский)|официальных репозиториев]].<br />
# Добавьте запись {{ic|1=init=/usr/lib/systemd/systemd}} к [[Kernel parameters|параметрам ядра]] в вашем загрузчике.<br />
# Перезагрузите систему.<br />
<br />
Systemd запустит демоны, перечисленные в {{ic|/etc/rc.conf}}, выполнит {{ic|/etc/rc.local}} и {{ic|/etc/rc.local.shutdown}} соответственно при загрузке/выключении системы (смотрите ниже раздел [[#Эмуляция initscripts]]). Если поддержка совместимости с массивом {{ic|DAEMONS}} в конфигурационном файле {{ic|rc.conf}} или же скриптов в {{ic|rc.local}} вам не нужна, соответствующие сервис-файлы могут быть заблокированы (замаскированы) для их отключения.<br />
<br />
Если вы ранее входили в систему посредством экранного менеджера (SLiM, GDM и т.п.) с использованием {{ic|/etc/inittab}}, то таким образом экранный менеджер более не запустится, поскольку systemd не использует {{ic|inittab}}. Вики-страница, посвященная [[Login_Manager|экранному менеджеру (англ.)]] содержит информацию о том, как вам следует запустить его в качестве сервиса a systemd.<br />
<br />
{{Warning|В случае, когда у вас в массиве {{ic|DAEMONS}} перечислены демоны, для которых имеются родные сервис-файлы systemd, автоматически будут использоваться родные сервис-файлы. Тем не менее, если имена скриптов rc и сервисов systemd (так далее будут именоваться службы данной системы инициализации) не соответствуют друг другу, данное правило не сработает и вам следует убедиться, что только включен только один из них двух (предпочтительно родной сервис-файл).}}<br />
<br />
{{Warning|Systemd - процесс асинхронной загрузки по сравнению сравнении с последовательным запуском демонов из массива {{ic|DAEMONS}}. В частности, {{ic|network}}, будучи поддерживаемым для совместимости сервисом, может запуститься слишком поздно для включения интерфейсов, которые требуются другим сервисам. Рекомендуется переключиться на использование [[netcfg]] или [[NetworkManager]] до перехода на systemd.}}<br />
<br />
=== Смешанная установка systemd/initscripts ===<br />
<br />
Возможно заменить SysVinit на systemd, но сохранить initscripts в случае использования некоторых скриптов rc scripts, для которых пока не имеется эквивалентов в systemd (смотрите ниже раздел [[#Эмуляция_initscripts|Эмуляция initscript]]).<br />
<br />
# Следуйте инструкциям для смешанной установки systemd/sysvinit/initscripts.<br />
# [[#Использование_юнитов|Включите демоны]], ранее перечисленные в {{ic|/etc/rc.conf}} с помощью команды {{ic|systemctl enable ''daemonname''}}. Для переноса демонов из {{ic|/etc/rc.conf}} в разряд сервисов systemd, смотрите разделы: [[Daemons List|Список демонов (англ.)]] и [[Systemd/Services|Сервисы (англ.)]]. Демоны, для которых не имеется соответствующих сервис-файлов systemd, следует оставить в массиве {{ic|DAEMONS}}, поскольку systemd запустит устаревшие скрипты rc.<br />
# Установите пакет {{Pkg|systemd-sysvcompat}}. Данный пакет конфликтует с {{Pkg|sysvinit}} и вам будет предложено удалить последний.<br />
# Удалите запись {{ic|1=init=...}}, поскольку {{ic|/sbin/init}} теперь является символической ссылкой на systemd.<br />
# Перезагрузите систему.<br />
<br />
Единственная разница между этим вариантом и вариантом с сохранением SysVinit состоит в том, что все бинарные файлы SysVinit заменены символическими ссылками на systemctl. Тем не менее, функциональность должна остаться неизменной.<br />
<br />
=== Чистая установка systemd ===<br />
<br />
В конце концов, возможно вовсе удалить пакеты {{pkg|initscripts}} и {{pkg|sysvinit}} и использовать только лишь systemd.<br />
<br />
# Следуйте инструкциям для смешанной установки systemd/initscripts.<br />
# Убедитесь, что более не имеется каких-либо демонов для запуска из массива {{ic|DAEMONS}} в конфигурационном файле {{ic|/etc/rc.conf}} и оба файла {{ic|/etc/rc.local}} и {{ic|/etc/rc.local.shutdown}} пусты.Чтобы вопрооизвести поведение системы пкак ранее при использовании {{ic|/etc/rc.local}} в случае использования systemd, обратиттесь к разделу [[#Эмуляция /etc/rc.local]].<br />
# Удалите пакет {{pkg|initscripts}} из вашей системы.<br />
<br />
{{Warning|'''Не''' удаляйте {{pkg|systemd-sysvcompat}}, поскольку этот пакет входит в группу {{grp|base}}.}}<br />
<br />
=== Дополнительная информация ===<br />
<br />
{{Note|Теперь добавлять вашего пользователя в [[Users and Groups|группы]] ({{ic|optical}}, {{ic|audio}}, {{ic|scanner}}, ...) в большинстве случаев '''нет''' необходимости при использовании systemd. Это даже может нарушить работоспособность системы.}}<br />
{{Tip|Если в параметрах ядра имеется значение {{ic|quiet}}, вероятно, вам стоит удалить его для нескольких первых загрузок systemd, чтобы видеть возникающие во время загрузке проблемы.}}<br />
<br />
Например, добавление в группу audio может привести к невозможности быстрого переключения между пользователями и позволит приложениям заблокировать программное микширование. Каждый вход PAM предоставляет сессию login, которое дает вам разрешения для местной сессии посредством [[Wikipedia:Access control list|POSIX ACLs]] на аудио/видео устройства и позволяет выполнять некоторые операции, такие, как как монтирование съемных носителей через [[udisks]]. <br />
<br />
{{Note|Systemd-logind заменил [[ConsoleKit]], удаленный из репозиториев, поэтому для полной функциональности теперь система должна загружаться с использованием systemd. Смотрите [http://archlinux.org.ru/node/352/ новость] для получения дальнейшей информации.}<br />
<br />
Ранее ConsoleKit обеспечивал подобные разрешения для устройств на основе ACL и разрешения polkit для локальных сессий.}}<br />
<br />
== Родные системные файлы ==<br />
<br />
{{Note|Возможно, вам придется создать эти файлы. Установите для всех файлов права доступа 644 и владельца root:root.}}<br />
<br />
=== Имя компьютера (hostname) ===<br />
<br />
Имя компьютера настраивается в файле {{ic|/etc/hostname}}. Этот файл не должен содержать системный домен (если таковой имеется). Для установки имени компьютера выполните:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
Обратитесь к руководствам {{ic|man 5 hostname}} и {{ic|man hostnamectl}} для получения более подробной информации.<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/hostname|<br />
myhostname<br />
}}<br />
<br />
=== Локаль ===<br />
<br />
Системная локаль по умолчанию настраивается в конфигурационном файле {{ic|/etc/locale.conf}}. Для установки локали по умолчанию выполните:<br />
<br />
# localectl set-locale LANG="ru_RU.UTF-8"<br />
<br />
{{Note|Перед установкой локали по умолчанию вам сперва необходимо сделать локали доступными системе, раскомментировав их в файле {{ic|/etc/locale.gen}} и затем выполнив команду {{ic|locale-gen}} от суперпользователя root. Локаль, установленная командой {{ic|localectl}}, должна быть одной из '''раскомментированных''' локалей в файле {{ic|/etc/locale.gen}}.}}<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 locale.conf}}.<br />
* Дальнейшая информация содержится в статье [[Locale]].<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/locale.conf|2=<br />
LANG=ru_RU.utf8}}<br />
<br />
=== Консоль и раскладка клавиатуры ===<br />
<br />
Файл {{ic|/etc/vconsole.conf}} устанавливает настройки виртуальной консоли (раскладку клавиатуры и консольный шрифт).<br />
<br />
{{hc|/etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
FONT_MAP=}}<br />
<br />
{{Note|С версии {{Pkg|systemd}}-194 используются шрифт ядра и раскладку по умолчанию (т.е. американскую английскую). Нет более необходимости (для тех, кто использует американскую английскую раскладку) настраивать в конфигурационном файле строки {{ic|1=KEYMAP=}} и {{ic|1=FONT=}}, их можно оставить пустыми.}}<br />
<br />
Другой способ настройки раскладки клавиатуры в консоли состоит в использовании команды:<br />
<br />
# localectl set-keymap ru<br />
<br />
Преимущество такого подхода - в том, что он также установит указанную раскладку клавиатуры и для X11.<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 vconsole.conf}}.<br />
* Для получения детальной информации обратитесь к разделам [[Fonts#Console_fonts|консольные шрифты (англ.)]] и [[KEYMAP|раскладка клавиатуры (англ.)]].<br />
<br />
=== Временная зона ===<br />
<br />
Временная зона настраивается путем создания соответствующей символической ссылки {{ic|/etc/localtime}} на файл временной зоны в директории {{ic|/usr/share/zoneinfo/}}. Чтобы сделать это автоматически, выполните команду:<br />
<br />
# timedatectl set-timezone Europe/Moscow<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 timedatectl}} и {{ic|man 5 localtime}}.<br />
<br />
{{Note|Прежний конфигурационный файл {{ic|/etc/timezone}} объявлен устаревшим с выходом {{pkg|systemd}}-190 и должен быть удален.}}<br />
<br />
Альтернативный метод - создание символической ссылки вручную:<br />
<br />
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
=== Аппаратные часы ===<br />
<br />
Systemd будет использовать UTC для аппаратных часов по умолчанию.<br />
{{Tip|Обычно рекомендуется запускать [[NTP|демон Network Time Protocol]] для поддержания синхронизации аппаратных часов с системным временем.}}<br />
<br />
==== Аппаратные часы по localtime ====<br />
<br />
Если вы собираетесь выставить аппаратные часы по localtime (местному времени, что '''КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕТСЯ'''), выполните команду:<br />
<br />
# timedatectl set-local-rtc true<br />
<br />
Если же захотите вернуть ваши аппаратные часы к использованию временного формата UTC, выполните:<br />
<br />
# timedatectl set-local-rtc false<br />
<br />
Помните, что настройка перехода на зимнее/летнее время - неблагодарное занятие. Если переход на зимнее/летнее время происходит в тот момент, когда ваш компьютер выключен, то при следующей загрузке ваши часы будут показывать ошибочное время ([http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html здесь об этом чуть подробнее (англ.)]). Последние версии ядра устанавливают системное время из RTC (часов реального времени) непосредственно во время загрузки без использования {{ic|hwclock}}, при этом ядро всегда считает, что RTC выставлено по UTC. Это означает, что если RTC выставлено по местному времени (local time), системное время будет изначально установлено ошибочно и затем корректироваться вскоре после этого при каждой загрузке. Это является причиной некоторых досадных багов (идущие назад часы редко являются нужной вещью).<br />
<br />
Причиной, позволяющей RTC быть выставленными по местному времени, является двойная загрузка системы с Windows, ([http://blogs.msdn.com/b/oldnewthing/archive/2004/09/02/224672.aspx которая использует localtime (англ.)]). Windows воспринимает RTC, выставленные по UTC при помощи простого [[Time#UTC_in_Windows|исправления реестра]]. Если вы столкнетесь с подобными проблемами при двойной загрузке с Windows, вы можете установить аппаратные часы на использование местного времени.<br />
<br />
* За дальнейшей информацией обратитесь к статье [[Time]].<br />
<br />
=== Подгружаемые модули ядра ===<br />
<br />
Сегодня все необходимые модули для загрузки подгружаются автоматически с помощью [[Udev]], так что, если вам не надо (или же вы не должны) использовать какой-нибудь модуль не из дерева ядра , нет необходимости дополнительно помещать какие-либо модули в какой-то файл конфигурации загрузки. Тем не менее, бывают случаи, когда вы можете подгрузить дополнительный модуль в процессе загрузки или поместить какой-то модуль в черный список, чтобы ваш компьютер работал правильно.<br />
<br />
==== Дополнительно подгружаемые при загрузке модули ====<br />
<br />
Необходимые для загрузки дополнительные модули оформляются в статический список файлов в директории {{ic|/etc/modules-load.d/}}. Каждый из конфигурационных файлов имеет наименование вида {{ic|/etc/modules-load.d/<program>.conf}} (где <program> - имя подгружаемого модуля) и содержит список имен подгружаемых модулей ядра, каждое из которых начинается с новой строки. При этом игнорируются как пустые строки конфигурационных файлов, так и строки, у которых первым символом, отличным о пробела, является символ {{ic|#}} и {{ic|;}}. Например:<br />
<br />
{{hc|/etc/modules-load.d/virtio-net.conf|<br />
# Load virtio-net.ko at boot<br />
virtio-net}}<br />
<br />
Более подробная информация содержится в руководстве {{ic|man 5 modules-load.d}}.<br />
<br />
==== Черный список ====<br />
<br />
Добавление модулей в черный список работает также, как и в случае с {{Pkg|initscripts}}, поскольку в действительности эта функция выполняется таким инструментом, как {{Pkg|kmod}}. Обратитесь к разделу [[Kernel_modules#Blacklisting|Module Blacklisting]] за более подробной информацией.<br />
<br />
=== Монтирование файловых систем ===<br />
<br />
Установка по умолчанию автоматически проверяет файловые системы командой fsck и монтирует файловые системы перед запуском тех сервисов, котрым необходимо иметь эти системы примонтированными. Например, systemd позволяет в автоматическом режиме добиться, что удаленные файловые системы наподобие [[NFS]] и [[Samba]] подключаются после поднятия сети. Поэтому монтирование как локальных, так и удаленных файловых систем, прописанных в {{ic|/etc/fstab}} должно работать "из коробки".<br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.mount}} для получения более подробной информации.<br />
<br />
==== Автомонтирование ====<br />
<br />
* Если ваш раздел {{ic|/home}} занимает большой объем, лучшим вариантом было бы позволить сервисам не зависеть от подключения {{ic|/home}} и запускать данные сервисы, когда {{ic|/home}} еще подвергается проверке при загрузке системы. Добиться такого результата можно добавлением следующих параметров в запись файла fstab, касающуюся раздела {{ic|/home}}:<br />
<br />
noauto,x-systemd.automount<br />
<br />
Такие параметры вызовут команду fsck и примонтируют {{ic|/home}} при первом обращении к данному разделу, и ядро будет буферизовать все файлы доступа к {{ic|/home}} до готовности данного раздела.<br />
<br />
* То же самое применимо и к удаленным файловым системам. Если вы хотите, чтобы монтирование данных систем происходило только по мере доступа к ним, вы можете использовать параметр {{ic|1=x-systemd.device-timeout=#}} в файле {{ic|/etc/fstab}} для определения таймаута в том случае, кода сетевые ресурсы оказываются недоступны.<br />
<br />
* В случае использования зашифрованных файловых систем с ключами доступа, вам также Iследует добавить параметр {{ic|noauto}} в соответствующие записи файла {{ic|/etc/crypttab}}. systemd не будет подключать зашифрованные устройства при загрузке, но, вместо этого, дождется реального обращения к ним и автоматически откроет к ним доступ с использованием определенных ключей перед тем, как они будут примонтированы. Это сэкономит несколько секунд при загрузке системы, например, в случае использования зашифрованного устройства RAID, потому что systemd не будет дожидаться от устройства, когда оно станет доступным. Например:<br />
<br />
{{hc|/etc/crypttab|<br />
data /dev/md0 /root/key noauto}}<br />
<br />
=== LVM ===<br />
<br />
Если у вас имеются тома LVM, не активированные посредством [[Mkinitcpio|initramfs]], включите сервис {{ic|lvm.service}} (предоставляемый пакетом {{pkg|lvm2}}):<br />
<br />
# systemctl enable lvm<br />
<br />
Точно так же, если у вас LVM на устройствах с шифрованием, монтируемым позже в процессе загрузки (например, из {{ic|/etc/crypttab}}), вам необходимо включить сервис {{ic|lvm-on-crypt.service}} (также предоставляемый пакетом {{pkg|lvm2}}):<br />
<br />
# systemctl enable lvm-on-crypt<br />
<br />
=== Управлением питанием ACPI ===<br />
<br />
Systemd обрабатывает некоторые события, связанные с ACPI, что настраивается при помощи параметров в конфигурационном файле {{ic|/etc/systemd/logind.conf}}:<br />
<br />
* {{ic|HandlePowerKey}}: определяет действия системы при нажатии кнопки питания (вкл./выкл.).<br />
* {{ic|HandleSuspendKey}}: определяет действия системы при нажатии кнопки спящего режима.<br />
* {{ic|HandleHibernateKey}}: определяет действия системы при нажатии кнопки ждущего режимаs.<br />
* {{ic|HandleLidSwitch}}: определяет действия системы при закрытии крышки компьютера.<br />
<br />
Для соответствующих действий могут использоваться значения {{ic|ignore}} (пропустить), {{ic|poweroff}} (отключить питание), {{ic|reboot}} (перезагрузить), {{ic|halt}} (выключить), {{ic|suspend}} (включить спящий режим), {{ic|hibernate}} (включить ждущий режим) или {{ic|kexec}} (системный вызов позволяющий оперативно переключиться в другое ядро).<br />
<br />
Если данные параметры не определены, по умолчанию systemd будет использовать следующие: {{ic|1=HandlePowerKey=poweroff}}, {{ic|1=HandleSuspendKey=suspend}}, {{ic|1=HandleHibernateKey=hibernate}}, и {{ic|1=HandleLidSwitch=suspend}}.<br />
<br />
В системах без графического интерфейса или использующих простые оконные менеджеры наподобие like [[i3]] или [[awesome]], так можно заменить демон [[acpid]], который обычно используется для реагирования на данные события ACPI.<br />
<br />
В текущей версии systemd параметры {{ic|Handle}} будут применены ко всей системе, если только они не "подавляются (временно отключены) другой программой, такой, как менеджер питания данного окружения рабочего стола. Если эти ограничений нет, вы можете столкнуться с ситуацией, когда systemd приводит вашу систему в спящий режим, а затем, когда система пробуждается менеджером управлением питания, снова "усыпляет" ее.<br />
<br />
{{Warning|В настоящее время менеджер управления питанием новейшей версии в [[KDE]] является единственным, который использует такие команды "подавления". До тех пор, пока их не будут применять другие менеджеры, вам надо выставить в параметрах {{ic|Handle}} значение {{ic|ignore}}, если вы хотите, чтобы события ACPI обрабатывались в случае использования [[GNOME]], [[Xfce]], [[acpid]] или других программ. Но на подходе новые версии, которые включат данную функциональность.}}<br />
<br />
{{Note|Systemd также может использовать для перевода системы в спящий/ждущий режим другие движки (такие, как [[Uswsusp]] или [[TuxOnIce]]), в дополнение к движку ''ядра''.}}<br />
<br />
==== Хуки спящего режима ====<br />
<br />
Systemd в своих командах {{ic|systemctl suspend}} или {{ic|systemctl hibernate}} не использует [[pm-utils]] для "усыпления" машины, поэтому хуки [[pm-utils]], включая любые [[Pm-utils#Creating_your_own_hooks|пользовательские хуки]] не будут работать. Тем не менее, systemd предоставляет схожий механизм запуска пользовательских скриптов для данных событий. Systemd запускает все исполняемые файлы в директории {{ic|/usr/lib/systemd/system-sleep/}} и передает каждому из них два аргумента:<br />
<br />
* Аргумент 1: или {{ic|pre}}, или {{ic|post}}, в зависимости от которых машина либо "уснет", либо будет "пробуждена";<br />
* Аргумент 2: или {{ic|suspend}}, или {{ic|hibernate}}, в зависимости от того, что было вызвано.<br />
<br />
В отличие от [[pm-utils]], systemd запустит данные скрипты одновременно, а не один после другого.<br />
<br />
Вывод вашего скрипта будет записан сервисом {{ic|systemd-suspend.service}} или {{ic|systemd-hibernate.service}}, поэтому вы вы можете увидеть данный выход в [[Systemd (Русский)#Журнал systemd|журнале]]:<br />
<br />
# journalctl -b -u systemd-suspend<br />
<br />
Обратите внимание, что вместо использования скриптов вы также можете использовать специальные целевые юниты - {{ic|sleep.target}}, {{ic|suspend.target}} или {{ic|hibernate.target}} для того, чтобы подключить к другим юнитам возможности перехода в спящий режима.<br />
<br />
Пример:<br />
<br />
{{hc|/usr/lib/systemd/system-sleep/example.sh|<br />
#!/bin/sh<br />
case $1/$2 in<br />
pre/*)<br />
echo "Going to $2..."<br />
;;<br />
post/*)<br />
echo "Waking up from $2..."<br />
;;<br />
esac}}<br />
<br />
Обратитесь к руководствам {{ic|man 7 systemd.special}} и {{ic|man 8 systemd-sleep}} для получения дальнейшей информации.<br />
<br />
=== Временные файлы ===<br />
<br />
Systemd-tmpfiles использует конфигурационные файлы в директориях {{ic|/usr/lib/tmpfiles.d/}} и {{ic|/etc/tmpfiles.d/}} для определения действий с временными файлами и директориями (создание, очистка и удаление их), обычно расположенные в {{ic|/run}} or {{ic|/tmp}}. Каждый файл с настройками имеет название вида {{ic|/etc/tmpfiles.d/<program>.conf}}. Данные конфигурационные файлы имеют приоритет по сравнению с любыми файлами с таким же названием, расположенными в директории {{ic|/usr/lib/tmpfiles.d/}}.<br />
<br />
Временные файлы tmpfiles обычно поставляются вместе с сервис-файлами для создания директорийк. которые, как ожидается, будут использоваться определенными демонами. Например, демон [[Samba]] предполагает наличие директории {{ic|/var/run/samba}} с соответствующими правами доступа. В данном случае tmpfile выглядит следующим образом:<br />
<br />
{{hc|/usr/lib/tmpfiles.d/samba.conf|<br />
D /var/run/samba 0755 root root}}<br />
<br />
Тем не менее, tmpfiles также могут использоваться для записи значений в определенные файлы во врем загрузки. К примеру, если вы используете {{ic|/etc/rc.local}} для того, чтобы отключить пробуждение системы USB-устройствами, при помощи команды {{ic|echo USBE > /proc/acpi/wakeup}}, вы можете вместо этого использовать следующий tmpfile:<br />
<br />
{{hc|/etc/tmpfiles.d/disable-usb-wake.conf|<br />
w /proc/acpi/wakeup - - - - USBE}}<br />
<br />
Метод с использованием tmpfiles в данном случае рекомендуется, поскольку systemd в действительности не поддерживает {{ic|/etc/rc.local}}.<br />
<br />
Обратитесь к руководству {{ic|man 5 tmpfiles.d}} за более подробной информацией.<br />
<br />
=== Юнит ===<br />
<br />
Юнит (англ. unit) - конфигурационный файл, содержащий информацию о сервисе (службе), сокете, устройстве, точке монирования/автомонирования, файле подкачке или разделе, определяемом для загрузки уровне запуска, пути в файловой системе или таймере, которые контролируются и управляются при помощи systemd. Синтаксис юнитов навеян спецификацией .desktop-файлов (XDG Desktop Entry Specification), которая, в свою очередь, вдохновлялась .ini-файлами от Microsoft Windows. <br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.unit}} для получения дальнейшей информации.<br />
<br />
== Переход от initscripts к использованию systemd ==<br />
<br />
=== Эмуляция initscripts ===<br />
<br />
Интеграция с классической конфигурацией Arch'а обеспечивается пакетом {{Pkg|initscripts}}. В том случае, если {{Pkg|initscripts}} установлен параллельно с systemd и система загружена с использованием systemd, systemd будет выполнять следующую последовательность действий:<br />
<br />
# # Проводить синтаксический разбор массива {{ic|DAEMONS}} в файле {{ic|/etc/rc.conf}} и запускать при загрузке все находящиеся там демоны (см. ниже)<br />
# Выполнять при загрузке {{ic|/etc/rc.local}}<br />
# Выполнять при завершении работы системы {{ic|/etc/rc.local.shutdown}}<br />
<br />
Эмуляция initscripts рассматривается как просто переходная мера для легкой миграции пользователей на systemd и '''в конечном итоге будет отброшена'''. Система с "родной" systemd не зависит от централизованной конфигурации в {{ic|rc.conf}}, поэтому рекомендуется использовать [[#Родные системные файлы|родные конфигурационные файлы systemd]], которые имеют приоритет над настройками из {{ic|/etc/rc.conf}}.<br />
<br />
{{Note|Если вы отключали использование сочетания клавиш для перезагрузки системы {{keypress|Ctrl+Alt+Del}} в файле {{ic|/etc/inittab}}, теперь вам надо заново сделать это для systemd командой {{ic|systemctl mask ctrl-alt-del.target}}, выполняемой от суперпользователя root.}}<br />
<br />
==== Отказ от массива DAEMONS ====<br />
<br />
Для "чистой" установки systemd, вы можете полностью удалить файл {{ic|/etc/rc.conf}} и включать сервисы только посредством systemd. Для каждого сервиса с именем {{ic|<service_name>}} в массиве {{ic|DAEMONS}} из файла {{ic|/etc/rc.conf}} выполните команду:<br />
<br />
# systemctl enable <service_name><br />
<br />
{{Tip|Для получения списка обычно используемых демонов с их эквивалентами в initscripts и systemd, обратитесь к [[Daemons List|данной таблице]].}}<br />
<br />
Если сервис-файл {{ic|<service_name>.service}} отсутствует:<br />
<br />
* сервис-файл может быть недоступен для systemd. В этом случае вам нужно сохранить конфигурационный файл {{ic|rc.conf}} для запуска этих сервисов во время загрузки системы.<br />
* Systemd может использовать для сервисов другие имена, например, {{ic|cronie.service}} заменяет демон {{ic|crond}}; {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} заменяют демон {{ic|alsa}}. Другой важный пример - демон {{ic|network}}, которого сменил целый набор сервис-файлов (обратитесь к статье [[Configuring Network]] для получения дальнейшей информации.)<br />
<br />
{{Tip|Вы можете заглянуть вовнутрь пакета, содержащего стартовые скрипты демона, чтобы узнать имена его сервис-файла. К примеру:<br />
$ pacman -Ql cronie<br />
[...]<br />
cronie /etc/rc.d/crond #Демон initscript, указываемый в массиве {{ic|DAEMONS}} (не используется при "чистой" настройке systemd)<br />
[...]<br />
cronie /usr/lib/systemd/system/cronie.service #Соответствующий сервис systemd<br />
[...]<br />
}}<br />
<br />
* Наконец, пользователю не нужно включать некоторые сервисы явным образом. Например, {{ic|dbus.service}} будет включен автоматическики при установке {{ic|dbus-core}}. {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} также включены systemd автоматически. Проверьте список доступных сервисов и их состояние при помощи команды {{ic|systemctl}}, например: {{ic|systemctl status <service_name>}} (где <service_name> - имя сервиса).<br />
<br />
=== Сравнительная таблица устаревшей и "родной" конфигураций ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! scope="col"| Настройка<br />
! scope="col"| Конфигурационный файл (файлы)<br />
! scope="col"| Устаревшая секция [https://projects.archlinux.org/initscripts.git/tree/rc.conf?id=97f0cd6751e8d22c14d7492cdc2186cf41157ba6 rc.conf]<br />
|-<br />
| align="center"|Имя компьютера (Hostname)<br />
| align="left"|{{ic|/etc/hostname}}<br />
{{ic|/etc/hosts}}<br />
| align="center"|{{ic|NETWORKING}}<br />
|-<br />
| align="center"|Консоль и раскладка клавиатуры<br />
| align="left"|{{ic|/etc/vconsole.conf}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Локаль<br />
| align="left"|{{ic|/etc/locale.conf}}<br />
{{ic|/etc/locale.gen}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Временная зона<br />
| align="left"|{{ic|/etc/localtime}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Аппаратные часы<br />
| align="left"|{{ic|/etc/adjtime}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Модули ядра<br />
| align="left"|{{ic|/etc/modules-load.d/}}<br />
| align="center"|{{ic|HARDWARE}}<br />
|}<br />
<br />
=== Эмуляция /etc/rc.local ===<br />
<br />
Если вы хотите при использовании systemd сохранить простоту {{ic|/etc/rc.local}} , вам нужно создать следующий сервис-файл и включить его. Просто добавьте строки {{ic|1=ExecStart=}} для тех команд, которые вы хотите запустить. Если же вам в данном случае требуется более сложная функциональность (например, циклы с {{ic|for}}), то вы можете создать скрипт Bash и выполнять его из сервис-файла. Удалите {{ic|1=ExecStart=/bin/true}}, если вы здесь действительно добавляете команду.<br />
<br />
{{hc|/etc/systemd/system/rc-local.service|<nowiki><br />
[Unit]<br />
Description=/etc/rc.local compatibility<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/true<br />
RemainAfterExit=yes<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
== Примеры основных команд администрирования ==<br />
<br />
*{{ic|systemctl}}: используется для наблюдения и контроля за состоянием менеджера системы и сервисов systemd.<br />
*{{ic|systemd-cgls}}: рекурсивно показывает содержимое иерархии избранной контрольной группы (cgroup) Linux в виде дерева.<br />
*{{ic|systemadm}}: графическая оболочка для менеджера системы и сервисов systemd , позволяющая наблюдать и контролировать systemd (доступна в виде пакета {{AUR|systemd-ui-git}} из [[AUR]]).<br />
<br />
Обратитесь к страницам руководств для получения дальнейшей информации. <br />
<br />
{{Tip|Вы можете использовать приведенные ниже команды {{ic|systemctl}} с ключом {{ic|-H <user>@<host>}} для того, чтобы контролировать systemd на удаленной машине. В этом случае для соединения с удаленным процессом systemd будет использовать [[SSH]].}}<br />
<br />
=== Анализ состояния системы ===<br />
<br />
Список запущенных юнитов:<br />
<br />
$ systemctl<br />
<br />
или:<br />
<br />
$ systemctl list-units<br />
<br />
Список юнитов, попытка запуска которых завершилась неудачей:<br />
<br />
$ systemctl --failed<br />
<br />
Доступные юниты можно посмотреть в директориях {{ic|/usr/lib/systemd/system/}} и {{ic|/etc/systemd/system/}} (последняя директория имеет приоритет). Вы можете увидеть список установленных юнитов командой:<br />
<br />
$ systemctl list-unit-files<br />
<br />
=== Использование юнитов ===<br />
<br />
Юниты могут быть сервисами ({{ic|.service}}), точками монтирования ({{ic|.mount}}) или сокетами ({{ic|.sockets}}). При использовании команды {{ic|systemctl}} необходимо всегда указывать полное имя файла, включая расширение. Однако, есть несколько сокращений при определении юнита следующими командами{{ic|systemctl}}:<br />
<br />
* Ели вы не указали суффикс, systemctl предполагает, что это {{ic|.service}}. Например, {{ic|netcfg}} и {{ic|netcfg.service}} будут трактоваться одинаково.<br />
* Точки монтирования будут автоматически преобразованы в соответствующий юнит {{ic|.mount}}. Например, указание {{ic|/home}} равнозначно {{ic|home.mount}}.<br />
* Аналогично точкам монтирования, имена устройств автоматически преобразуются в соответствующий юнит {{ic|.device}}, поэтому указание {{ic|/dev/sda2}} полностью соответствует юниту {{ic|dev-sda2.device}}.<br />
<br />
Обратитесь к руководству {{ic|man systemd.unit}} для получения детальной информации.<br />
<br />
{{Note|При использовании юнитов следует обращать внимание на регистр букв в наименовании сервис-файлов: так, необходимо использовать ''NetworkManager.'''service''' '' (запомните употребление в данном названии букв в верхнем регистре) для включения сервиса NetworkManager'а, в противном случае вы получите сообщение об ошибке и сервис во время загрузки системы не запустится.}}<br />
<br />
Незамедлительно запустить юнит:<br />
<br />
# systemctl start <unit><br />
<br />
Незамедлительно остановить юнит:<br />
<br />
# systemctl stop <unit><br />
<br />
Перезапустить юнит:<br />
<br />
# systemctl restart <unit><br />
<br />
Запросить у юнита перезагрузку его настроек:<br />
<br />
# systemctl reload <unit><br />
<br />
Показать статус юнита, а также запущен он или нет:<br />
<br />
$ systemctl status <unit><br />
<br />
Проверить включение юнита (т.е. разрешен ли юниту запуск при загрузке системы):<br />
<br />
$ systemctl is-enabled <unit><br />
<br />
Включить юнит (разрешить юниту запуск при загрузке системы):<br />
<br />
# systemctl enable <unit><br />
<br />
{{Note| Если сервис-файлы не имеют раздела {{ic|Install}}, это обычно означает, что данные сервисы вызываются автоматически другими сервисами. Но если вам требуется установить их вручную, используйте следующую команду, заменив {{ic|foo}} именем вашего сервиса.<br />
# ln -s /usr/lib/systemd/system/''foo''.service /etc/systemd/system/graphical.target.wants/<br />
}}<br />
<br />
Выключить юнит (запретить юниту запуск при загрузке системы):<br />
<br />
# systemctl disable <unit>}}<br />
<br />
Показать страницу помощи для юнита (необходима поддержка этой функции в указанном файле юнита):<br />
<br />
$ systemctl help <unit><br />
<br />
=== Управление питанием ===<br />
<br />
Если у вас локальная пользовательская сессия {{ic|systemd-logind}} и нет других активных сессий, приведенные ниже команды сработают и без привилегий суперпользователя root. В противном случае (например, вследствие того, что пользователь залогинился в tty), systemd автоматически запросит у вас пароль root.<br />
<br />
Завершить работу и перезагрузить систему:<br />
<br />
$ systemctl reboot<br />
<br />
Завершить работу и выключить компьютер (с отключением питания):<br />
<br />
$ systemctl poweroff<br />
<br />
Завершить работу и остановить систему:<br />
<br />
$ systemctl halt<br />
<br />
Перевести систему в спящий режим:<br />
<br />
$ systemctl suspend<br />
<br />
Перевести систему в ждущий режим:<br />
<br />
$ systemctl hibernate<br />
== Написание пользовательского .service файла ==<br />
<br />
=== Обработка зависимостей ===<br />
<br />
В случае использования systemd зависимости могут быть разрешены правильным построением файлов юнитов. ,Наиболее частый случай -- когда юниту {{ic|A}} требуется, чтобы юнит {{ic|B}} был запущен перед тем, как запустится сам юнит {{ic|A}}. В этом случае добавьте строки {{ic|1=Requires=B}} и {{ic|1=After=B}} в секцию {{ic|[Unit]}} сервис-файла юнита {{ic|A}}. Если подобная зависимость не является обязательной, добавьте соответственно взамен указанных выше строки {{ic|1=Wants=B}} и {{ic|1=After=B}}. Обратите внимание, что {{ic|1=Wants=}} и {{ic|1=Requires=}} не подразумевают {{ic|1=After=}}, что означает, что если {{ic|1=After=}} не определено, два юнита будут запущены параллельно друг другу.<br />
<br />
Обычно зависимости указываются в сервис-файлах, а не в целевых юнитах. Например, {{ic|network.target}} потребуется любому сервису, который связан с настройкой ваших сетевых интерфейсов, поэтому в любом случае определите загрузку вашего пользовательского юнита после запуска {{ic|network.target}}.<br />
<br />
=== Тип ===<br />
<br />
Существует несколько различных типов запуска служб, которые надо иметь в виду при написании пользовательского сервис-файла. Тип запуска определяется параметром {{ic|1=Type=}} в секции {{ic|[Service]}}. Обратитесь к руководству {{ic|man systemd.service}} для получения более детального объяснения.<br />
<br />
* {{ic|1=Type=simple}}: systemd предполагает, что сервис будет запущен незамедлительно. Процесс при этом не должен форкнуться. Не используйте этот тип, если другим сервисы зависят от очередности при запуске данного сервиса, за исключением активации сокета.<br />
* {{ic|1=Type=forking}}: systemd предполагает, что сервис запускается однократно, процесс форкается и родительский процесс завершается. Используйте данный тип для запуска классических демонов за исключением тех случаев, когда, как вам известно, в таком поведении процесса нет необходимости. Вам следует также определить {{ic|1=PIDFile=}}, чтобы systemd могла отслеживать основной процесс.<br />
* {{ic|1=Type=oneshot}}: Полезен для скриптов, которые выполняют одну работу, а потом завершаются. Вам может понадобиться также установить параметр {{ic|1=RemainAfterExit=}}, чтобы systemd по-прежнему считала процесс активным, даже после его завершения<br />
* {{ic|1=Type=notify}}: Идентичен параметру {{ic|1=Type=simple}}, но с той оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления обеспечивается библиотекой {{ic|libsystemd-daemon.so}}.<br />
* {{ic|1=Type=dbus}}: Сервис считается находящимся в состоянии готовности, когда определенное {{ic|BusName}} появляется в системной шине DBus.<br />
<br />
=== Замена предоставленных пакетами файлов юнитов ===<br />
<br />
Файлы юнитов в директории {{ic|/etc/systemd/system/}} имеют приоритет над такими же файлами в директории {{ic|/usr/lib/systemd/system/}}.<br />
Для создания собственной версии юнита (который не будет затерт при обновлении), скопируйте старый юнит из директории {{ic|/usr/lib/}} в директорию {{ic|/etc/}} и внесите в эту копию свои изменения. Альтернативным вариантом является использование {{ic|.include}} для парсинга существующего сервис-файла и затем переопределения или добавления новых опций. Например, если вы просто хотите добавить в сервис-файл дополнительную зависимость, вы можете использовать такую команду в юните:<br />
<br />
{{hc|/etc/systemd/system/<service-name>.service|2=<br />
.include /usr/lib/systemd/system/<service-name>.service<br />
<br />
[Unit]<br />
Requires=<new dependency><br />
After=<new dependency>}}<br />
<br />
Затем выполните следующие команды для того, чтобы изменения вступили в силу:<br />
<br />
# systemctl reenable <unit><br />
# systemctl restart <unit><br />
<br />
{{Tip|Вы можете использовать команду {{ic|systemd-delta}}, чтобы увидеть, какие файлы юнитов были переопределены и что в точности было изменено.}}<br />
<br />
=== Подсветка синтаксиса файлов юнитов в Vim ===<br />
<br />
подсветка синтаксиса файлов юнитов для systemd в редакторе [[Vim]] может быть осуществлена путем установки пакета {{AUR|vim-systemd}} из [[Arch User Repository|AUR]].<br />
<br />
== Уровни запуска/цели ==<br />
<br />
Уровни запуска (по-английски уровень запуска - runlevel) для systemd являются устаревшей концепцией. Systemd использует ''цели'' (англ. target), которые выполняют ту же задачу, что и уровни запуска, но действуют немного по-другому. Каждая ''цель'' поименована (т.е. имеет собственное имя, а не номер) и, как предполагается, предназначена для конкретных задач; возможно иметь в одно и то же время активными несколько таких целей. Некоторые ''цели'' реализованы так, что наследуют все сервисы других ''целей'' и добавляют к ним свои сервисы. В systemd имеются также ''цели'', которые имитируют общие уровни запуска SystemVinit, поэтому вы можете переключаться между целевыми юнитами с использованием привычной команды {{ic|telinit RUNLEVEL}}. <br />
<br />
=== Получение информации о текущем уровне запуска/цели ===<br />
<br />
При использовании systemd для этого предназначена следующая команда (заменяющая {{ic|runlevel}}):<br />
<br />
$ systemctl list-units --type=target<br />
<br />
=== Создание пользовательской цели ===<br />
<br />
Уровни загрузки, по которым расписаны конкретные задачи на установке дистрибутива Fedora по умолчанию - 0, 1, 3, 5 и 6; есть маппинг 1:1 с помощью конкретной цели systemd. К сожалению, не существует хорошего способа сделать то же самое для определяемых пользователем уровней, таких, как 2 и 4. Использование их предполагает, что вы создаете новый именованный '' целевой юнит''systemd наподобие {{ic|/etc/systemd/system/<your target>}}, который берет за основу один из существующих уровней запуска (взгляните, например, на {{ic|/usr/lib/systemd/system/graphical.target}}), создаете также директорию {{ic|/etc/systemd/system/<your target>.wants}} и затем символические ссылки на те дополнительные сервисы из директории {{ic|/usr/lib/systemd/system/}}, которые вы хотите включить при загрузке.<br />
<br />
== Таблица уровней запуска и их аналогов в Systemd ==<br />
<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! Уровнень запуска SysV !! systemd Target !! Примечание<br />
|-<br />
| 0 || runlevel0.target, poweroff.target || Выключить систему.<br />
|-<br />
| 1, s, single || runlevel1.target, rescue.target || Однопользовательский уровень запуска.<br />
|-<br />
| 2, 4 || runlevel2.target, runlevel4.target, multi-user.target || Уровень запуска, определенный пользователем/специфичный для узла. По умолчанию соответствует уровню запуска 3.<br />
|-<br />
| 3 || runlevel3.target, multi-user.target || Многопользовательский режим без графики. Пользователи, как правило, входят с помощью множества консолей или через сеть.<br />
|-<br />
| 5 || runlevel5.target, graphical.target || Многопользовательский режим с графикой. Обычно эквивалентен запуску всех сервисов уровня 3 и графическому менеджеру входа.<br />
|-<br />
| 6 || runlevel6.target, reboot.target || Перезагрузка.<br />
|-<br />
| emergency || emergency.target || Аварийная оболочка.<br />
|-<br />
|}<br />
<br />
=== Изменение текущей цели ===<br />
<br />
В systemd цели доступны посредством " целевых юнитов". Вы можете изменить их командой:<br />
<br />
# systemctl isolate graphical.target<br />
<br />
Данная команда изменит только лишь текущую цель и не повлияет на следующую загрузку системы. Она соответствует командам наподобие {{ic|telinit 3}} или {{ic|telinit 5}} для Sysvinit.<br />
<br />
=== Изменение цели для загрузки ===<br />
<br />
Стандартная цель - {{ic|default.target}}, которая по умолчанию является псевдонимом юнита {{ic|graphical.target}} (примерно соответствующего прежнему уровню выполнения 5). Для изменения цели при загрузке по умолчанию, добавьте следующий дополнительный [[kernel parameters|параметр ядра]] в вашем загрузчике:<br />
<br />
{{Tip|Расширение {{ic|.target}} можно опустить.}}<br />
<br />
* {{ic|1=systemd.unit=multi-user.target}} (что примерно соответствует прежнему уровню выполнения 3),<br />
* {{ic|1=systemd.unit=rescue.target}} (что примерно соответствует прежнему уровню выполнения 1).<br />
<br />
Другой путь заключается в том, чтобы оставить загрузчик без изменений и изменить целевой юнит по умолчанию - {{ic|default.target}}, что достигается командой {{ic|systemctl}}:<br />
<br />
# systemctl enable multi-user.target<br />
<br />
Эффект от применения данной команды выводится через {{ic|systemctl}}; символическая ссылка на новый целевой юнит по умолчанию создается в директории {{ic|/etc/systemd/system/default.target}}. Это сработает в том случае (и только в том случае), если имеется следующая секция:<br />
<br />
[Install]<br />
Alias=default.target<br />
<br />
в конфигурационном файле целевого юнита. В настоящий момент как {{ic|multi-user.target}}, так и {{ic|graphical.target}} оба имеют данную секцию.<br />
<br />
== Журнал ==<br />
С версии 38 systemd имеет собственную систему ведения логов - журнал (journal). По умолчанию, более не требуется запуск демона syslog. Для чтения логов используйте команду:<br />
<br />
# journalctl<br />
<br />
По умолчанию (когда в конфигурационном файле {{ic|/etc/systemd/journald.conf}} параметр {{ic|Storage&#61;}} имеет значение {{ic|auto}}) журнал записывается в директорию {{ic|/run/systemd/journal}}. Если директория {{ic|/var/log/journal/}} не существует (например, вы или какая-либо программа удалили ее), systemd '''не''' создаст ее автоматически, но вместо этого запишет свои логи в директорию {{ic|/run/systemd/journal}}. Это означает, что логи будут потеряны при перезагрузке.<br />
<br />
=== Фильтрация вывода ===<br />
<br />
{{ic|journalctl}} позволяет фильтровать вывод по особым полям.<br />
<br />
Примеры:<br />
<br />
Показать все сообщения определенной программы:<br />
<br />
# journalctl /usr/lib/systemd/systemd<br />
<br />
Показать все сообщения определенного процесса:<br />
<br />
# journalctl _PID=1<br />
<br />
Показать все сообщения определенного юнита:<br />
<br />
# journalctl -u netcfg<br />
<br />
Обратитесь к {{ic|man journalctl}} и {{ic|systemd.journal-fields}} для получения детальной информации.<br />
<br />
=== Ограничение размера журнала ===<br />
<br />
Если журнал сохраняется при перезагрузке, размер его по умолчанию ограничен значением в 10% от объема соответствующей файловой системы. Например, для директории {{ic|/var/log/journal}}, расположенной на корневом разделе в 50 Гбайт, максимальный размер журналируемых данных составит до 5 Гбайт. Максимальный объем постоянного журнала можно контролировать при помощи значения {{ic|SystemMaxUse}} в конфигурационном файле {{ic|/etc/systemd/journald.conf}}, поэтому для ограничения его объемом в 50 Mбайт раскомментируйте и отредактируйте соответствующую строку:<br />
<br />
SystemMaxUse=50M<br />
<br />
Обратитесь к {{ic|man journald.conf}} для получения дальнейшей информации.<br />
<br />
=== Journald в связке с классическим демоном syslog ===<br />
<br />
Совместимость с классической реализацией syslog обеспечивается сокетом {{ic|/run/systemd/journal/syslog}}, в который перенаправляются все сообщения. Чтобы дать возможность демону syslog работать вместе с журналом systemd, следует привязать данный демон к указанному сокету вместо {{ic|/dev/log}} ([http://lwn.net/Articles/474968/ официальное сообщение]). Пакетом {{pkg|syslog-ng}} в репозиториях автоматически предоставляется необходимая конфигурация.<br />
<br />
# systemctl enable syslog-ng<br />
<br />
== Запуск окружения рабочего стола из systemd ==<br />
<br />
Чтобы включить графический вход в систему, запустите выбранный вами демон [[Display Manager (Русский)|экранного менеджера]] (например, [[KDM]]). В настоящий момент доступны сервис-файлы для [[GDM]], [[KDM]], [[SLiM]], [[XDM]], [[LXDM]] и [[LightDM]].<br />
<br />
# systemctl enable kdm<br />
<br />
Эта команда должна работать "из коробки". Если вдруг она не сработала, то, возможно, у вас {{ic|default.target}} установлен вручную или остался с прежней установки:<br />
<br />
{{hc|# ls -l /etc/systemd/system/default.target|<br />
/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target}}<br />
<br />
Просто удалите символическую ссылку и systemd будет использовать целевой юнит по умолчанию - {{ic|default.target}} (т.е. {{ic|graphical.target}}).<br />
<br />
# rm /etc/systemd/system/default.target<br />
<br />
=== Использование systemd-logind ===<br />
<br />
{{Note|С 30.10.2012 [[ConsoleKit]] был [http://archlinux.org.ru/node/352/ заменен на systemd-logind] как механизм входа в окружение рабочего стола по умолчанию.}}<br />
<br />
Для того, чтобы проверить статус вашей пользовательской сессии, вы можете использовать команду {{ic|loginctl}}. Все действия [[PolicyKit]] наподобие перевода системы в спящий режим или монтирования внешних носителей с помощью [[Udisks]] должны работать автоматически.<br />
<br />
$ loginctl show-session $XDG_SESSION_ID<br />
<br />
== Сеть ==<br />
<br />
{{Merge|Configuring Network (Русский)|Данный раздел в английской версии включен в состав статьи [[Configuring Network]]; в русской версии временно оставлен из-за того, что русский вариант [[Configuring Network (Русский)]] устарел в сравнении с английским.}}<br />
<br />
=== Динамическое подключение (DHCP) с использованием dhcpcd ===<br />
<br />
Если хотите использовать только DHCP для своего соединения Ethernet, вы можете воспользоваться сервисом {{ic|dhcpcd@.service}} (который поставляется пакетом {{Pkg|dhcpcd}}).<br />
<br />
Чтобы подключить DHCP для {{ic|eth0}}, просто выполните команду:<br />
<br />
# systemctl start dhcpcd@eth0.service<br />
<br />
Вы можете включить этот сервис, и он будет автоматически запускаться при загрузке. Это делается командой:<br />
<br />
# systemctl enable dhcpcd@eth0.service<br />
<br />
Иногда сервис dhcpd запускается до загрузки модуля вашей сетевой карты ({{bug|30235}}), в этом случае вручную добавьте вашу сетевую карту в конфигурационный файл {{ic|/etc/modules-load.d/*.conf}}. Например, для карты Realtek необходима загрузка модуля {{ic|r8169}}, поэтому создайте такой конфигурационный файл:<br />
<br />
{{hc|/etc/modules-load.d/realtek.conf|2=<br />
r8169}}<br />
<br />
=== Другие конфигурации ===<br />
<br />
Для статического подключения, беспроводной сети или сложной конфигурации сети наподобие сетевого моста, вы можете использовать [[Netcfg#systemd_support|netcfg]] или [[NetworkManager#Enable_NetworkManager_under_Native_systemd_system|NetworkManager]], для обоих этих инструментов управления сетью имеются сервис-файлы для systemd.<br />
<br />
{{Note|Если вы хотите использовать netcfg, NetworkManager или другие программы управления сетью, вам не надо в этом случае запускать или включать сервис dhcpcd как показано в предыдущем параграфе.}}<br />
<br />
== Оптимизация ==<br />
<br />
=== Анализ процесса загрузки ===<br />
<br />
==== Использование systemd-analyze ====<br />
<br />
Systemd предоставляет инструмент под названием {{ic|systemd-analyze}}, позволяющий проанализировать процесс загрузки вашей системы, чтобы можно было увидеть, какие файлы юнитов тормозят загрузку. Соответственно, вы можете оптимизировать вашу систему. Для использования данного инструмента вам потребуется установить пакеты {{Pkg|python2-dbus}} и {{Pkg|python2-cairo}}.<br />
<br />
Чтобы увидеть, сколько времени было потрачено на подготовку пространства ядра и пространства пользователя во время загрузки, просто выполните команду:<br />
<br />
$ systemd-analyze<br />
<br />
{{Tip|Чтобы увидеть, сколько времени ушло на загрузку образа initramfs, добавьте хук {{ic|timestamp}} в ваш массив {{ic|HOOKS}} из конфигурационного файла {{ic|/etc/[[mkinitcpio]].conf}} и от суперпользователя root пересоберите ваш образ initramfs командой {{ic|mkinitcpio -p linux}} }}<br />
<br />
Чтобы увидеть список запускаемых файлов юнитов, отсортированный по потраченному каждым из них на загрузку времени, выполните команду:<br />
<br />
$ systemd-analyze blame<br />
<br />
Вы также можете создать файл SVG, показывающий процесс загрузки в графическом виде, наподобие [[Bootchart]]:<br />
<br />
$ systemd-analyze plot > plot.svg<br />
<br />
==== Использование bootchart ====<br />
<br />
Вы можете использовать версию bootchart для визуализации последовательности при загрузке системы.<br />
Из-за невозможности использовать стандартные установки bootchart (так как нельзя добавить в командную строку ядра вторую запись init), вам придется воспользоваться пакетом {{AUR|bootchart2}} из [[AUR]], поставляемым с недокументированным сервисом systemd. После установки bootchart2 выполните команду:<br />
<br />
# systemctl enable bootchart<br />
<br />
Обратитесь к [https://github.com/mmeeks/bootchart документации bootchart (англ.)] за дальнейшей и детализированной информацией об использовании данной версии bootchart.<br />
<br />
=== Включение readahead ===<br />
<br />
systemd поставляется со свой реализации технологии readahead, что в принципе должно усовершенствовать процесс загрузки системы. Однако, в зависимости от версии вашего ядра и типа жесткого диска, скорость обращения к данным может разниться (например, может быть медленнее). Чтобы включить данный сервис, выполните:<br />
<br />
# systemctl enable systemd-readahead-collect systemd-readahead-replay<br />
<br />
Не забудьте, что волшебство технологии readahead подействует только после нескольких перезапусков системы<br />
<br />
=== Принудительный ранний старт сервисов ===<br />
<br />
Одним из центральных элементов systemd является [[D-Bus]] и активация сокетов, что требует запуска сервисов при первой потребности в них. Обычно такой подход является удачным, но, если вы знаете, что какой-то сервис (вроде [[UPower]]) должен всегда запускаться во время загрузки системы, то вы можете сократить общее время загрузки, запуская его так рано, как это вообще возможно. Этого можно добиться (если сервис-файл устроен соответствующим образом, что верно в большинстве случаев) путем выполнения команды:<br />
<br />
# systemctl enable upower<br />
<br />
Это заставит systemd запустить UPower так рано, как это возможно, не устраивая перегонки данного сервиса с активацией сокета или D-Bus.<br />
<br />
=== Уменьшение вывода во время загрузки ===<br />
<br />
Измените параметр {{ic|verbose}} на {{ic|quiet}} в строке загрузки ядра вашего загрузчика. Для некоторых систем, в частности с SSD, узким местом является низкая производительность TTY, поэтому уменьшение вывода информации означает прирост скорости загрузки.<br />
<br />
=== Создание сокращений командной оболочки ===<br />
<br />
Демон управления systemd требует ввода достаточно большого объема текста команд для выполнения таких процессов, как запуск, останов, включение, проверка статуса сервисов и т.д. Добавление в ваш конфигурационный файл {{ic|~/.bashrc}} следующих функций поможет уппростить взаимодействие с systemd и усовершенствовать опыт ее использования.<br />
<br />
{{bc|# упростим команду systemd, например, "sudo systemctl stop xxx" - > "0.stop xxx"<br />
if ! systemd-notify --booted;<br />
then # for not systemd<br />
0.start() {<br />
sudo rc.d start $@<br />
}<br />
<br />
0.restart() {<br />
sudo rc.d restart $@<br />
}<br />
<br />
0.stop() {<br />
sudo rc.d stop $@<br />
}<br />
else<br />
# запустить сервис systemd<br />
0.start() {<br />
sudo systemctl start $@<br />
}<br />
# перезапустить сервис systemd<br />
0.restart() {<br />
sudo systemctl restart $@<br />
}<br />
# stop systemd service<br />
0.stop() {<br />
sudo systemctl stop $@<br />
}<br />
# включить сервис systemd<br />
0.enable() {<br />
sudo systemctl enable $@<br />
}<br />
# выключить сервис systemd<br />
0.disable() {<br />
sudo systemctl disable $@<br />
}<br />
# показать статус сервиса<br />
0.status() {<br />
systemctl status $@<br />
}<br />
# прерзагрузить конфигурацию сервиса<br />
0.reload() {<br />
sudo systemctl reload $@<br />
}<br />
# показать все запущенные сервисы<br />
0.list() {<br />
systemctl<br />
}<br />
# показать все сервисы, запуск которых завершился неудачей<br />
0.failed () {<br />
systemctl --failed<br />
}<br />
# показать все доступные файлы юнитов<br />
0.list-files() {<br />
systemctl list-unit-files<br />
}<br />
# проверить лог<br />
0.log() {<br />
sudo journalctl<br />
}<br />
# показать необязательные зависимости<br />
0.wants() {<br />
systemctl show -p "Wants" $1.target<br />
}<br />
# анализ системы<br />
0.analyze() {<br />
systemd-analyze $@<br />
}<br />
fi<br />
}}<br />
<br />
{{Warning|Скопируйте в свой {{ic|~/.bashrc}} [[Systemd#Creating_shell_shortcuts|английскую версию]] данных сокращений, чтобы избежать проблем с командной оболочкой. }}<br />
<br />
== Устранение неполадок ==<br />
<br />
=== Выключение/перезагрузка происходят ужасно долго ===<br />
<br />
Если процесс выключения занимает очень долгое время (или, по-видимому, зависает), то, вероятно, виноват сервис, который не завершает свою работу. systemd ожидает некоторое время, пока каждый сервис завершит свою работу самостоятельно, и только потом пытается принудительно завершить (kill) его. Если вы столкнулись с такой проблемой, обратитесь к [http://freedesktop.org/wiki/Software/systemd/Debugging#Shutdown_Completes_Eventually данной статье (англ.)].<br />
<br />
== Полезные ссылки ==<br />
<br />
*[http://www.freedesktop.org/wiki/Software/systemd Официальный веб-сайт (англ.)]<br />
*[http://0pointer.de/public/systemd-man/ Страницы руководств (англ.)]<br />
*[http://freedesktop.org/wiki/Software/systemd/Optimizations systemd Optimizations (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions FAQ (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks Tips And Tricks (англ.)]<br />
*[http://0pointer.de/public/systemd-ebook-psankar.pdf systemd для администраторов (PDF) - перевод цикла статей Леннарта Поттеринга (Lennart Poettering) ]<br />
*[http://0pointer.de/blog/projects/systemd.html Блог Lennart'а (англ.)]<br />
*[http://archlinux.org.ru/forum/viewtopic.php?f=9&t=9581 systemd mini FAQ]<br />
*[http://fedoraproject.org/wiki/Systemd Fedora Linux Wiki: Systemd (англ.)]<br />
*[http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet Fedora's SysVinit to systemd cheatsheet (англ.)]<br />
*[http://wiki.russianfedora.ru/index.php/Systemd systemd - база знаний проекта Fedora]<br />
*[http://wiki.debian.org/ru/Systemd Debian Wiki: systemd - менеджер системы и сервисов]<br />
*[http://wiki.ubuntu.com/systemd Ubuntu Wiki: systemd (англ.)]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=234095Systemd (Русский)2012-11-06T17:54:07Z<p>Vladislav.tyulbashev: /* Имя компьютера (hostname) */</p>
<hr />
<div>[[Category:Русский]]<br />
[[en:systemd]]<br />
[[es:systemd]]<br />
[[fr:systemd]]<br />
[[it:systemd]]<br />
[[zh-CN:systemd]]<br />
{{Article summary start|Сводка}}<br />
{{Article summary text|Статья охватывает установку и настройку systemd.}}<br />
{{Article summary heading|Связанные статьи}}<br />
{{Article summary wiki|Systemd/Services}}<br />
{{Article summary wiki|Systemd FAQ}}<br />
{{Article summary wiki|Init Rosetta (Русский)}}<br />
{{Article summary wiki|Udev (Русский)}}<br />
{{Article summary end}}<br />
Цитата с [http://freedesktop.org/wiki/Software/systemd веб-страницы проекта]:<br />
<br />
''"'''systemd''' - система [инициализации] и менеджер служб для Linux, совместимые со скриптами инициализации SysV и LSB. '''systemd''' обеспечивает возможности агрессивной параллелизации, использует сокеты и активацию [[D-Bus]] для запускаемых служб, предлагает запуск демонов по необходимости, отслеживает процессы при помощи [[cgroups|контрольных групп]] Linux, поддерживает мгновенные снимки и восстановление состояния системы, монтирование и точки монтирования, а также внедряет основанную на зависимостях логику контроля процессов сложных транзакций. Эта система может выступать заменой [[SysVinit|sysvinit]]."''.<br />
<br />
{{Note|1=За детальным объяснением причин происходящего перехода Arch'а на systemd обратитесь к [https://bbs.archlinux.org/viewtopic.php?pid&#61;1149530#p1149530 сообщению на англоязычном форуме].}}<br />
<br />
Смотрите также [[Wikipedia:Systemd|статью в Википедии]].<br />
== Что надо усвоить до начала миграции на данную систему ==<br />
<br />
* Настоятельно рекомендуется перейти на новую конфигурацию '''initscripts''', описанную в статье [[rc.conf (Русский)|rc.conf]]. Сконфигурировав таким образом свою систему, вы проделаете бóльшую часть работы, необходимую для миграции на systemd.<br />
* Почитайте про systemd на [http://freedesktop.org/wiki/Software/systemd/ сайте разработчиков].<br />
* Обратите внимание, что systemd имеет собственный '''журнал (journal)''', заменяющий '''syslog''', хотя оба варианта ведения логов могут сосуществовать. Обратитесь к приведенному ниже [[#Журнал|разделу, посвященному журналу]].<br />
* Хотя systemd вполне способна заменить определенную функциональность таких демонов, как '''cron''', '''acpid''' или '''xinetd''', но если вы не хотите, можете не отказываться от использования традиционных демонов.<br />
<br />
== Установка ==<br />
Systemd может быть установлен параллельно со стандартным пакетом инициализации {{Pkg|initscripts}}, и между ними можно будет переключаться путем добавления/удаления [[kernel parameters|параметров ядра]] {{ic|1=init=/usr/lib/systemd/systemd}}. <br />
<br />
=== Смешанная установка systemd/SysVinit/initscripts ===<br />
<br />
Возможно иметь в своей системе одновременно установленными systemd и SysVinit и использовать одни и те же конфигурационные файлы, что позволит вам свободно переключаться между ними туда и обратно:<br />
<br />
# Откажитесь от устаревшего формата конфигурации initscripts (о них сообщается при загрузке системы) в пользу [[#Родные системные файлы в systemd|родных системных файлов systemd]] и перезагрузитесь для проверки работоспособности initscripts.<br />
# Установите пакет {{Pkg|systemd}} из [[Official Repositories (Русский)|официальных репозиториев]].<br />
# Добавьте запись {{ic|1=init=/usr/lib/systemd/systemd}} к [[Kernel parameters|параметрам ядра]] в вашем загрузчике.<br />
# Перезагрузите систему.<br />
<br />
Systemd запустит демоны, перечисленные в {{ic|/etc/rc.conf}}, выполнит {{ic|/etc/rc.local}} и {{ic|/etc/rc.local.shutdown}} соответственно при загрузке/выключении системы (смотрите ниже раздел [[#Эмуляция initscripts]]). Если поддержка совместимости с массивом {{ic|DAEMONS}} в конфигурационном файле {{ic|rc.conf}} или же скриптов в {{ic|rc.local}} вам не нужна, соответствующие сервис-файлы могут быть заблокированы (замаскированы) для их отключения.<br />
<br />
Если вы ранее входили в систему посредством экранного менеджера (SLiM, GDM и т.п.) с использованием {{ic|/etc/inittab}}, то таким образом экранный менеджер более не запустится, поскольку systemd не использует {{ic|inittab}}. Вики-страница, посвященная [[Login_Manager|экранному менеджеру (англ.)]] содержит информацию о том, как вам следует запустить его в качестве сервиса a systemd.<br />
<br />
{{Warning|В случае, когда у вас в массиве {{ic|DAEMONS}} перечислены демоны, для которых имеются родные сервис-файлы systemd, автоматически будут использоваться родные сервис-файлы. Тем не менее, если имена скриптов rc и сервисов systemd (так далее будут именоваться службы данной системы инициализации) не соответствуют друг другу, данное правило не сработает и вам следует убедиться, что только включен только один из них двух (предпочтительно родной сервис-файл).}}<br />
<br />
{{Warning|Systemd - процесс асинхронной загрузки по сравнению сравнении с последовательным запуском демонов из массива {{ic|DAEMONS}}. В частности, {{ic|network}}, будучи поддерживаемым для совместимости сервисом, может запуститься слишком поздно для включения интерфейсов, которые требуются другим сервисам. Рекомендуется переключиться на использование [[netcfg]] или [[NetworkManager]] до перехода на systemd.}}<br />
<br />
=== Смешанная установка systemd/initscripts ===<br />
<br />
Возможно заменить SysVinit на systemd, но сохранить initscripts в случае использования некоторых скриптов rc scripts, для которых пока не имеется эквивалентов в systemd (смотрите ниже раздел [[#Эмуляция_initscripts|Эмуляция initscript]]).<br />
<br />
# Следуйте инструкциям для смешанной установки systemd/sysvinit/initscripts.<br />
# [[#Использование_юнитов|Включите демоны]], ранее перечисленные в {{ic|/etc/rc.conf}} с помощью команды {{ic|systemctl enable ''daemonname''}}. Для переноса демонов из {{ic|/etc/rc.conf}} в разряд сервисов systemd, смотрите разделы: [[Daemons List|Список демонов (англ.)]] и [[Systemd/Services|Сервисы (англ.)]]. Демоны, для которых не имеется соответствующих сервис-файлов systemd, следует оставить в массиве {{ic|DAEMONS}}, поскольку systemd запустит устаревшие скрипты rc.<br />
# Установите пакет {{Pkg|systemd-sysvcompat}}. Данный пакет конфликтует с {{Pkg|sysvinit}} и вам будет предложено удалить последний.<br />
# Удалите запись {{ic|1=init=...}}, поскольку {{ic|/sbin/init}} теперь является символической ссылкой на systemd.<br />
# Перезагрузите систему.<br />
<br />
Единственная разница между этим вариантом и вариантом с сохранением SysVinit состоит в том, что все бинарные файлы SysVinit заменены символическими ссылками на systemctl. Тем не менее, функциональность должна остаться неизменной.<br />
<br />
=== Чистая установка systemd ===<br />
<br />
В конце концов, возможно вовсе удалить пакеты {{pkg|initscripts}} и {{pkg|sysvinit}} и использовать только лишь systemd.<br />
<br />
# Следуйте инструкциям для смешанной установки systemd/initscripts.<br />
# Убедитесь, что более не имеется каких-либо демонов для запуска из массива {{ic|DAEMONS}} в конфигурационном файле {{ic|/etc/rc.conf}} и оба файла {{ic|/etc/rc.local}} и {{ic|/etc/rc.local.shutdown}} пусты.Чтобы вопрооизвести поведение системы пкак ранее при использовании {{ic|/etc/rc.local}} в случае использования systemd, обратиттесь к разделу [[#Эмуляция /etc/rc.local]].<br />
# Удалите пакет {{pkg|initscripts}} из вашей системы.<br />
<br />
{{Warning|'''Не''' удаляйте {{pkg|systemd-sysvcompat}}, поскольку этот пакет входит в группу {{grp|base}}.}}<br />
<br />
=== Дополнительная информация ===<br />
<br />
{{Note|Теперь добавлять вашего пользователя в [[Users and Groups|группы]] ({{ic|optical}}, {{ic|audio}}, {{ic|scanner}}, ...) в большинстве случаев '''нет''' необходимости при использовании systemd. Это даже может нарушить работоспособность системы.}}<br />
{{Tip|Если в параметрах ядра имеется значение {{ic|quiet}}, вероятно, вам стоит удалить его для нескольких первых загрузок systemd, чтобы видеть возникающие во время загрузке проблемы.}}<br />
<br />
Например, добавление в группу audio может привести к невозможности быстрого переключения между пользователями и позволит приложениям заблокировать программное микширование. Каждый вход PAM предоставляет сессию login, которое дает вам разрешения для местной сессии посредством [[Wikipedia:Access control list|POSIX ACLs]] на аудио/видео устройства и позволяет выполнять некоторые операции, такие, как как монтирование съемных носителей через [[udisks]]. <br />
<br />
{{Note|Systemd-logind заменил [[ConsoleKit]], удаленный из репозиториев, поэтому для полной функциональности теперь система должна загружаться с использованием systemd. Смотрите [http://archlinux.org.ru/node/352/ новость] для получения дальнейшей информации.}<br />
<br />
Ранее ConsoleKit обеспечивал подобные разрешения для устройств на основе ACL и разрешения polkit для локальных сессий.}}<br />
<br />
== Родные системные файлы ==<br />
<br />
{{Note|Возможно, вам придется создать эти файлы. Установите для всех файлов права доступа 644 и владельца root:root.}}<br />
<br />
=== Имя компьютера (hostname) ===<br />
<br />
Имя компьютера настраивается в файле {{ic|/etc/hostname}}. Этот файл не должен содержать системный домен (если таковой имеется). Для установки имени компьютера выполните:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
Обратитесь к руководствам {{ic|man 5 hostname}} и {{ic|man hostnamectl}} для получения более подробной информации.<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/hostname|<br />
myhostname<br />
}}<br />
<br />
=== Локаль ===<br />
<br />
Системная локаль по умолчанию настраивается в конфигурационном файле {{ic|/etc/locale.conf}}. Для установки локали по умолчанию выполните:<br />
<br />
# localectl set-locale LANG="ru_RU.UTF-8"<br />
<br />
{{Note|Перед установкой локали по умолчанию вам сперва необходимо сделать локали доступными системе, раскомментировав их в файле {{ic|/etc/locale.gen}} и затем выполнив команду {{ic|locale-gen}} от суперпользователя root. Локаль, установленная командой {{ic|localectl}}, должна быть одной из '''раскомментированных''' локалей в файле {{ic|/etc/locale.gen}}.}}<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 locale.conf}}.<br />
* Дальнейшая информация содержится в статье [[Locale]].<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/locale.conf|2=<br />
LANG=ru_RU.utf8}}<br />
<br />
=== Консоль и раскладка клавиатуры ===<br />
<br />
Файл {{ic|/etc/vconsole.conf}} устанавливает настройки виртуальной консоли (раскладку клавиатуры и консольный шрифт).<br />
<br />
{{hc|/etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
FONT_MAP=}}<br />
<br />
{{Note|С версии {{Pkg|systemd}}-194 используются шрифт ядра и раскладку по умолчанию (т.е. американскую английскую). Нет более необходимости (для тех, кто использует американскую английскую раскладку) настраивать в конфигурационном файле строки {{ic|1=KEYMAP=}} и {{ic|1=FONT=}}, их можно оставить пустыми.}}<br />
<br />
Другой способ настройки раскладки клавиатуры в консоли состоит в использовании команды:<br />
<br />
# localectl set-keymap ru<br />
<br />
Преимущество такого подхода - в том, что он также установит указанную раскладку клавиатуры и для X11.<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 vconsole.conf}}.<br />
* Для получения детальной информации обратитесь к разделам [[Fonts#Console_fonts|консольные шрифты (англ.)]] и [[KEYMAP|раскладка клавиатуры (англ.)]].<br />
<br />
=== Временная зона ===<br />
<br />
Временная зона настраивается путем создания соответствующей символической ссылки {{ic|/etc/localtime}} на файл временной зоны в директории {{ic|/usr/share/zoneinfo/}}. Чтобы сделать это автоматически, выполните команду:<br />
<br />
# timedatectl set-timezone Europe/Moscow<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 timedatectl}} и {{ic|man 5 localtime}}.<br />
<br />
{{Note|Прежний конфигурационный файл {{ic|/etc/timezone}} объявлен устаревшим с выходом {{pkg|systemd}}-190 и должен быть удален.}}<br />
<br />
Альтернативный метод - создание символической ссылки вручную:<br />
<br />
# ln -s ../usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
=== Аппаратные часы ===<br />
<br />
Systemd будет использовать UTC для аппаратных часов по умолчанию.<br />
{{Tip|Обычно рекомендуется запускать [[NTP|демон Network Time Protocol]] для поддержания синхронизации аппаратных часов с системным временем.}}<br />
<br />
==== Аппаратные часы по localtime ====<br />
<br />
Если вы собираетесь выставить аппаратные часы по localtime (местному времени, что '''КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕТСЯ'''), выполните команду:<br />
<br />
# timedatectl set-local-rtc true<br />
<br />
Если же захотите вернуть ваши аппаратные часы к использованию временного формата UTC, выполните:<br />
<br />
# timedatectl set-local-rtc false<br />
<br />
Помните, что настройка перехода на зимнее/летнее время - неблагодарное занятие. Если переход на зимнее/летнее время происходит в тот момент, когда ваш компьютер выключен, то при следующей загрузке ваши часы будут показывать ошибочное время ([http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html здесь об этом чуть подробнее (англ.)]). Последние версии ядра устанавливают системное время из RTC (часов реального времени) непосредственно во время загрузки без использования {{ic|hwclock}}, при этом ядро всегда считает, что RTC выставлено по UTC. Это означает, что если RTC выставлено по местному времени (local time), системное время будет изначально установлено ошибочно и затем корректироваться вскоре после этого при каждой загрузке. Это является причиной некоторых досадных багов (идущие назад часы редко являются нужной вещью).<br />
<br />
Причиной, позволяющей RTC быть выставленными по местному времени, является двойная загрузка системы с Windows, ([http://blogs.msdn.com/b/oldnewthing/archive/2004/09/02/224672.aspx которая использует localtime (англ.)]). Windows воспринимает RTC, выставленные по UTC при помощи простого [[Time#UTC_in_Windows|исправления реестра]]. Если вы столкнетесь с подобными проблемами при двойной загрузке с Windows, вы можете установить аппаратные часы на использование местного времени.<br />
<br />
* За дальнейшей информацией обратитесь к статье [[Time]].<br />
<br />
=== Подгружаемые модули ядра ===<br />
<br />
Сегодня все необходимые модули для загрузки подгружаются автоматически с помощью [[Udev]], так что, если вам не надо (или же вы не должны) использовать какой-нибудь модуль не из дерева ядра , нет необходимости дополнительно помещать какие-либо модули в какой-то файл конфигурации загрузки. Тем не менее, бывают случаи, когда вы можете подгрузить дополнительный модуль в процессе загрузки или поместить какой-то модуль в черный список, чтобы ваш компьютер работал правильно.<br />
<br />
==== Дополнительно подгружаемые при загрузке модули ====<br />
<br />
Необходимые для загрузки дополнительные модули оформляются в статический список файлов в директории {{ic|/etc/modules-load.d/}}. Каждый из конфигурационных файлов имеет наименование вида {{ic|/etc/modules-load.d/<program>.conf}} (где <program> - имя подгружаемого модуля) и содержит список имен подгружаемых модулей ядра, каждое из которых начинается с новой строки. При этом игнорируются как пустые строки конфигурационных файлов, так и строки, у которых первым символом, отличным о пробела, является символ {{ic|#}} и {{ic|;}}. Например:<br />
<br />
{{hc|/etc/modules-load.d/virtio-net.conf|<br />
# Load virtio-net.ko at boot<br />
virtio-net}}<br />
<br />
Более подробная информация содержится в руководстве {{ic|man 5 modules-load.d}}.<br />
<br />
==== Черный список ====<br />
<br />
Добавление модулей в черный список работает также, как и в случае с {{Pkg|initscripts}}, поскольку в действительности эта функция выполняется таким инструментом, как {{Pkg|kmod}}. Обратитесь к разделу [[Kernel_modules#Blacklisting|Module Blacklisting]] за более подробной информацией.<br />
<br />
=== Монтирование файловых систем ===<br />
<br />
Установка по умолчанию автоматически проверяет файловые системы командой fsck и монтирует файловые системы перед запуском тех сервисов, котрым необходимо иметь эти системы примонтированными. Например, systemd позволяет в автоматическом режиме добиться, что удаленные файловые системы наподобие [[NFS]] и [[Samba]] подключаются после поднятия сети. Поэтому монтирование как локальных, так и удаленных файловых систем, прописанных в {{ic|/etc/fstab}} должно работать "из коробки".<br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.mount}} для получения более подробной информации.<br />
<br />
==== Автомонтирование ====<br />
<br />
* Если ваш раздел {{ic|/home}} занимает большой объем, лучшим вариантом было бы позволить сервисам не зависеть от подключения {{ic|/home}} и запускать данные сервисы, когда {{ic|/home}} еще подвергается проверке при загрузке системы. Добиться такого результата можно добавлением следующих параметров в запись файла fstab, касающуюся раздела {{ic|/home}}:<br />
<br />
noauto,x-systemd.automount<br />
<br />
Такие параметры вызовут команду fsck и примонтируют {{ic|/home}} при первом обращении к данному разделу, и ядро будет буферизовать все файлы доступа к {{ic|/home}} до готовности данного раздела.<br />
<br />
* То же самое применимо и к удаленным файловым системам. Если вы хотите, чтобы монтирование данных систем происходило только по мере доступа к ним, вы можете использовать параметр {{ic|1=x-systemd.device-timeout=#}} в файле {{ic|/etc/fstab}} для определения таймаута в том случае, кода сетевые ресурсы оказываются недоступны.<br />
<br />
* В случае использования зашифрованных файловых систем с ключами доступа, вам также Iследует добавить параметр {{ic|noauto}} в соответствующие записи файла {{ic|/etc/crypttab}}. systemd не будет подключать зашифрованные устройства при загрузке, но, вместо этого, дождется реального обращения к ним и автоматически откроет к ним доступ с использованием определенных ключей перед тем, как они будут примонтированы. Это сэкономит несколько секунд при загрузке системы, например, в случае использования зашифрованного устройства RAID, потому что systemd не будет дожидаться от устройства, когда оно станет доступным. Например:<br />
<br />
{{hc|/etc/crypttab|<br />
data /dev/md0 /root/key noauto}}<br />
<br />
=== LVM ===<br />
<br />
Если у вас имеются тома LVM, не активированные посредством [[Mkinitcpio|initramfs]], включите сервис {{ic|lvm.service}} (предоставляемый пакетом {{pkg|lvm2}}):<br />
<br />
# systemctl enable lvm<br />
<br />
Точно так же, если у вас LVM на устройствах с шифрованием, монтируемым позже в процессе загрузки (например, из {{ic|/etc/crypttab}}), вам необходимо включить сервис {{ic|lvm-on-crypt.service}} (также предоставляемый пакетом {{pkg|lvm2}}):<br />
<br />
# systemctl enable lvm-on-crypt<br />
<br />
=== Управлением питанием ACPI ===<br />
<br />
Systemd обрабатывает некоторые события, связанные с ACPI, что настраивается при помощи параметров в конфигурационном файле {{ic|/etc/systemd/logind.conf}}:<br />
<br />
* {{ic|HandlePowerKey}}: определяет действия системы при нажатии кнопки питания (вкл./выкл.).<br />
* {{ic|HandleSuspendKey}}: определяет действия системы при нажатии кнопки спящего режима.<br />
* {{ic|HandleHibernateKey}}: определяет действия системы при нажатии кнопки ждущего режимаs.<br />
* {{ic|HandleLidSwitch}}: определяет действия системы при закрытии крышки компьютера.<br />
<br />
Для соответствующих действий могут использоваться значения {{ic|ignore}} (пропустить), {{ic|poweroff}} (отключить питание), {{ic|reboot}} (перезагрузить), {{ic|halt}} (выключить), {{ic|suspend}} (включить спящий режим), {{ic|hibernate}} (включить ждущий режим) или {{ic|kexec}} (системный вызов позволяющий оперативно переключиться в другое ядро).<br />
<br />
Если данные параметры не определены, по умолчанию systemd будет использовать следующие: {{ic|1=HandlePowerKey=poweroff}}, {{ic|1=HandleSuspendKey=suspend}}, {{ic|1=HandleHibernateKey=hibernate}}, и {{ic|1=HandleLidSwitch=suspend}}.<br />
<br />
В системах без графического интерфейса или использующих простые оконные менеджеры наподобие like [[i3]] или [[awesome]], так можно заменить демон [[acpid]], который обычно используется для реагирования на данные события ACPI.<br />
<br />
В текущей версии systemd параметры {{ic|Handle}} будут применены ко всей системе, если только они не "подавляются (временно отключены) другой программой, такой, как менеджер питания данного окружения рабочего стола. Если эти ограничений нет, вы можете столкнуться с ситуацией, когда systemd приводит вашу систему в спящий режим, а затем, когда система пробуждается менеджером управлением питания, снова "усыпляет" ее.<br />
<br />
{{Warning|В настоящее время менеджер управления питанием новейшей версии в [[KDE]] является единственным, который использует такие команды "подавления". До тех пор, пока их не будут применять другие менеджеры, вам надо выставить в параметрах {{ic|Handle}} значение {{ic|ignore}}, если вы хотите, чтобы события ACPI обрабатывались в случае использования [[GNOME]], [[Xfce]], [[acpid]] или других программ. Но на подходе новые версии, которые включат данную функциональность.}}<br />
<br />
{{Note|Systemd также может использовать для перевода системы в спящий/ждущий режим другие движки (такие, как [[Uswsusp]] или [[TuxOnIce]]), в дополнение к движку ''ядра''.}}<br />
<br />
==== Хуки спящего режима ====<br />
<br />
Systemd в своих командах {{ic|systemctl suspend}} или {{ic|systemctl hibernate}} не использует [[pm-utils]] для "усыпления" машины, поэтому хуки [[pm-utils]], включая любые [[Pm-utils#Creating_your_own_hooks|пользовательские хуки]] не будут работать. Тем не менее, systemd предоставляет схожий механизм запуска пользовательских скриптов для данных событий. Systemd запускает все исполняемые файлы в директории {{ic|/usr/lib/systemd/system-sleep/}} и передает каждому из них два аргумента:<br />
<br />
* Аргумент 1: или {{ic|pre}}, или {{ic|post}}, в зависимости от которых машина либо "уснет", либо будет "пробуждена";<br />
* Аргумент 2: или {{ic|suspend}}, или {{ic|hibernate}}, в зависимости от того, что было вызвано.<br />
<br />
В отличие от [[pm-utils]], systemd запустит данные скрипты одновременно, а не один после другого.<br />
<br />
Вывод вашего скрипта будет записан сервисом {{ic|systemd-suspend.service}} или {{ic|systemd-hibernate.service}}, поэтому вы вы можете увидеть данный выход в [[Systemd (Русский)#Журнал systemd|журнале]]:<br />
<br />
# journalctl -b -u systemd-suspend<br />
<br />
Обратите внимание, что вместо использования скриптов вы также можете использовать специальные целевые юниты - {{ic|sleep.target}}, {{ic|suspend.target}} или {{ic|hibernate.target}} для того, чтобы подключить к другим юнитам возможности перехода в спящий режима.<br />
<br />
Пример:<br />
<br />
{{hc|/usr/lib/systemd/system-sleep/example.sh|<br />
#!/bin/sh<br />
case $1/$2 in<br />
pre/*)<br />
echo "Going to $2..."<br />
;;<br />
post/*)<br />
echo "Waking up from $2..."<br />
;;<br />
esac}}<br />
<br />
Обратитесь к руководствам {{ic|man 7 systemd.special}} и {{ic|man 8 systemd-sleep}} для получения дальнейшей информации.<br />
<br />
=== Временные файлы ===<br />
<br />
Systemd-tmpfiles использует конфигурационные файлы в директориях {{ic|/usr/lib/tmpfiles.d/}} и {{ic|/etc/tmpfiles.d/}} для определения действий с временными файлами и директориями (создание, очистка и удаление их), обычно расположенные в {{ic|/run}} or {{ic|/tmp}}. Каждый файл с настройками имеет название вида {{ic|/etc/tmpfiles.d/<program>.conf}}. Данные конфигурационные файлы имеют приоритет по сравнению с любыми файлами с таким же названием, расположенными в директории {{ic|/usr/lib/tmpfiles.d/}}.<br />
<br />
Временные файлы tmpfiles обычно поставляются вместе с сервис-файлами для создания директорийк. которые, как ожидается, будут использоваться определенными демонами. Например, демон [[Samba]] предполагает наличие директории {{ic|/var/run/samba}} с соответствующими правами доступа. В данном случае tmpfile выглядит следующим образом:<br />
<br />
{{hc|/usr/lib/tmpfiles.d/samba.conf|<br />
D /var/run/samba 0755 root root}}<br />
<br />
Тем не менее, tmpfiles также могут использоваться для записи значений в определенные файлы во врем загрузки. К примеру, если вы используете {{ic|/etc/rc.local}} для того, чтобы отключить пробуждение системы USB-устройствами, при помощи команды {{ic|echo USBE > /proc/acpi/wakeup}}, вы можете вместо этого использовать следующий tmpfile:<br />
<br />
{{hc|/etc/tmpfiles.d/disable-usb-wake.conf|<br />
w /proc/acpi/wakeup - - - - USBE}}<br />
<br />
Метод с использованием tmpfiles в данном случае рекомендуется, поскольку systemd в действительности не поддерживает {{ic|/etc/rc.local}}.<br />
<br />
Обратитесь к руководству {{ic|man 5 tmpfiles.d}} за более подробной информацией.<br />
<br />
=== Юнит ===<br />
<br />
Юнит (англ. unit) - конфигурационный файл, содержащий информацию о сервисе (службе), сокете, устройстве, точке монирования/автомонирования, файле подкачке или разделе, определяемом для загрузки уровне запуска, пути в файловой системе или таймере, которые контролируются и управляются при помощи systemd. Синтаксис юнитов навеян спецификацией .desktop-файлов (XDG Desktop Entry Specification), которая, в свою очередь, вдохновлялась .ini-файлами от Microsoft Windows. <br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.unit}} для получения дальнейшей информации.<br />
<br />
== Переход от initscripts к использованию systemd ==<br />
<br />
=== Эмуляция initscripts ===<br />
<br />
Интеграция с классической конфигурацией Arch'а обеспечивается пакетом {{Pkg|initscripts}}. В том случае, если {{Pkg|initscripts}} установлен параллельно с systemd и система загружена с использованием systemd, systemd будет выполнять следующую последовательность действий:<br />
<br />
# # Проводить синтаксический разбор массива {{ic|DAEMONS}} в файле {{ic|/etc/rc.conf}} и запускать при загрузке все находящиеся там демоны (см. ниже)<br />
# Выполнять при загрузке {{ic|/etc/rc.local}}<br />
# Выполнять при завершении работы системы {{ic|/etc/rc.local.shutdown}}<br />
<br />
Эмуляция initscripts рассматривается как просто переходная мера для легкой миграции пользователей на systemd и '''в конечном итоге будет отброшена'''. Система с "родной" systemd не зависит от централизованной конфигурации в {{ic|rc.conf}}, поэтому рекомендуется использовать [[#Родные системные файлы|родные конфигурационные файлы systemd]], которые имеют приоритет над настройками из {{ic|/etc/rc.conf}}.<br />
<br />
{{Note|Если вы отключали использование сочетания клавиш для перезагрузки системы {{keypress|Ctrl+Alt+Del}} в файле {{ic|/etc/inittab}}, теперь вам надо заново сделать это для systemd командой {{ic|systemctl mask ctrl-alt-del.target}}, выполняемой от суперпользователя root.}}<br />
<br />
==== Отказ от массива DAEMONS ====<br />
<br />
Для "чистой" установки systemd, вы можете полностью удалить файл {{ic|/etc/rc.conf}} и включать сервисы только посредством systemd. Для каждого сервиса с именем {{ic|<service_name>}} в массиве {{ic|DAEMONS}} из файла {{ic|/etc/rc.conf}} выполните команду:<br />
<br />
# systemctl enable <service_name><br />
<br />
{{Tip|Для получения списка обычно используемых демонов с их эквивалентами в initscripts и systemd, обратитесь к [[Daemons List|данной таблице]].}}<br />
<br />
Если сервис-файл {{ic|<service_name>.service}} отсутствует:<br />
<br />
* сервис-файл может быть недоступен для systemd. В этом случае вам нужно сохранить конфигурационный файл {{ic|rc.conf}} для запуска этих сервисов во время загрузки системы.<br />
* Systemd может использовать для сервисов другие имена, например, {{ic|cronie.service}} заменяет демон {{ic|crond}}; {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} заменяют демон {{ic|alsa}}. Другой важный пример - демон {{ic|network}}, которого сменил целый набор сервис-файлов (обратитесь к статье [[Configuring Network]] для получения дальнейшей информации.)<br />
<br />
{{Tip|Вы можете заглянуть вовнутрь пакета, содержащего стартовые скрипты демона, чтобы узнать имена его сервис-файла. К примеру:<br />
$ pacman -Ql cronie<br />
[...]<br />
cronie /etc/rc.d/crond #Демон initscript, указываемый в массиве {{ic|DAEMONS}} (не используется при "чистой" настройке systemd)<br />
[...]<br />
cronie /usr/lib/systemd/system/cronie.service #Соответствующий сервис systemd<br />
[...]<br />
}}<br />
<br />
* Наконец, пользователю не нужно включать некоторые сервисы явным образом. Например, {{ic|dbus.service}} будет включен автоматическики при установке {{ic|dbus-core}}. {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} также включены systemd автоматически. Проверьте список доступных сервисов и их состояние при помощи команды {{ic|systemctl}}, например: {{ic|systemctl status <service_name>}} (где <service_name> - имя сервиса).<br />
<br />
=== Сравнительная таблица устаревшей и "родной" конфигураций ===<br />
<br />
{| class="wikitable"<br />
|-<br />
! scope="col"| Настройка<br />
! scope="col"| Конфигурационный файл (файлы)<br />
! scope="col"| Устаревшая секция [https://projects.archlinux.org/initscripts.git/tree/rc.conf?id=97f0cd6751e8d22c14d7492cdc2186cf41157ba6 rc.conf]<br />
|-<br />
| align="center"|Имя компьютера (Hostname)<br />
| align="left"|{{ic|/etc/hostname}}<br />
{{ic|/etc/hosts}}<br />
| align="center"|{{ic|NETWORKING}}<br />
|-<br />
| align="center"|Консоль и раскладка клавиатуры<br />
| align="left"|{{ic|/etc/vconsole.conf}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Локаль<br />
| align="left"|{{ic|/etc/locale.conf}}<br />
{{ic|/etc/locale.gen}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Временная зона<br />
| align="left"|{{ic|/etc/localtime}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Аппаратные часы<br />
| align="left"|{{ic|/etc/adjtime}}<br />
| align="center"|{{ic|LOCALIZATION}}<br />
|-<br />
| align="center"|Модули ядра<br />
| align="left"|{{ic|/etc/modules-load.d/}}<br />
| align="center"|{{ic|HARDWARE}}<br />
|}<br />
<br />
=== Эмуляция /etc/rc.local ===<br />
<br />
Если вы хотите при использовании systemd сохранить простоту {{ic|/etc/rc.local}} , вам нужно создать следующий сервис-файл и включить его. Просто добавьте строки {{ic|1=ExecStart=}} для тех команд, которые вы хотите запустить. Если же вам в данном случае требуется более сложная функциональность (например, циклы с {{ic|for}}), то вы можете создать скрипт Bash и выполнять его из сервис-файла. Удалите {{ic|1=ExecStart=/bin/true}}, если вы здесь действительно добавляете команду.<br />
<br />
{{hc|/etc/systemd/system/rc-local.service|<nowiki><br />
[Unit]<br />
Description=/etc/rc.local compatibility<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/true<br />
RemainAfterExit=yes<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
== Примеры основных команд администрирования ==<br />
<br />
*{{ic|systemctl}}: используется для наблюдения и контроля за состоянием менеджера системы и сервисов systemd.<br />
*{{ic|systemd-cgls}}: рекурсивно показывает содержимое иерархии избранной контрольной группы (cgroup) Linux в виде дерева.<br />
*{{ic|systemadm}}: графическая оболочка для менеджера системы и сервисов systemd , позволяющая наблюдать и контролировать systemd (доступна в виде пакета {{AUR|systemd-ui-git}} из [[AUR]]).<br />
<br />
Обратитесь к страницам руководств для получения дальнейшей информации. <br />
<br />
{{Tip|Вы можете использовать приведенные ниже команды {{ic|systemctl}} с ключом {{ic|-H <user>@<host>}} для того, чтобы контролировать systemd на удаленной машине. В этом случае для соединения с удаленным процессом systemd будет использовать [[SSH]].}}<br />
<br />
=== Анализ состояния системы ===<br />
<br />
Список запущенных юнитов:<br />
<br />
$ systemctl<br />
<br />
или:<br />
<br />
$ systemctl list-units<br />
<br />
Список юнитов, попытка запуска которых завершилась неудачей:<br />
<br />
$ systemctl --failed<br />
<br />
Доступные юниты можно посмотреть в директориях {{ic|/usr/lib/systemd/system/}} и {{ic|/etc/systemd/system/}} (последняя директория имеет приоритет). Вы можете увидеть список установленных юнитов командой:<br />
<br />
$ systemctl list-unit-files<br />
<br />
=== Использование юнитов ===<br />
<br />
Юниты могут быть сервисами ({{ic|.service}}), точками монтирования ({{ic|.mount}}) или сокетами ({{ic|.sockets}}). При использовании команды {{ic|systemctl}} необходимо всегда указывать полное имя файла, включая расширение. Однако, есть несколько сокращений при определении юнита следующими командами{{ic|systemctl}}:<br />
<br />
* Ели вы не указали суффикс, systemctl предполагает, что это {{ic|.service}}. Например, {{ic|netcfg}} и {{ic|netcfg.service}} будут трактоваться одинаково.<br />
* Точки монтирования будут автоматически преобразованы в соответствующий юнит {{ic|.mount}}. Например, указание {{ic|/home}} равнозначно {{ic|home.mount}}.<br />
* Аналогично точкам монтирования, имена устройств автоматически преобразуются в соответствующий юнит {{ic|.device}}, поэтому указание {{ic|/dev/sda2}} полностью соответствует юниту {{ic|dev-sda2.device}}.<br />
<br />
Обратитесь к руководству {{ic|man systemd.unit}} для получения детальной информации.<br />
<br />
{{Note|При использовании юнитов следует обращать внимание на регистр букв в наименовании сервис-файлов: так, необходимо использовать ''NetworkManager.'''service''' '' (запомните употребление в данном названии букв в верхнем регистре) для включения сервиса NetworkManager'а, в противном случае вы получите сообщение об ошибке и сервис во время загрузки системы не запустится.}}<br />
<br />
Незамедлительно запустить юнит:<br />
<br />
# systemctl start <unit><br />
<br />
Незамедлительно остановить юнит:<br />
<br />
# systemctl stop <unit><br />
<br />
Перезапустить юнит:<br />
<br />
# systemctl restart <unit><br />
<br />
Запросить у юнита перезагрузку его настроек:<br />
<br />
# systemctl reload <unit><br />
<br />
Показать статус юнита, а также запущен он или нет:<br />
<br />
$ systemctl status <unit><br />
<br />
Проверить включение юнита (т.е. разрешен ли юниту запуск при загрузке системы):<br />
<br />
$ systemctl is-enabled <unit><br />
<br />
Включить юнит (разрешить юниту запуск при загрузке системы):<br />
<br />
# systemctl enable <unit><br />
<br />
{{Note| Если сервис-файлы не имеют раздела {{ic|Install}}, это обычно означает, что данные сервисы вызываются автоматически другими сервисами. Но если вам требуется установить их вручную, используйте следующую команду, заменив {{ic|foo}} именем вашего сервиса.<br />
# ln -s /usr/lib/systemd/system/''foo''.service /etc/systemd/system/graphical.target.wants/<br />
}}<br />
<br />
Выключить юнит (запретить юниту запуск при загрузке системы):<br />
<br />
# systemctl disable <unit>}}<br />
<br />
Показать страницу помощи для юнита (необходима поддержка этой функции в указанном файле юнита):<br />
<br />
$ systemctl help <unit><br />
<br />
=== Управление питанием ===<br />
<br />
Если у вас локальная пользовательская сессия {{ic|systemd-logind}} и нет других активных сессий, приведенные ниже команды сработают и без привилегий суперпользователя root. В противном случае (например, вследствие того, что пользователь залогинился в tty), systemd автоматически запросит у вас пароль root.<br />
<br />
Завершить работу и перезагрузить систему:<br />
<br />
$ systemctl reboot<br />
<br />
Завершить работу и выключить компьютер (с отключением питания):<br />
<br />
$ systemctl poweroff<br />
<br />
Завершить работу и остановить систему:<br />
<br />
$ systemctl halt<br />
<br />
Перевести систему в спящий режим:<br />
<br />
$ systemctl suspend<br />
<br />
Перевести систему в ждущий режим:<br />
<br />
$ systemctl hibernate<br />
== Написание пользовательского .service файла ==<br />
<br />
=== Обработка зависимостей ===<br />
<br />
В случае использования systemd зависимости могут быть разрешены правильным построением файлов юнитов. ,Наиболее частый случай -- когда юниту {{ic|A}} требуется, чтобы юнит {{ic|B}} был запущен перед тем, как запустится сам юнит {{ic|A}}. В этом случае добавьте строки {{ic|1=Requires=B}} и {{ic|1=After=B}} в секцию {{ic|[Unit]}} сервис-файла юнита {{ic|A}}. Если подобная зависимость не является обязательной, добавьте соответственно взамен указанных выше строки {{ic|1=Wants=B}} и {{ic|1=After=B}}. Обратите внимание, что {{ic|1=Wants=}} и {{ic|1=Requires=}} не подразумевают {{ic|1=After=}}, что означает, что если {{ic|1=After=}} не определено, два юнита будут запущены параллельно друг другу.<br />
<br />
Обычно зависимости указываются в сервис-файлах, а не в целевых юнитах. Например, {{ic|network.target}} потребуется любому сервису, который связан с настройкой ваших сетевых интерфейсов, поэтому в любом случае определите загрузку вашего пользовательского юнита после запуска {{ic|network.target}}.<br />
<br />
=== Тип ===<br />
<br />
Существует несколько различных типов запуска служб, которые надо иметь в виду при написании пользовательского сервис-файла. Тип запуска определяется параметром {{ic|1=Type=}} в секции {{ic|[Service]}}. Обратитесь к руководству {{ic|man systemd.service}} для получения более детального объяснения.<br />
<br />
* {{ic|1=Type=simple}}: systemd предполагает, что сервис будет запущен незамедлительно. Процесс при этом не должен форкнуться. Не используйте этот тип, если другим сервисы зависят от очередности при запуске данного сервиса, за исключением активации сокета.<br />
* {{ic|1=Type=forking}}: systemd предполагает, что сервис запускается однократно, процесс форкается и родительский процесс завершается. Используйте данный тип для запуска классических демонов за исключением тех случаев, когда, как вам известно, в таком поведении процесса нет необходимости. Вам следует также определить {{ic|1=PIDFile=}}, чтобы systemd могла отслеживать основной процесс.<br />
* {{ic|1=Type=oneshot}}: Полезен для скриптов, которые выполняют одну работу, а потом завершаются. Вам может понадобиться также установить параметр {{ic|1=RemainAfterExit=}}, чтобы systemd по-прежнему считала процесс активным, даже после его завершения<br />
* {{ic|1=Type=notify}}: Идентичен параметру {{ic|1=Type=simple}}, но с той оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления обеспечивается библиотекой {{ic|libsystemd-daemon.so}}.<br />
* {{ic|1=Type=dbus}}: Сервис считается находящимся в состоянии готовности, когда определенное {{ic|BusName}} появляется в системной шине DBus.<br />
<br />
=== Замена предоставленных пакетами файлов юнитов ===<br />
<br />
Файлы юнитов в директории {{ic|/etc/systemd/system/}} имеют приоритет над такими же файлами в директории {{ic|/usr/lib/systemd/system/}}.<br />
Для создания собственной версии юнита (который не будет затерт при обновлении), скопируйте старый юнит из директории {{ic|/usr/lib/}} в директорию {{ic|/etc/}} и внесите в эту копию свои изменения. Альтернативным вариантом является использование {{ic|.include}} для парсинга существующего сервис-файла и затем переопределения или добавления новых опций. Например, если вы просто хотите добавить в сервис-файл дополнительную зависимость, вы можете использовать такую команду в юните:<br />
<br />
{{hc|/etc/systemd/system/<service-name>.service|2=<br />
.include /usr/lib/systemd/system/<service-name>.service<br />
<br />
[Unit]<br />
Requires=<new dependency><br />
After=<new dependency>}}<br />
<br />
Затем выполните следующие команды для того, чтобы изменения вступили в силу:<br />
<br />
# systemctl reenable <unit><br />
# systemctl restart <unit><br />
<br />
{{Tip|Вы можете использовать команду {{ic|systemd-delta}}, чтобы увидеть, какие файлы юнитов были переопределены и что в точности было изменено.}}<br />
<br />
=== Подсветка синтаксиса файлов юнитов в Vim ===<br />
<br />
подсветка синтаксиса файлов юнитов для systemd в редакторе [[Vim]] может быть осуществлена путем установки пакета {{AUR|vim-systemd}} из [[Arch User Repository|AUR]].<br />
<br />
== Уровни запуска/цели ==<br />
<br />
Уровни запуска (по-английски уровень запуска - runlevel) для systemd являются устаревшей концепцией. Systemd использует ''цели'' (англ. target), которые выполняют ту же задачу, что и уровни запуска, но действуют немного по-другому. Каждая ''цель'' поименована (т.е. имеет собственное имя, а не номер) и, как предполагается, предназначена для конкретных задач; возможно иметь в одно и то же время активными несколько таких целей. Некоторые ''цели'' реализованы так, что наследуют все сервисы других ''целей'' и добавляют к ним свои сервисы. В systemd имеются также ''цели'', которые имитируют общие уровни запуска SystemVinit, поэтому вы можете переключаться между целевыми юнитами с использованием привычной команды {{ic|telinit RUNLEVEL}}. <br />
<br />
=== Получение информации о текущем уровне запуска/цели ===<br />
<br />
При использовании systemd для этого предназначена следующая команда (заменяющая {{ic|runlevel}}):<br />
<br />
$ systemctl list-units --type=target<br />
<br />
=== Создание пользовательской цели ===<br />
<br />
Уровни загрузки, по которым расписаны конкретные задачи на установке дистрибутива Fedora по умолчанию - 0, 1, 3, 5 и 6; есть маппинг 1:1 с помощью конкретной цели systemd. К сожалению, не существует хорошего способа сделать то же самое для определяемых пользователем уровней, таких, как 2 и 4. Использование их предполагает, что вы создаете новый именованный '' целевой юнит''systemd наподобие {{ic|/etc/systemd/system/<your target>}}, который берет за основу один из существующих уровней запуска (взгляните, например, на {{ic|/usr/lib/systemd/system/graphical.target}}), создаете также директорию {{ic|/etc/systemd/system/<your target>.wants}} и затем символические ссылки на те дополнительные сервисы из директории {{ic|/usr/lib/systemd/system/}}, которые вы хотите включить при загрузке.<br />
<br />
== Таблица уровней запуска и их аналогов в Systemd ==<br />
<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! Уровнень запуска SysV !! systemd Target !! Примечание<br />
|-<br />
| 0 || runlevel0.target, poweroff.target || Выключить систему.<br />
|-<br />
| 1, s, single || runlevel1.target, rescue.target || Однопользовательский уровень запуска.<br />
|-<br />
| 2, 4 || runlevel2.target, runlevel4.target, multi-user.target || Уровень запуска, определенный пользователем/специфичный для узла. По умолчанию соответствует уровню запуска 3.<br />
|-<br />
| 3 || runlevel3.target, multi-user.target || Многопользовательский режим без графики. Пользователи, как правило, входят с помощью множества консолей или через сеть.<br />
|-<br />
| 5 || runlevel5.target, graphical.target || Многопользовательский режим с графикой. Обычно эквивалентен запуску всех сервисов уровня 3 и графическому менеджеру входа.<br />
|-<br />
| 6 || runlevel6.target, reboot.target || Перезагрузка.<br />
|-<br />
| emergency || emergency.target || Аварийная оболочка.<br />
|-<br />
|}<br />
<br />
=== Изменение текущей цели ===<br />
<br />
В systemd цели доступны посредством " целевых юнитов". Вы можете изменить их командой:<br />
<br />
# systemctl isolate graphical.target<br />
<br />
Данная команда изменит только лишь текущую цель и не повлияет на следующую загрузку системы. Она соответствует командам наподобие {{ic|telinit 3}} или {{ic|telinit 5}} для Sysvinit.<br />
<br />
=== Изменение цели для загрузки ===<br />
<br />
Стандартная цель - {{ic|default.target}}, которая по умолчанию является псевдонимом юнита {{ic|graphical.target}} (примерно соответствующего прежнему уровню выполнения 5). Для изменения цели при загрузке по умолчанию, добавьте следующий дополнительный [[kernel parameters|параметр ядра]] в вашем загрузчике:<br />
<br />
{{Tip|Расширение {{ic|.target}} можно опустить.}}<br />
<br />
* {{ic|1=systemd.unit=multi-user.target}} (что примерно соответствует прежнему уровню выполнения 3),<br />
* {{ic|1=systemd.unit=rescue.target}} (что примерно соответствует прежнему уровню выполнения 1).<br />
<br />
Другой путь заключается в том, чтобы оставить загрузчик без изменений и изменить целевой юнит по умолчанию - {{ic|default.target}}, что достигается командой {{ic|systemctl}}:<br />
<br />
# systemctl enable multi-user.target<br />
<br />
Эффект от применения данной команды выводится через {{ic|systemctl}}; символическая ссылка на новый целевой юнит по умолчанию создается в директории {{ic|/etc/systemd/system/default.target}}. Это сработает в том случае (и только в том случае), если имеется следующая секция:<br />
<br />
[Install]<br />
Alias=default.target<br />
<br />
в конфигурационном файле целевого юнита. В настоящий момент как {{ic|multi-user.target}}, так и {{ic|graphical.target}} оба имеют данную секцию.<br />
<br />
== Журнал ==<br />
С версии 38 systemd имеет собственную систему ведения логов - журнал (journal). По умолчанию, более не требуется запуск демона syslog. Для чтения логов используйте команду:<br />
<br />
# journalctl<br />
<br />
По умолчанию (когда в конфигурационном файле {{ic|/etc/systemd/journald.conf}} параметр {{ic|Storage&#61;}} имеет значение {{ic|auto}}) журнал записывается в директорию {{ic|/run/systemd/journal}}. Если директория {{ic|/var/log/journal/}} не существует (например, вы или какая-либо программа удалили ее), systemd '''не''' создаст ее автоматически, но вместо этого запишет свои логи в директорию {{ic|/run/systemd/journal}}. Это означает, что логи будут потеряны при перезагрузке.<br />
<br />
=== Фильтрация вывода ===<br />
<br />
{{ic|journalctl}} позволяет фильтровать вывод по особым полям.<br />
<br />
Примеры:<br />
<br />
Показать все сообщения определенной программы:<br />
<br />
# journalctl /usr/lib/systemd/systemd<br />
<br />
Показать все сообщения определенного процесса:<br />
<br />
# journalctl _PID=1<br />
<br />
Показать все сообщения определенного юнита:<br />
<br />
# journalctl -u netcfg<br />
<br />
Обратитесь к {{ic|man journalctl}} и {{ic|systemd.journal-fields}} для получения детальной информации.<br />
<br />
=== Ограничение размера журнала ===<br />
<br />
Если журнал сохраняется при перезагрузке, размер его по умолчанию ограничен значением в 10% от объема соответствующей файловой системы. Например, для директории {{ic|/var/log/journal}}, расположенной на корневом разделе в 50 Гбайт, максимальный размер журналируемых данных составит до 5 Гбайт. Максимальный объем постоянного журнала можно контролировать при помощи значения {{ic|SystemMaxUse}} в конфигурационном файле {{ic|/etc/systemd/journald.conf}}, поэтому для ограничения его объемом в 50 Mбайт раскомментируйте и отредактируйте соответствующую строку:<br />
<br />
SystemMaxUse=50M<br />
<br />
Обратитесь к {{ic|man journald.conf}} для получения дальнейшей информации.<br />
<br />
=== Journald в связке с классическим демоном syslog ===<br />
<br />
Совместимость с классической реализацией syslog обеспечивается сокетом {{ic|/run/systemd/journal/syslog}}, в который перенаправляются все сообщения. Чтобы дать возможность демону syslog работать вместе с журналом systemd, следует привязать данный демон к указанному сокету вместо {{ic|/dev/log}} ([http://lwn.net/Articles/474968/ официальное сообщение]). Пакетом {{pkg|syslog-ng}} в репозиториях автоматически предоставляется необходимая конфигурация.<br />
<br />
# systemctl enable syslog-ng<br />
<br />
== Запуск окружения рабочего стола из systemd ==<br />
<br />
Чтобы включить графический вход в систему, запустите выбранный вами демон [[Display Manager (Русский)|экранного менеджера]] (например, [[KDM]]). В настоящий момент доступны сервис-файлы для [[GDM]], [[KDM]], [[SLiM]], [[XDM]], [[LXDM]] и [[LightDM]].<br />
<br />
# systemctl enable kdm<br />
<br />
Эта команда должна работать "из коробки". Если вдруг она не сработала, то, возможно, у вас {{ic|default.target}} установлен вручную или остался с прежней установки:<br />
<br />
{{hc|# ls -l /etc/systemd/system/default.target|<br />
/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target}}<br />
<br />
Просто удалите символическую ссылку и systemd будет использовать целевой юнит по умолчанию - {{ic|default.target}} (т.е. {{ic|graphical.target}}).<br />
<br />
# rm /etc/systemd/system/default.target<br />
<br />
=== Использование systemd-logind ===<br />
<br />
{{Note|С 30.10.2012 [[ConsoleKit]] был [http://archlinux.org.ru/node/352/ заменен на systemd-logind] как механизм входа в окружение рабочего стола по умолчанию.}}<br />
<br />
Для того, чтобы проверить статус вашей пользовательской сессии, вы можете использовать команду {{ic|loginctl}}. Все действия [[PolicyKit]] наподобие перевода системы в спящий режим или монтирования внешних носителей с помощью [[Udisks]] должны работать автоматически.<br />
<br />
$ loginctl show-session $XDG_SESSION_ID<br />
<br />
== Сеть ==<br />
<br />
{{Merge|Configuring Network (Русский)|Данный раздел в английской версии включен в состав статьи [[Configuring Network]]; в русской версии временно оставлен из-за того, что русский вариант [[Configuring Network (Русский)]] устарел в сравнении с английским.}}<br />
<br />
=== Динамическое подключение (DHCP) с использованием dhcpcd ===<br />
<br />
Если хотите использовать только DHCP для своего соединения Ethernet, вы можете воспользоваться сервисом {{ic|dhcpcd@.service}} (который поставляется пакетом {{Pkg|dhcpcd}}).<br />
<br />
Чтобы подключить DHCP для {{ic|eth0}}, просто выполните команду:<br />
<br />
# systemctl start dhcpcd@eth0.service<br />
<br />
Вы можете включить этот сервис, и он будет автоматически запускаться при загрузке. Это делается командой:<br />
<br />
# systemctl enable dhcpcd@eth0.service<br />
<br />
Иногда сервис dhcpd запускается до загрузки модуля вашей сетевой карты ({{bug|30235}}), в этом случае вручную добавьте вашу сетевую карту в конфигурационный файл {{ic|/etc/modules-load.d/*.conf}}. Например, для карты Realtek необходима загрузка модуля {{ic|r8169}}, поэтому создайте такой конфигурационный файл:<br />
<br />
{{hc|/etc/modules-load.d/realtek.conf|2=<br />
r8169}}<br />
<br />
=== Другие конфигурации ===<br />
<br />
Для статического подключения, беспроводной сети или сложной конфигурации сети наподобие сетевого моста, вы можете использовать [[Netcfg#systemd_support|netcfg]] или [[NetworkManager#Enable_NetworkManager_under_Native_systemd_system|NetworkManager]], для обоих этих инструментов управления сетью имеются сервис-файлы для systemd.<br />
<br />
{{Note|Если вы хотите использовать netcfg, NetworkManager или другие программы управления сетью, вам не надо в этом случае запускать или включать сервис dhcpcd как показано в предыдущем параграфе.}}<br />
<br />
== Оптимизация ==<br />
<br />
=== Анализ процесса загрузки ===<br />
<br />
==== Использование systemd-analyze ====<br />
<br />
Systemd предоставляет инструмент под названием {{ic|systemd-analyze}}, позволяющий проанализировать процесс загрузки вашей системы, чтобы можно было увидеть, какие файлы юнитов тормозят загрузку. Соответственно, вы можете оптимизировать вашу систему. Для использования данного инструмента вам потребуется установить пакеты {{Pkg|python2-dbus}} и {{Pkg|python2-cairo}}.<br />
<br />
Чтобы увидеть, сколько времени было потрачено на подготовку пространства ядра и пространства пользователя во время загрузки, просто выполните команду:<br />
<br />
$ systemd-analyze<br />
<br />
{{Tip|Чтобы увидеть, сколько времени ушло на загрузку образа initramfs, добавьте хук {{ic|timestamp}} в ваш массив {{ic|HOOKS}} из конфигурационного файла {{ic|/etc/[[mkinitcpio]].conf}} и от суперпользователя root пересоберите ваш образ initramfs командой {{ic|mkinitcpio -p linux}} }}<br />
<br />
Чтобы увидеть список запускаемых файлов юнитов, отсортированный по потраченному каждым из них на загрузку времени, выполните команду:<br />
<br />
$ systemd-analyze blame<br />
<br />
Вы также можете создать файл SVG, показывающий процесс загрузки в графическом виде, наподобие [[Bootchart]]:<br />
<br />
$ systemd-analyze plot > plot.svg<br />
<br />
==== Использование bootchart ====<br />
<br />
Вы можете использовать версию bootchart для визуализации последовательности при загрузке системы.<br />
Из-за невозможности использовать стандартные установки bootchart (так как нельзя добавить в командную строку ядра вторую запись init), вам придется воспользоваться пакетом {{AUR|bootchart2}} из [[AUR]], поставляемым с недокументированным сервисом systemd. После установки bootchart2 выполните команду:<br />
<br />
# systemctl enable bootchart<br />
<br />
Обратитесь к [https://github.com/mmeeks/bootchart документации bootchart (англ.)] за дальнейшей и детализированной информацией об использовании данной версии bootchart.<br />
<br />
=== Включение readahead ===<br />
<br />
systemd поставляется со свой реализации технологии readahead, что в принципе должно усовершенствовать процесс загрузки системы. Однако, в зависимости от версии вашего ядра и типа жесткого диска, скорость обращения к данным может разниться (например, может быть медленнее). Чтобы включить данный сервис, выполните:<br />
<br />
# systemctl enable systemd-readahead-collect systemd-readahead-replay<br />
<br />
Не забудьте, что волшебство технологии readahead подействует только после нескольких перезапусков системы<br />
<br />
=== Принудительный ранний старт сервисов ===<br />
<br />
Одним из центральных элементов systemd является [[D-Bus]] и активация сокетов, что требует запуска сервисов при первой потребности в них. Обычно такой подход является удачным, но, если вы знаете, что какой-то сервис (вроде [[UPower]]) должен всегда запускаться во время загрузки системы, то вы можете сократить общее время загрузки, запуская его так рано, как это вообще возможно. Этого можно добиться (если сервис-файл устроен соответствующим образом, что верно в большинстве случаев) путем выполнения команды:<br />
<br />
# systemctl enable upower<br />
<br />
Это заставит systemd запустить UPower так рано, как это возможно, не устраивая перегонки данного сервиса с активацией сокета или D-Bus.<br />
<br />
=== Уменьшение вывода во время загрузки ===<br />
<br />
Измените параметр {{ic|verbose}} на {{ic|quiet}} в строке загрузки ядра вашего загрузчика. Для некоторых систем, в частности с SSD, узким местом является низкая производительность TTY, поэтому уменьшение вывода информации означает прирост скорости загрузки.<br />
<br />
=== Создание сокращений командной оболочки ===<br />
<br />
Демон управления systemd требует ввода достаточно большого объема текста команд для выполнения таких процессов, как запуск, останов, включение, проверка статуса сервисов и т.д. Добавление в ваш конфигурационный файл {{ic|~/.bashrc}} следующих функций поможет уппростить взаимодействие с systemd и усовершенствовать опыт ее использования.<br />
<br />
{{bc|# упростим команду systemd, например, "sudo systemctl stop xxx" - > "0.stop xxx"<br />
if ! systemd-notify --booted;<br />
then # for not systemd<br />
0.start() {<br />
sudo rc.d start $@<br />
}<br />
<br />
0.restart() {<br />
sudo rc.d restart $@<br />
}<br />
<br />
0.stop() {<br />
sudo rc.d stop $@<br />
}<br />
else<br />
# запустить сервис systemd<br />
0.start() {<br />
sudo systemctl start $@<br />
}<br />
# перезапустить сервис systemd<br />
0.restart() {<br />
sudo systemctl restart $@<br />
}<br />
# stop systemd service<br />
0.stop() {<br />
sudo systemctl stop $@<br />
}<br />
# включить сервис systemd<br />
0.enable() {<br />
sudo systemctl enable $@<br />
}<br />
# выключить сервис systemd<br />
0.disable() {<br />
sudo systemctl disable $@<br />
}<br />
# показать статус сервиса<br />
0.status() {<br />
systemctl status $@<br />
}<br />
# прерзагрузить конфигурацию сервиса<br />
0.reload() {<br />
sudo systemctl reload $@<br />
}<br />
# показать все запущенные сервисы<br />
0.list() {<br />
systemctl<br />
}<br />
# показать все сервисы, запуск которых завершился неудачей<br />
0.failed () {<br />
systemctl --failed<br />
}<br />
# показать все доступные файлы юнитов<br />
0.list-files() {<br />
systemctl list-unit-files<br />
}<br />
# проверить лог<br />
0.log() {<br />
sudo journalctl<br />
}<br />
# показать необязательные зависимости<br />
0.wants() {<br />
systemctl show -p "Wants" $1.target<br />
}<br />
# анализ системы<br />
0.analyze() {<br />
systemd-analyze $@<br />
}<br />
fi<br />
}}<br />
<br />
{{Warning|Скопируйте в свой {{ic|~/.bashrc}} [[Systemd#Creating_shell_shortcuts|английскую версию]] данных сокращений, чтобы избежать проблем с командной оболочкой. }}<br />
<br />
== Устранение неполадок ==<br />
<br />
=== Выключение/перезагрузка происходят ужасно долго ===<br />
<br />
Если процесс выключения занимает очень долгое время (или, по-видимому, зависает), то, вероятно, виноват сервис, который не завершает свою работу. systemd ожидает некоторое время, пока каждый сервис завершит свою работу самостоятельно, и только потом пытается принудительно завершить (kill) его. Если вы столкнулись с такой проблемой, обратитесь к [http://freedesktop.org/wiki/Software/systemd/Debugging#Shutdown_Completes_Eventually данной статье (англ.)].<br />
<br />
== Полезные ссылки ==<br />
<br />
*[http://www.freedesktop.org/wiki/Software/systemd Официальный веб-сайт (англ.)]<br />
*[http://0pointer.de/public/systemd-man/ Страницы руководств (англ.)]<br />
*[http://freedesktop.org/wiki/Software/systemd/Optimizations systemd Optimizations (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions FAQ (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks Tips And Tricks (англ.)]<br />
*[http://0pointer.de/public/systemd-ebook-psankar.pdf systemd для администраторов (PDF) - перевод цикла статей Леннарта Поттеринга (Lennart Poettering) ]<br />
*[http://0pointer.de/blog/projects/systemd.html Блог Lennart'а (англ.)]<br />
*[http://archlinux.org.ru/forum/viewtopic.php?f=9&t=9581 systemd mini FAQ]<br />
*[http://fedoraproject.org/wiki/Systemd Fedora Linux Wiki: Systemd (англ.)]<br />
*[http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet Fedora's SysVinit to systemd cheatsheet (англ.)]<br />
*[http://wiki.russianfedora.ru/index.php/Systemd systemd - база знаний проекта Fedora]<br />
*[http://wiki.debian.org/ru/Systemd Debian Wiki: systemd - менеджер системы и сервисов]<br />
*[http://wiki.ubuntu.com/systemd Ubuntu Wiki: systemd (англ.)]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=221096Locale (Русский)2012-09-02T08:39:47Z<p>Vladislav.tyulbashev: /* Установка системной локали */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[nl:Locale]]<br />
[[uk:Locale]]<br />
[[zh-CN:Locale]]<br />
Локали (locales) используются в Linux чтобы определить каким языком пользуется пользователь. Также локали определяют набор символов, которыми пользуется пользователь; настройка правильной локали особенно важно, если язык содержит не-ASCII символы.<br />
<br />
Названия локали определяется так:<br />
<язык>_<страна>.<кодировка>[@<модификатор>]<br />
<br />
В этой статье мы используем локаль ru_RU.UTF-8, но вы можете проделать все это с любой другой локалью.<br />
<br />
==Включение нужных локалей==<br />
''Ознакомьтесь также со статьей [[Internationalization_(Русский)]]''<br />
<br />
<br />
Сначала нужно включить те локали, которые вы хотите использовать. Чтобы включить или выключить их используется файл '''/etc/locale.gen'''. Он содержит все возможные локали, чтобы включить любую из них, раскомментируйте соответствующую строчку.<br />
<br />
Поскольку мы хотим установить Русский язык с кодировкой utf-8, мы включаем локаль ru_RU.UTF-8. Но для совместимости с программами, которые не поддерживают Русский язык и/или utf-8, рекомендуется включить поддержку всех локалей, начинающихся с ru_RU и en_US.<br />
<br />
После включения нужных локалей нужно запустить в терминале из под root locale-gen, чтобы обновить их.<br />
<br />
# locale-gen<br />
Generating locales...<br />
en_US.UTF-8... done<br />
en_US.ISO-8859-1... done<br />
ru_RU.KOI8-R... done<br />
ru_RU.UTF-8... done<br />
ru_RU.ISO-8859-5... done<br />
Generation complete.<br />
<br />
==Установка системной локали==<br />
Чтобы определить, какая локаль будет использоваться в системе, вам нужно просто указать ее в файле '''/etc/locale.conf'''. Для того, чтобы установить локаль добавьте в /etc/locale.conf (его может не существовать - тогда просто создайте его) строчку:<br />
<br />
LANG="ru_RU.UTF-8"<br />
<br />
Эти настройки вступят в силу после перезагрузки.<br />
<br />
==Collation==<br />
<br />
<br />
==Установка локали для отдельного пользователя==<br />
Как написано ранее, некоторые пользователи возможно захотят установить локаль отличную от системной.<br />
Вы можете установить локаль для конкретного пользователя в его файле '''~/.bashrc'''<br />
<br />
Например установим локаль en_AU.UTF-8.<br />
export LANG=en_AU.UTF-8<br />
<br />
Ваша локаль обновляется после исполнения вашего ~/.bashrc. Это происходит когда вы входите в систему, или вы можете выполнить:<br />
$ source ~/.bashrc<br />
<br />
==Установка первого дня недели==<br />
Во многих странах первым днем недели является понедельник. Для этого следует изменить или добавить следующие строки в секцию {{ic|LC_TIME}} в {{ic|/usr/share/i18n/locales/<your_locale>}}:<br />
<br />
week 7;19971130;5<br />
first_weekday 2<br />
first_workday 2<br />
<br />
И затем выполнить от рута:<br />
<br />
# locale-gen<br />
<br />
==Troubleshooting==<br />
===Как узнать какие локали доступны сейчас?===<br />
Выполните:<br />
$ locale -a<br />
===Как узнать какая локаль используется сейчас?===<br />
Выполните:<br />
$ locale<br />
===Мой терминал не поддерживает UTF-8===<br />
Некоторые терминалы не поддерживают utf-8, так что придется установить другой терминал.<br />
<br />
'''Терминалы, поддерживающие UTF-8:'''<br />
* gnome-terminal<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* urxvt (rxvt-unicode)<br />
* xfce-terminal<br />
* xterm<br />
'''Примечание:''' это далеко не полный список.<br />
<br />
===у меня xterm не поддерживает UTF-8===<br />
xterm поддерживает UTF-8 если запустить его как uxterm или xterm -u8.<br />
<br />
==Ссылки==<br />
* [http://www.gentoo.org/doc/en/guide-localization.xml Gentoo Linux Localization Guide]<br />
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=221087Locale (Русский)2012-09-02T08:26:30Z<p>Vladislav.tyulbashev: /* Установка системной локали */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[nl:Locale]]<br />
[[uk:Locale]]<br />
[[zh-CN:Locale]]<br />
Локали (locales) используются в Linux чтобы определить каким языком пользуется пользователь. Также локали определяют набор символов, которыми пользуется пользователь; настройка правильной локали особенно важно, если язык содержит не-ASCII символы.<br />
<br />
Названия локали определяется так:<br />
<язык>_<страна>.<кодировка>[@<модификатор>]<br />
<br />
В этой статье мы используем локаль ru_RU.UTF-8, но вы можете проделать все это с любой другой локалью.<br />
<br />
==Включение нужных локалей==<br />
''Ознакомьтесь также со статьей [[Internationalization_(Русский)]]''<br />
<br />
<br />
Сначала нужно включить те локали, которые вы хотите использовать. Чтобы включить или выключить их используется файл '''/etc/locale.gen'''. Он содержит все возможные локали, чтобы включить любую из них, раскомментируйте соответствующую строчку.<br />
<br />
Поскольку мы хотим установить Русский язык с кодировкой utf-8, мы включаем локаль ru_RU.UTF-8. Но для совместимости с программами, которые не поддерживают Русский язык и/или utf-8, рекомендуется включить поддержку всех локалей, начинающихся с ru_RU и en_US.<br />
<br />
После включения нужных локалей нужно запустить в терминале из под root locale-gen, чтобы обновить их.<br />
<br />
# locale-gen<br />
Generating locales...<br />
en_US.UTF-8... done<br />
en_US.ISO-8859-1... done<br />
ru_RU.KOI8-R... done<br />
ru_RU.UTF-8... done<br />
ru_RU.ISO-8859-5... done<br />
Generation complete.<br />
<br />
==Установка системной локали==<br />
Чтобы определить, какая локаль будет использоваться в системе, вам нужно просто указать ее в файле '''/etc/rc.conf'''. '''Ознакомьтесь со статьей [[rc.conf]], перед тем, как править этот файл'''. Поскольку мы добавили поддержку других локалей просто для совместимости, сдесь мы указываем только ru_RU.UTF-8:<br />
<br />
LOCALE="ru_RU.UTF-8"<br />
<br />
Эти настройки вступят в силу после перезагрузки.<br />
<br />
==Collation==<br />
<br />
<br />
==Установка локали для отдельного пользователя==<br />
Как написано ранее, некоторые пользователи возможно захотят установить локаль отличную от системной.<br />
Вы можете установить локаль для конкретного пользователя в его файле '''~/.bashrc'''<br />
<br />
Например установим локаль en_AU.UTF-8.<br />
export LANG=en_AU.UTF-8<br />
<br />
Ваша локаль обновляется после исполнения вашего ~/.bashrc. Это происходит когда вы входите в систему, или вы можете выполнить:<br />
$ source ~/.bashrc<br />
<br />
==Установка первого дня недели==<br />
Во многих странах первым днем недели является понедельник. Для этого следует изменить или добавить следующие строки в секцию {{ic|LC_TIME}} в {{ic|/usr/share/i18n/locales/<your_locale>}}:<br />
<br />
week 7;19971130;5<br />
first_weekday 2<br />
first_workday 2<br />
<br />
И затем выполнить от рута:<br />
<br />
# locale-gen<br />
<br />
==Troubleshooting==<br />
===Как узнать какие локали доступны сейчас?===<br />
Выполните:<br />
$ locale -a<br />
===Как узнать какая локаль используется сейчас?===<br />
Выполните:<br />
$ locale<br />
===Мой терминал не поддерживает UTF-8===<br />
Некоторые терминалы не поддерживают utf-8, так что придется установить другой терминал.<br />
<br />
'''Терминалы, поддерживающие UTF-8:'''<br />
* gnome-terminal<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* urxvt (rxvt-unicode)<br />
* xfce-terminal<br />
* xterm<br />
'''Примечание:''' это далеко не полный список.<br />
<br />
===у меня xterm не поддерживает UTF-8===<br />
xterm поддерживает UTF-8 если запустить его как uxterm или xterm -u8.<br />
<br />
==Ссылки==<br />
* [http://www.gentoo.org/doc/en/guide-localization.xml Gentoo Linux Localization Guide]<br />
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=221086Locale (Русский)2012-09-02T08:25:26Z<p>Vladislav.tyulbashev: /* Установка системной локали */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[nl:Locale]]<br />
[[uk:Locale]]<br />
[[zh-CN:Locale]]<br />
Локали (locales) используются в Linux чтобы определить каким языком пользуется пользователь. Также локали определяют набор символов, которыми пользуется пользователь; настройка правильной локали особенно важно, если язык содержит не-ASCII символы.<br />
<br />
Названия локали определяется так:<br />
<язык>_<страна>.<кодировка>[@<модификатор>]<br />
<br />
В этой статье мы используем локаль ru_RU.UTF-8, но вы можете проделать все это с любой другой локалью.<br />
<br />
==Включение нужных локалей==<br />
''Ознакомьтесь также со статьей [[Internationalization_(Русский)]]''<br />
<br />
<br />
Сначала нужно включить те локали, которые вы хотите использовать. Чтобы включить или выключить их используется файл '''/etc/locale.gen'''. Он содержит все возможные локали, чтобы включить любую из них, раскомментируйте соответствующую строчку.<br />
<br />
Поскольку мы хотим установить Русский язык с кодировкой utf-8, мы включаем локаль ru_RU.UTF-8. Но для совместимости с программами, которые не поддерживают Русский язык и/или utf-8, рекомендуется включить поддержку всех локалей, начинающихся с ru_RU и en_US.<br />
<br />
После включения нужных локалей нужно запустить в терминале из под root locale-gen, чтобы обновить их.<br />
<br />
# locale-gen<br />
Generating locales...<br />
en_US.UTF-8... done<br />
en_US.ISO-8859-1... done<br />
ru_RU.KOI8-R... done<br />
ru_RU.UTF-8... done<br />
ru_RU.ISO-8859-5... done<br />
Generation complete.<br />
<br />
==Установка системной локали==<br />
Чтобы определить, какая локаль будет использоваться в системе, вам нужно просто указать ее в файле '''/etc/rc.conf'''. Ознакомьтесь со статьей [[rc.conf]], перед тем, как править этот файл. Поскольку мы добавили поддержку других локалей просто для совместимости, сдесь мы указываем только ru_RU.UTF-8:<br />
<br />
LOCALE="ru_RU.UTF-8"<br />
<br />
Эти настройки вступят в силу после перезагрузки.<br />
<br />
==Collation==<br />
<br />
<br />
==Установка локали для отдельного пользователя==<br />
Как написано ранее, некоторые пользователи возможно захотят установить локаль отличную от системной.<br />
Вы можете установить локаль для конкретного пользователя в его файле '''~/.bashrc'''<br />
<br />
Например установим локаль en_AU.UTF-8.<br />
export LANG=en_AU.UTF-8<br />
<br />
Ваша локаль обновляется после исполнения вашего ~/.bashrc. Это происходит когда вы входите в систему, или вы можете выполнить:<br />
$ source ~/.bashrc<br />
<br />
==Установка первого дня недели==<br />
Во многих странах первым днем недели является понедельник. Для этого следует изменить или добавить следующие строки в секцию {{ic|LC_TIME}} в {{ic|/usr/share/i18n/locales/<your_locale>}}:<br />
<br />
week 7;19971130;5<br />
first_weekday 2<br />
first_workday 2<br />
<br />
И затем выполнить от рута:<br />
<br />
# locale-gen<br />
<br />
==Troubleshooting==<br />
===Как узнать какие локали доступны сейчас?===<br />
Выполните:<br />
$ locale -a<br />
===Как узнать какая локаль используется сейчас?===<br />
Выполните:<br />
$ locale<br />
===Мой терминал не поддерживает UTF-8===<br />
Некоторые терминалы не поддерживают utf-8, так что придется установить другой терминал.<br />
<br />
'''Терминалы, поддерживающие UTF-8:'''<br />
* gnome-terminal<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* urxvt (rxvt-unicode)<br />
* xfce-terminal<br />
* xterm<br />
'''Примечание:''' это далеко не полный список.<br />
<br />
===у меня xterm не поддерживает UTF-8===<br />
xterm поддерживает UTF-8 если запустить его как uxterm или xterm -u8.<br />
<br />
==Ссылки==<br />
* [http://www.gentoo.org/doc/en/guide-localization.xml Gentoo Linux Localization Guide]<br />
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=221085Locale (Русский)2012-09-02T08:23:30Z<p>Vladislav.tyulbashev: /* Установка системной локали */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[nl:Locale]]<br />
[[uk:Locale]]<br />
[[zh-CN:Locale]]<br />
Локали (locales) используются в Linux чтобы определить каким языком пользуется пользователь. Также локали определяют набор символов, которыми пользуется пользователь; настройка правильной локали особенно важно, если язык содержит не-ASCII символы.<br />
<br />
Названия локали определяется так:<br />
<язык>_<страна>.<кодировка>[@<модификатор>]<br />
<br />
В этой статье мы используем локаль ru_RU.UTF-8, но вы можете проделать все это с любой другой локалью.<br />
<br />
==Включение нужных локалей==<br />
''Ознакомьтесь также со статьей [[Internationalization_(Русский)]]''<br />
<br />
<br />
Сначала нужно включить те локали, которые вы хотите использовать. Чтобы включить или выключить их используется файл '''/etc/locale.gen'''. Он содержит все возможные локали, чтобы включить любую из них, раскомментируйте соответствующую строчку.<br />
<br />
Поскольку мы хотим установить Русский язык с кодировкой utf-8, мы включаем локаль ru_RU.UTF-8. Но для совместимости с программами, которые не поддерживают Русский язык и/или utf-8, рекомендуется включить поддержку всех локалей, начинающихся с ru_RU и en_US.<br />
<br />
После включения нужных локалей нужно запустить в терминале из под root locale-gen, чтобы обновить их.<br />
<br />
# locale-gen<br />
Generating locales...<br />
en_US.UTF-8... done<br />
en_US.ISO-8859-1... done<br />
ru_RU.KOI8-R... done<br />
ru_RU.UTF-8... done<br />
ru_RU.ISO-8859-5... done<br />
Generation complete.<br />
<br />
==Установка системной локали==<br />
Чтобы определить, какая локаль будет использоваться в системе, вам нужно просто указать ее в файле '''/etc/rc.conf'''. !теперь в файле '''/etc/locale.conf'''! Поскольку мы добавили поддержку других локалей просто для совместимости, сдесь мы указываем только ru_RU.UTF-8:<br />
<br />
LOCALE="ru_RU.UTF-8"<br />
<br />
Эти настройки вступят в силу после перезагрузки.<br />
<br />
==Collation==<br />
<br />
<br />
==Установка локали для отдельного пользователя==<br />
Как написано ранее, некоторые пользователи возможно захотят установить локаль отличную от системной.<br />
Вы можете установить локаль для конкретного пользователя в его файле '''~/.bashrc'''<br />
<br />
Например установим локаль en_AU.UTF-8.<br />
export LANG=en_AU.UTF-8<br />
<br />
Ваша локаль обновляется после исполнения вашего ~/.bashrc. Это происходит когда вы входите в систему, или вы можете выполнить:<br />
$ source ~/.bashrc<br />
<br />
==Установка первого дня недели==<br />
Во многих странах первым днем недели является понедельник. Для этого следует изменить или добавить следующие строки в секцию {{ic|LC_TIME}} в {{ic|/usr/share/i18n/locales/<your_locale>}}:<br />
<br />
week 7;19971130;5<br />
first_weekday 2<br />
first_workday 2<br />
<br />
И затем выполнить от рута:<br />
<br />
# locale-gen<br />
<br />
==Troubleshooting==<br />
===Как узнать какие локали доступны сейчас?===<br />
Выполните:<br />
$ locale -a<br />
===Как узнать какая локаль используется сейчас?===<br />
Выполните:<br />
$ locale<br />
===Мой терминал не поддерживает UTF-8===<br />
Некоторые терминалы не поддерживают utf-8, так что придется установить другой терминал.<br />
<br />
'''Терминалы, поддерживающие UTF-8:'''<br />
* gnome-terminal<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* urxvt (rxvt-unicode)<br />
* xfce-terminal<br />
* xterm<br />
'''Примечание:''' это далеко не полный список.<br />
<br />
===у меня xterm не поддерживает UTF-8===<br />
xterm поддерживает UTF-8 если запустить его как uxterm или xterm -u8.<br />
<br />
==Ссылки==<br />
* [http://www.gentoo.org/doc/en/guide-localization.xml Gentoo Linux Localization Guide]<br />
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=221084Locale (Русский)2012-09-02T08:22:42Z<p>Vladislav.tyulbashev: /* Установка системной локали */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:Locale]]<br />
[[de:Locale]]<br />
[[en:Locale]]<br />
[[es:Locale]]<br />
[[fr:Locale]]<br />
[[nl:Locale]]<br />
[[uk:Locale]]<br />
[[zh-CN:Locale]]<br />
Локали (locales) используются в Linux чтобы определить каким языком пользуется пользователь. Также локали определяют набор символов, которыми пользуется пользователь; настройка правильной локали особенно важно, если язык содержит не-ASCII символы.<br />
<br />
Названия локали определяется так:<br />
<язык>_<страна>.<кодировка>[@<модификатор>]<br />
<br />
В этой статье мы используем локаль ru_RU.UTF-8, но вы можете проделать все это с любой другой локалью.<br />
<br />
==Включение нужных локалей==<br />
''Ознакомьтесь также со статьей [[Internationalization_(Русский)]]''<br />
<br />
<br />
Сначала нужно включить те локали, которые вы хотите использовать. Чтобы включить или выключить их используется файл '''/etc/locale.gen'''. Он содержит все возможные локали, чтобы включить любую из них, раскомментируйте соответствующую строчку.<br />
<br />
Поскольку мы хотим установить Русский язык с кодировкой utf-8, мы включаем локаль ru_RU.UTF-8. Но для совместимости с программами, которые не поддерживают Русский язык и/или utf-8, рекомендуется включить поддержку всех локалей, начинающихся с ru_RU и en_US.<br />
<br />
После включения нужных локалей нужно запустить в терминале из под root locale-gen, чтобы обновить их.<br />
<br />
# locale-gen<br />
Generating locales...<br />
en_US.UTF-8... done<br />
en_US.ISO-8859-1... done<br />
ru_RU.KOI8-R... done<br />
ru_RU.UTF-8... done<br />
ru_RU.ISO-8859-5... done<br />
Generation complete.<br />
<br />
==Установка системной локали==<br />
Чтобы определить, какая локаль будет использоваться в системе, вам нужно просто указать ее в файле '''/etc/locale.conf'''. Поскольку мы добавили поддержку других локалей просто для совместимости, сдесь мы указываем только ru_RU.UTF-8:<br />
<br />
LOCALE="ru_RU.UTF-8"<br />
<br />
Эти настройки вступят в силу после перезагрузки.<br />
<br />
==Collation==<br />
<br />
<br />
==Установка локали для отдельного пользователя==<br />
Как написано ранее, некоторые пользователи возможно захотят установить локаль отличную от системной.<br />
Вы можете установить локаль для конкретного пользователя в его файле '''~/.bashrc'''<br />
<br />
Например установим локаль en_AU.UTF-8.<br />
export LANG=en_AU.UTF-8<br />
<br />
Ваша локаль обновляется после исполнения вашего ~/.bashrc. Это происходит когда вы входите в систему, или вы можете выполнить:<br />
$ source ~/.bashrc<br />
<br />
==Установка первого дня недели==<br />
Во многих странах первым днем недели является понедельник. Для этого следует изменить или добавить следующие строки в секцию {{ic|LC_TIME}} в {{ic|/usr/share/i18n/locales/<your_locale>}}:<br />
<br />
week 7;19971130;5<br />
first_weekday 2<br />
first_workday 2<br />
<br />
И затем выполнить от рута:<br />
<br />
# locale-gen<br />
<br />
==Troubleshooting==<br />
===Как узнать какие локали доступны сейчас?===<br />
Выполните:<br />
$ locale -a<br />
===Как узнать какая локаль используется сейчас?===<br />
Выполните:<br />
$ locale<br />
===Мой терминал не поддерживает UTF-8===<br />
Некоторые терминалы не поддерживают utf-8, так что придется установить другой терминал.<br />
<br />
'''Терминалы, поддерживающие UTF-8:'''<br />
* gnome-terminal<br />
* gnustep-terminal<br />
* konsole<br />
* [[mlterm]]<br />
* urxvt (rxvt-unicode)<br />
* xfce-terminal<br />
* xterm<br />
'''Примечание:''' это далеко не полный список.<br />
<br />
===у меня xterm не поддерживает UTF-8===<br />
xterm поддерживает UTF-8 если запустить его как uxterm или xterm -u8.<br />
<br />
==Ссылки==<br />
* [http://www.gentoo.org/doc/en/guide-localization.xml Gentoo Linux Localization Guide]<br />
* [http://www.gentoo-wiki.info/Locales Gentoo Wiki Archives: Locales]<br />
* [http://demo.icu-project.org/icu-bin/locexp?_=en_US&x=col ICU's interactive collation testing]<br />
* [http://www.openi18n.org/ Free Standards Group Open Internationalisation Initiative]</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=LXDE_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=219105LXDE (Русский)2012-08-22T10:28:59Z<p>Vladislav.tyulbashev: /* Особенности */</p>
<hr />
<div>[[Category:Русский]]<br />
[[cs:LXDE]]<br />
[[en:LXDE]]<br />
[[es:LXDE]]<br />
[[fr:LXDE]]<br />
[[it:LXDE]]<br />
[[pl:LXDE]]<br />
[[sr:LXDE]]<br />
[[tr:LXDE_Masaüstü_Ortamı]]<br />
[[uk:LXDE]]<br />
[[zh-CN:LXDE]]<br />
[[zh-TW:LXDE]]<br />
Эта статья описывает установку и настройку основных компонент окружения рабочего стола '''LXDE''' ('''L'''ightweight '''X'''11 '''D'''esktop '''E'''nvironment). Одно из главных достоинств LXDE - небольшие требования к железу. Философия LXDE - это лёгкость, полезность и практичность.<br />
<br />
== Особенности ==<br />
<br />
Среди основных особенностей LXDE можно выделить:<br />
<br />
* '''Легковесность''' - запуск с разумным использованием памяти (после запуска [[Xorg_(Русский)|Xorg]] сервера и LXDE - используемая память 45 MB на машинах архитектуры i386)<br />
* '''Скорость работы''' - работает на машинах выпущенных в 1999 году (требования LXDE близки к требованиям Windows 98)<br />
* '''Дизайн функционала''' - интерфейс GTK+ [http://www.gtk.org/] и следование стандарту GNOME HIG [http://library.gnome.org/devel/hig-book/stable/].<br />
* '''Независимость''' - компоненты окружения могут использоваться и без LXDE.<br />
* '''Следование стандартам''' - соответcтвие стандартам проекта Freedesktop [http://www.freedesktop.org/wiki/].<br />
<br />
== Компоненты ==<br />
<br />
Информация о компонентах окружения:<br />
<br />
* '''[[PCManFM]]''': Файловый менеджер, функционал рабочего стола и обоев.<br />
* '''[http://www.gnomefiles.org/app.php/LXPanel LXPanel]''': Панель задач с менеджером приложений, меню программ и апплетов.<br />
* '''[http://www.gnomefiles.org/app.php/LXSession LXSession]''': совместимый X11 менеджер сессий с поддержкой выключения, перезагрузки и ждущего режима (требуется [[HAL_(Русский)|HAL]]).<br />
* '''[http://www.gnomefiles.org/app.php/LXAppearance LXAppearance]''': Редактор тем для изменения GTK+ тем, иконок и шрифтов для приложений GTK.<br />
* '''[http://icculus.org/openbox/index.php/Main_Page Openbox]''': легкий и удобно-конфигурируемый менеджер окон (рекомендуемый менеджер, разработанный вне проекта LXDE).<br />
* '''[http://tr.openmonkey.com/pages/obconf/ Obconf]''' - Инструмент для настройки тем и стилей Openbox.<br />
* '''[http://lxde.sourceforge.net/gpicview/ GPicView]''': Простой и легкий просмоторщик изображений.<br />
* '''[http://tarot.freeshell.org/leafpad/ Leafpad]''': Простой и легкий текстовый редактор (разработан вне проекта LXDE).<br />
* '''[http://xarchiver.xfce.org/ XArchiver]''': Легкий архиватор (разработан вне проекта LXDE).<br />
* '''[http://lxde.sourceforge.net/about.html LXNM]''' Легкая программа для управления сетевыми соединениями, в разработке. Вы можете найти {{AUR|LXNM}} в [[Arch_User_Repository_(Русский)|AUR]].<br />
<br />
== Установка ==<br />
<br />
LXDE модульный и вы можете выбирать только те пакеты, которые вам нужны. Некоторые пакеты только испытываются, их можно найти в репозитории [[Arch_User_Repository_(Русский)|AUR]].<br />
<br />
Основной минимум пакетов для установки LXDE: {{Pkg|lxde-common}}, {{Pkg|lxsession}}, {{Pkg|desktop-file-utils}}, и оконный менеджер.<br />
<br />
Для установки LXDE используйте команду (пользователь root):<br />
<br />
# pacman -S lxde<br />
<br />
Установятся следующие пакеты:<br />
<br />
* gpicview<br />
* lxappearance<br />
* lxde-common<br />
* lxlauncher<br />
* lxmenu-data<br />
* lxpanel<br />
* lxrandr<br />
* lxsession-lite<br />
* lxtask<br />
* lxterminal<br />
* menu-cache<br />
* openbox<br />
* pcmanfm<br />
<br />
Вам также следует установить [[gamin|Gamin]]. [[gamin|Gamin]] - это инструмент для отслеживания изменений в файлах и директориях, который является реализацией подсистемы FAM. Запуск производится по требованию программ, которые им поддерживаются, поэтому не требуется отдельно демона, подобного [[FAM_(Русский)|FAM]]. Если у Вас установлен [[FAM_(Русский)|FAM]] - удалите запуск этого демона из {{ic|/etc/rc.conf}} и остановите его перед установкой [[gamin|Gamin]]<br />
<br />
pacman -S gamin<br />
<br />
Другие легковесные приложения, которые рекомендуется использовать на слабых системах:<br />
<br />
pacman -S mousepad xarchiver obconf xpdfview<br />
<br />
== Запуск окружения LXDE ==<br />
<br />
Есть несколько способов запустить LXDE. Если Вы используете менеджеры [[SLiM_(Русский)|SLiM]], [[Display_Manager_(Русский)|GDM]], или [[KDM_(Русский)|KDM]], в настройках сессии нужно выбрать LXDE. Для того, чтобы сделать это из консоли есть другой способ.<br />
<br />
Для использования'''startx''' необходимо определить LXDE в файле [[Beginners'_Guide#C:_Test_X|{{ic|~/.xinitrc}}]]:<br />
<br />
exec ck-launch-session startlxde<br />
<br />
Выполнится запуск LXDE с поддержкой [[HAL_(Русский)|HAL]], которая позволит перезагрузить или выключить компьютер из диалога завершения сеанса. Если Вы не хотите использовать [[HAL_(Русский)|HAL]], то добавить следующую строку:<br />
<br />
exec startlxde<br />
<br />
Для того, чтобы запустить LXDE из консоли, без использования {{ic|~/.xinitrc}} (если {{ic|~/.xinitrc}} существует - этот способ работать не будет) выполните:<br />
<br />
$ xinit /usr/bin/startlxde<br />
<br />
* Или через консольную сессию:<br />
<br />
$ xinit /usr/bin/ck-launch-session startlxde<br />
<br />
Если Вы хотите запустить '''startx''' при загрузке, прочитайте статью [[Start X at Boot (Русский)#Запуск X выбранным пользователем без логина | Запуск X при загрузке]].</div>Vladislav.tyulbashevhttps://wiki.archlinux.org/index.php?title=Pm-utils_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=218504Pm-utils (Русский)2012-08-18T15:58:23Z<p>Vladislav.tyulbashev: /* Различные tips & tricks */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Руководства (Русский)]]<br />
[[en:Pm-utils]]<br />
[[it:Pm-utils]]<br />
[[zh-CN:Pm-utils]]<br />
{{DISPLAYTITLE:pm-utils}}<br />
<br />
''pm-utils'' — инфраструктура управления питанием нового поколения, которая была разработана как замена набору скриптов из пакета {{ic|powersave}}<br />
<br />
''pm-utils'' представляет собой коллекцию скриптов для взаимодействия с подсистемой управления питания ядра. Скрипты позволяют облегчить задачу управлением питания для различного оборудования, в том числе за счет возможности указания отдельных сценариев для случая, когда драйверы оборудования содержат ошибки, или, вообще, не имеют собственного функционала по управлению питанем. Коллекция скриптов является свободно модифицируемой. Изменения могут вноситься как вручную - администратором системы, так и автоматически - в результате установки/удаления отдельных пакетов программ, функционирование которых зависит от изменения режимов питания оборудования.<br />
<br />
Также существует менее распространенный инструмент, имеющий схожую функциональность: [[Laptop Mode Tools]]<br />
<br />
Совместно с [[acpid]] и [[cpufrequtils]] pm-utils представляет собой полноценный инструмент управления питанием ноутбука / стационарного компьютера. <br />
<br />
== Основные функциональные возможности ==<br />
<br />
Концепция очень проста: основной скрипт (pm-action, вызываемый через символическую ссылку как pm-suspend или pm-hibernate) выполняет так называемые “hooks”, скрипты, расположенные в /etc/pm/hooks в алфавитном порядке, с параметрами suspend (suspend to RAM) или hibernate (suspend to disk). Как только все “hooks” сделаны, компьютер отправляется в “сон”. После того, как машина снова пробудилась, все “крюки” выполняются в обратном порядке с параметром resume (resume from RAM) или thaw (resume from disk). “Крюки” делают различные вещи, например, готовят bootloader, останавливают подсистему bluetooth или выгружают критические модули.<br />
<br />
Обычно pm-suspend и pm-hibernate вызываются HAL’ом, который в свою очередь вызывается апплетами Рабочего Стола, такими как gnome-power-manager или kpowersave (powerdevil).<br />
<br />
== Установка ==<br />
<br />
Пакет pm-utils доступен в репозитории [http://www.archlinux.org/packages/search/?q=pm-utils Extra]<br />
# pacman -S pm-utils<br />
<br />
{{note|Если у вас возникли проблемы в работе с видеоадаптером после выхода из энергосберегающего режима, возможно, вам будет необходимо установить {{ic|vbetool}} из [extra].}}<br />
<br />
{{Note|Если вы настраиваете систему "с нуля", убедитесь в том, что установлен пакет {{Pkg|acpi}}.}}<br />
<br />
Для проверки можно выполнить команду {{ic|pm-suspend}} или {{ic|pm-hibernate}} от имени пользователя root. Процесс выполнения соответствующих скриптов заносится в журнал {{ic|/var/log/pm-suspend.log}}.<br />
<br />
== Конфигурация ==<br />
<br />
=== Hibernation (suspend2disk) ===<br />
<br />
Чтобы гибернация заработала, необходимо отредактировать файл ''/boot/grub/menu.lst'' от root и добавить '''resume=/path/to/swap/drive''' (напрмиер, /dev/sda2) в опции ядра, напрмиер:<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 root=/dev/sda3 '''resume=/dev/sda2''' ro vga=0<br />
initrd /kernel26.img<br />
<br />
Если вы используете UUID для устройств, восопльзуйтесь следующим примером:<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 cryptdevice=/dev/sda2:main root=/dev/mapper/main-root resume=/dev/disk/by-uuid/1d893194-b151-43cd-a89e-6f89bd8b9f99 ro<br />
initrd /kernel26.img<br />
<br />
=== Дополнительные настройки ===<br />
<br />
Основной файл конфигурации — '''{{ic|/usr/lib/pm-utils/defaults}}'''. Дополнительные файлы могут быть расположены в /etc/pm/config.d. Необходимо отметить, что файлы конфигурации и скрипты должны быть исполняемыми файлами (иметь установленный бит “x”).<br />
<br />
Переменные в '''{{ic|/etc/pm/config}}'''<br />
<br />
SUSPEND_MODULES=”button uhci_hcd” # список модулей, которые должны быть выгружены до остановки<br />
<br />
== Поиск неисправностей ==<br />
<br />
Если suspend или hibernate не сработают корректно, вы вероятно сможете найти некоторую информацию в лог-файле /var/log/pm-suspend.log, например, какие hook'и были запущены и каков был их выход.<br />
<br />
== Создание собственных hook'ов ==<br />
<br />
Если вы хотите сделать нечто специфического во время выполния suspend/hibernate, вы можете легко поместить ваш собственный скрипт в /etc/pm/hooks. Скрипты в этой директории будут вызываться по очереди в алфавитном порядке во время выполнения suspend (в этом причина того, что их название начинается с двух цифр, чтобы сделать порядок выполнения более явным) и в обратном порядке во время выполнения resume.<br />
<br />
Для демонстрации приведём довольно бесполезный скрипт, который просто поместит некоторую информацию в ваш лог-файл:<br />
<br />
#!/bin/sh<br />
case $1 in<br />
hibernate)<br />
echo “Hey guy, we are going to suspend to disk!”<br />
;;<br />
suspend)<br />
echo “Oh, this time we’re doing a suspend to RAM. Cool!”<br />
;;<br />
thaw)<br />
echo “Oh, suspend to disk is over, we are resuming…”<br />
;;<br />
resume)<br />
echo “Hey, the suspend to RAM seems to be over…”<br />
;;<br />
*) echo “somebody is calling me totally wrong.”<br />
;;<br />
esac<br />
<br />
Поместите его в /etc/pm/hooks/66dummy, сделайте chmod +x /etc/pm/hooks/66dummy и оно будет помещать некоторые ссобщения в течение работы suspend/resume.<br />
<br />
Внимание: Все скрипты запускаются от пользователя root. Это означает, что вы должны быть осторожны, создавая временные файлы, проверьте, чтобы переменные PATH были установлены корректно и т.д., чтобы избежать проблем с безопасностью.<br />
<br />
== Устранение неисправностей ==<br />
* Некоторые ноутбуки могут входить в спящий режим слишком медленно (до пяти минут). Одной из причин может быть некорректная работа встроенного Wi-Fi-модуля. Вы можете убедиться в этом, если отключите его в BIOS и попробуете войти в спящий режим еще раз.<br />
* Бывает, что после пробуждения не включается bluetooth.<br />
'''Bluetooth'''<br/><br />
Кроме аппаратного отключения данных беспроводных модулей с помощью кнопки на панели ноутбука, существует также программное отключение. Мониторинг состояния и программный контроль работы беспроводных устройств осуществляется с помощью {{Ic|rfkill}}. Таким образом, для корректного входа и выхода из спящего режима в данном случае необходимо программно выключать и включать устройства. Сделаем это для Bluetooth: создадим специальный скрипт.<br />
Устанавливаем {{Ic|rfkill}}, если он еще не установлен.<br />
{{bc|# pacman -S rfkill}}<br />
Создадим пустой файл с именем {{ic|10_wireless}}.<br />
{{bc|# touch /etc/pm/sleep.d/10_wireless}}<br />
Присвоим ему соответствующие права:<br />
{{bc|# chmod 0755 /etc/pm/sleep.d/10_wireless}}<br />
И отредактируем, добавив в него следующий скрипт:<br />
{{bc|# nano /etc/pm/sleep.d/10_wireless}}<br />
#!/bin/bash<br />
<br />
. /usr/lib/pm-utils/functions<br />
<br />
case "$1" in<br />
hibernate|suspend)<br />
rfkill block bluetooth<br />
;;<br />
thaw|resume)<br />
rfkill unblock bluetooth<br />
;;<br />
*)<br />
;;<br />
esac<br />
<br />
exit<br />
<br />
Как вы могли заметить, скрипт в процессе работы вызывает выполнение команды {{Ic|rfkill (un)block bluetooth}}, то есть выключает/включает bluetooth. За подробностями обратитесь к {{Ic|man rfkill}}.<br />
<br />
'''Wifi'''<br/><br />
Для того, чтобы ноутбук переходил в спящий/ждущий режим быстро (а не в течение 5 минут), и, что немаловажно, возобновлял работу с сетью, нужно создать конфигурационный файл и добавить в него несколько модулей:<br />
Копируем файл конфигурации по умолчанию:<br />
{{bc|# cp /usr/lib/pm-utils/defaults /etc/pm/config.d/config}}<br />
Присваиваем право на исполнение:<br />
{{bc|# chmod +x /etc/pm/config.d/config}}<br />
В данном случае используется драйвер b43 и нам необходимо выгрузить его модули. Выясним, какие модули он использует:<br />
$ lsmod | grep b43<br />
<br />
b43 316457 0 <br />
ssb 48367 1 b43<br />
mmc_core 73353 2 b43,ssb<br />
pcmcia 36097 2 b43,ssb<br />
mac80211 216021 1 b43<br />
cfg80211 160740 2 b43,mac80211<br />
<br />
Далее нам нужно добавить проблемные модули в секцию {{Ic|SUSPEND_MODULES}}.<br />
{{bc|# nano /etc/pm/config.d/config}}<br />
<br />
Пример секции:<br />
{{hc|/usr/lib/pm-utils/defaults<br />
|2=<nowiki><br />
# If you need to unload any modules to suspend/resume, add them here.<br />
SUSPEND_MODULES="button uhci_hcd b43 mac80211 cfg80211 bluetooth"<br />
</nowiki>}}<br />
<br />
== Различные tips & tricks ==<br />
<br />
Вызов suspend вручную<br />
<br />
Если вы хотите вызвать suspend вручную для отладки, без использования HAL или других структур, вызывайте pm-suspend или pm-hibernate от имени пользователя root.<br />
<br />
Внимание: Это полезно для отладки. И было бы хорошо, если бы вы знали, что делаете, используя это.<br />
<br />
Использования suspend-to-RAM на машинах, не входящих в whitelist s2ram<br />
<br />
Если вы хотите вызвать suspend-to-RAM, вам необходимо добавить -f к переменной S2RAM_OPTS в /etc/pm/config. Вы также должны поместить все другие варианты, которые вам необходимы, в эту переменную. Например:<br />
S2RAM_OPTS=”-f -a 3″<br />
<br />
Это может быть хорошей идеей, чтобы сообщить о вашей машине, как о прописанной в S2RAM-Page, так чтобы вам не пришлось этого делать в дальнейшем.<br />
<br />
Отключение “hook'а”<br />
<br />
Если вам не нравится, как работает “крюк”, или он бесполезен, или даже вреден, мы бы оценили bugreport от вас по этому поводу. Вы можете однако просто отключить “крюк”, удалив бит “x” из файла при помощи<br />
chmod -x /etc/pm/hooks/the_hook</div>Vladislav.tyulbashev