diff --git a/content/en/docs/Administration/about-this-document.md b/content/en/docs/Administration/about-this-document.md new file mode 100644 index 0000000000000000000000000000000000000000..bf16211942ebb2b93d7ee4b120d05e77f5778bf3 --- /dev/null +++ b/content/en/docs/Administration/about-this-document.md @@ -0,0 +1,36 @@ +# About This Document + +## Overview + +This document provides common administrator operations of the openEuler system to help administrators better use the system. + +## Intended Audience + +This document is intended for all administrators who use openEuler. + +## Symbol Conventions + +The symbols that may be found in this document are defined as follows. + + + + + + + + + + + + + +

Symbol

+

Description

+

+

Indicates a potentially hazardous situation which, if not avoided, could result in equipment damage, data loss, performance deterioration, or unanticipated results.

+

NOTICE is used to address practices not related to personal injury.

+

+

Supplements the important information in the main text.

+

NOTE is used to address information not related to personal injury, equipment damage, and environment deterioration.

+
+ diff --git a/content/en/docs/Administration/acceleration-engine-application.md b/content/en/docs/Administration/acceleration-engine-application.md new file mode 100644 index 0000000000000000000000000000000000000000..f730d593f39134275e2e1e38e3d0ed190e85b039 --- /dev/null +++ b/content/en/docs/Administration/acceleration-engine-application.md @@ -0,0 +1,7 @@ +# Acceleration Engine Application + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If you have not purchased the engine license, you are advised not to use the KAE engine to invoke the corresponding algorithms. Otherwise, the performance of the OpenSSL encryption algorithm may be affected. + + + diff --git a/content/en/docs/Administration/activating-channel-bonding.md b/content/en/docs/Administration/activating-channel-bonding.md new file mode 100644 index 0000000000000000000000000000000000000000..b0d34d0c18ea8bc4891a0a858b24cccf79a9dcaf --- /dev/null +++ b/content/en/docs/Administration/activating-channel-bonding.md @@ -0,0 +1,42 @@ +# Activating Channel Bonding + +To activate channel bonding, you need to enable all the slave interfaces. Run the following command as the **root** user: + +``` +# ifup enp3s0 +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7) +``` + +``` +# ifup enp4s0 +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8) +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If an interface is in **up** state, run the **ifdown** _enp3s0_ command to change the state to **down**. In the command, _enp3s0_ indicates the actual NIC name. + +After that, enable all the slave interfaces to enable the bonding \(do not set them to **Down**\). + +To enable the NetworkManager to detect the modifications made by the system, run the following command as user **root** user after each modification: + +``` +# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device +``` + +Run the following command to check the status of the bonded interface: + +``` +# ip link show + +1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 +2: enp3s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 + link/ether 52:54:00:aa:ad:4a brd ff:ff:ff:ff:ff:ff +3: enp4s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 + link/ether 52:54:00:aa:da:e2 brd ff:ff:ff:ff:ff:ff +4: virbr0: mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 + link/ether 86:a1:10:fb:ef:07 brd ff:ff:ff:ff:ff:ff +5: virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000 + link/ether 52:54:00:29:35:4c brd ff:ff:ff:ff:ff:ff +``` + diff --git a/content/en/docs/Administration/adding-a-user.md b/content/en/docs/Administration/adding-a-user.md new file mode 100644 index 0000000000000000000000000000000000000000..64bf48559c70a60630aeb1388ef22f92bd3091c1 --- /dev/null +++ b/content/en/docs/Administration/adding-a-user.md @@ -0,0 +1,58 @@ +# Adding a User + +## useradd Command + +Run the **useradd** command as the user **root** to add user information to the system. In the command, _options_ indicates related parameters and _user\_name_ indicates the user name. + +``` +useradd [options] user_name +``` + +## User Information Files + +The following files contain user account information: + +- /etc/passwd: user account information +- /etc/shadow file: user account encryption information +- /etc/group file: group information +- /etc/default/useradd: default configurations +- /etc/login.defs: system wide settings +- /etc/skel: default directory that holds initial configuration files + +## Example + +For example, to create a user named user\_example, run the following command as the user **root**: + +``` +# useradd user_example +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If no prompt is displayed, the user is successfully created. After the user is created, run the **passwd** command to assign a password to the user. A new account without a password will be banned. + +To view information about the new user, run the **id** command: + +``` +# id user_example +uid=502(user_example) gid=502(user_example) groups=502(user_example) +``` + +To change the password of the user\_example, run the following command: + +``` +# passwd user_example +``` + +Then, enter the password and confirm it as prompted: + +``` +# passwd user_example +Changing password for user user_example. +New password: +Retype new password: +passwd: all authentication tokens updated successfully. +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the command output contains** BAD PASSWORD: The password fails the dictionary check - it is too simplistic/sytematic**, the password is too simple and needs to be reset. + diff --git a/content/en/docs/Administration/adding-a-wi-fi-connection.md b/content/en/docs/Administration/adding-a-wi-fi-connection.md new file mode 100644 index 0000000000000000000000000000000000000000..3eff4a065940c6869b0f733bbed3c826ef3aeeae --- /dev/null +++ b/content/en/docs/Administration/adding-a-wi-fi-connection.md @@ -0,0 +1,27 @@ +# Adding a Wi-Fi Connection + +Run the following command to check for available Wi-Fi access points: + +``` +# nmcli dev wifi list +``` + +Run the following command to generate a static IP address configuration that allows Wi-Fi connections automatically allocated by the DNS: + +``` +# nmcli con add con-name Wifi ifname wlan0 type wifi ssid MyWifi ip4 192.168.100.101/24 gw4 192.168.100.1 +``` + +Run the following command to set a WPA2 password, for example, **answer**: + +``` +# nmcli con modify Wifi wifi-sec.key-mgmt wpa-psk +# nmcli con modify Wifi wifi-sec.psk answer +``` + +Run the following command to change the Wi-Fi status: + +``` +# nmcli radio wifi [ on | off ] +``` + diff --git a/content/en/docs/Administration/adding-enabling-and-disabling-software-sources.md b/content/en/docs/Administration/adding-enabling-and-disabling-software-sources.md new file mode 100644 index 0000000000000000000000000000000000000000..34d8eedb75d38d0b53d1d419a5314d5f959beb4c --- /dev/null +++ b/content/en/docs/Administration/adding-enabling-and-disabling-software-sources.md @@ -0,0 +1,42 @@ +# Adding, Enabling, and Disabling Software Sources + +This section describes how to add, enable, and disable the software source repository by running the **dnf config-manager** command. + +## Adding Software Source + +To define a new software repository, you can add the repository part to the /etc/dnf/dnf.conf file or add the .repo file to the /etc/yum.repos.d/ directory. You are advised to add the .repo file. Each software source has its own .repo file. The following describes how to add the .repo file. + +To add such a source to your system, run the following command as the user **root**. After the command is executed, the corresponding .repo file is generated in the **/etc/yum.repos.d/** directory. In the command, _repository\_url_ indicates the repo source address. For details, see [Table 2](modifying-the-configuration-file.md#en-us_topic_0151921080_t2df9dceb0ff64b2f8db8ec5cd779792a). + +``` +dnf config-manager --add-repo repository_url +``` + +## Enabling a Software Repository + +To enable the software source, run the following command as the user **root**. In the command, _repository_ indicates the repository ID in the new .repo file. You can run the **dnf repolist** command to query the repository ID. + +``` +dnf config-manager --set-enable repository +``` + +You can also use a global regular expression to enable all matching software sources. In the command, _glob\_expression_ indicates the regular expression used to match multiple repository IDs. + +``` +dnf config-manager --set-enable glob_expression +``` + +## Disabling a Software Repository + +To disable a software source, run the following command as the user **root**: + +``` +dnf config-manager --set-disable repository +``` + +You can also use a global regular expression to disable all matching software sources. + +``` +dnf config-manager --set-disable glob_expression +``` + diff --git a/content/en/docs/Administration/administration.md b/content/en/docs/Administration/administration.md new file mode 100644 index 0000000000000000000000000000000000000000..3c1b4d0c663a031352c78cbe3b6ddef828b5e74d --- /dev/null +++ b/content/en/docs/Administration/administration.md @@ -0,0 +1 @@ +This document describes common administrator operations in the openEuler system. \ No newline at end of file diff --git a/content/en/docs/Administration/an-error-occurs-when-stripsize-is-set-to-4-during-raid-0-volume-configuration.md b/content/en/docs/Administration/an-error-occurs-when-stripsize-is-set-to-4-during-raid-0-volume-configuration.md new file mode 100644 index 0000000000000000000000000000000000000000..a7a8af39ae403c9c2dcd4e32ce51ffccc54df391 --- /dev/null +++ b/content/en/docs/Administration/an-error-occurs-when-stripsize-is-set-to-4-during-raid-0-volume-configuration.md @@ -0,0 +1,14 @@ +# An Error Occurs When stripsize Is Set to 4 During RAID 0 Volume Configuration + +## Symptom + +An error occurs when the **stripsize** parameter is set to **4** during RAID 0 volume configuration. + +## Possible Cause + +The 64 KB page table can be enabled only in the scenario where **stripsize** is set to **64**. + +## Solution + +You do not need to modify the configuration file. When running the **lvcreate **command on openEuler, set **stripesize** to **64** because the minimum supported stripe size is 64 KB. + diff --git a/content/en/docs/Administration/apache-server.md b/content/en/docs/Administration/apache-server.md new file mode 100644 index 0000000000000000000000000000000000000000..3d53ea04228ac2cfdc92162c6c46aaa1b8f86a2d --- /dev/null +++ b/content/en/docs/Administration/apache-server.md @@ -0,0 +1,5 @@ +# Apache Server + + + + diff --git a/content/en/docs/Administration/application-cases.md b/content/en/docs/Administration/application-cases.md new file mode 100644 index 0000000000000000000000000000000000000000..87e2a624787caf98a0ae711082499873eac51a79 --- /dev/null +++ b/content/en/docs/Administration/application-cases.md @@ -0,0 +1,4 @@ +# Application Cases + + + diff --git a/content/en/docs/Administration/application-scenarios.md b/content/en/docs/Administration/application-scenarios.md new file mode 100644 index 0000000000000000000000000000000000000000..5f31cb6b253dd4bfd8bfefde0891dd66f9a23cbd --- /dev/null +++ b/content/en/docs/Administration/application-scenarios.md @@ -0,0 +1,36 @@ +# Application Scenarios + +The KAE applies to the following scenarios, as shown in [Table 1](#table11915824163418). + +**Table 1** Application scenarios + + + + + + + + + + + + + + + + + + + +

Scenario

+

Data

+

Big data

+

Stream data

+

Data encryption

+

Block data

+

Intelligent security protection

+

Video stream data

+

Web service

+

Handshake connections

+
+ diff --git a/content/en/docs/Administration/authorizing-administrator-accounts.md b/content/en/docs/Administration/authorizing-administrator-accounts.md new file mode 100644 index 0000000000000000000000000000000000000000..7aa65109871b4601611831ade7af9a65b78d7cec --- /dev/null +++ b/content/en/docs/Administration/authorizing-administrator-accounts.md @@ -0,0 +1,4 @@ +# Authorizing Administrator Accounts + + + diff --git a/content/en/docs/Administration/backing-up-a-database-19.md b/content/en/docs/Administration/backing-up-a-database-19.md new file mode 100644 index 0000000000000000000000000000000000000000..c0bd14abf0a53aa43e336a8418e932dce86cf57d --- /dev/null +++ b/content/en/docs/Administration/backing-up-a-database-19.md @@ -0,0 +1,69 @@ +# Backing Up a Database + +Run the **mysqldump** command to back up the database. + +Back up one or more tables. + +``` +mysqldump [options] databasename [tablename ...] > outfile +``` + +Back up one or more databases: + +``` +mysqldump [options] -databases databasename ... > outfile +``` + +Back up all databases: + +``` +mysqldump [options] -all-databases > outputfile +``` + +In the preceding information: + +- _databasename_: database name. +- _tablename_: name of a data table. +- _outfile_: database backup file. +- _options_: parameter option of the **mysqldump** command. Multiple parameters can be separated by spaces. The common parameters of the **mysqldump** command are as follows: + - **-u, --user=**_username_: specifies the username. + - **-p, --password\[=**_password_**\]**: specifies the password. + - **-P, --port=**_portnumber_: specifies the port number. + - **-h, --host=**_hostname_: specifies the hostname. + - **-r, --result-file=**_filename_: saves the export result to a specified file, which is equivalent to **\>**. + - **-t**: backs up data only. + - **-d**: backs up the table structure only. + + +## Example + +\#Back up all the databases of the user **root** on the host **192.168.202.144** through port **3306** to the **alldb.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 --all-databases > alldb.sql +``` + +\#Back up the db1 database of the user **root** on the host **192.168.202.144** through port **3306** to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 --databases db1 > db1.sql +``` + +\#Back up the tb1 table of the db1 database of the user **root** on the host **192.168.202.144** through port **3306 **to the **db1tb1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 db1 tb1 > db1tb1.sql +``` + +\#Back up only the table structure of the db1 database of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 -d db1 > db1.sql +``` + +\#Back up only the data of the db1 database of the user **root** on the host **192.168.202.144** through port **3306 **to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 > db1.sq +``` + diff --git a/content/en/docs/Administration/backing-up-a-database-40.md b/content/en/docs/Administration/backing-up-a-database-40.md new file mode 100644 index 0000000000000000000000000000000000000000..9f9b183c8ba1054014072b4cc82337c1ed34e254 --- /dev/null +++ b/content/en/docs/Administration/backing-up-a-database-40.md @@ -0,0 +1,69 @@ +# Backing Up a Database + +Run the **mysqldump** command to back up the database. + +Back up one or more tables: + +``` +mysqldump [options] databasename [tablename ...] > outfile +``` + +Back up one or more databases: + +``` +mysqldump [options] -databases databasename ... > outfile +``` + +Back up all databases: + +``` +mysqldump [options] -all-databases > outputfile +``` + +In the preceding information: + +- _databasename_: database name. +- _tablename_: name of a data table. +- _outfile_: database backup file. +- _options_: parameter option of the **mysqldump** command. Multiple parameters can be separated by spaces. The common parameters of the **mysqldump** command are as follows: + - **-u, --user=**_username_: specifies the username. + - **-p, --password\[=**_password_**\]**: specifies the password. + - **-P, --port=**_portnumber_: specifies the port number. + - **-h, --host=**_hostname_: specifies the hostname. + - **-r, --result-file=**_filename_: saves the export result to a specified file, which is equivalent to **\>**. + - **-t**: backs up data only. + - **-d**: backs up the table structure only. + + +## Example + +\#Back up all the databases of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **alldb.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 --all-databases > alldb.sql +``` + +\#Back up the db1 database of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 --databases db1 > db1.sql +``` + +\#Back up the tb1 table of the db1 database of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1tb1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 db1 tb1 > db1tb1.sql +``` + +\#Back up only the table structure of the db1 database of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 -d db1 > db1.sql +``` + +\#Back up only the table structure of the db1 database of user **root** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1.sql** file. + +``` +# mysqldump -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 > db1.sq +``` + diff --git a/content/en/docs/Administration/backing-up-a-database.md b/content/en/docs/Administration/backing-up-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..244d5797967a534a6f62c3cd1cea4729916f7118 --- /dev/null +++ b/content/en/docs/Administration/backing-up-a-database.md @@ -0,0 +1,29 @@ +# Backing Up a Database + +Run the **pg\_dump** command to back up the database and dump the database to a script file or another archive file. + +``` +pg_dump [option]... [databasename] > outfile +``` + +In the preceding information: + +- _databasename_: database name. If this parameter is not specified, the environment variable **PGDATABASE** is used. If that environment variable is not specified, use the username that initiates the connection. +- _outfile_: database backup file. +- _option_: parameter option of the **pg\_dump** command. Multiple parameters can be separated by spaces. The common parameters of the **pg\_dump** command are as follows: + - **-f **_filename_**, --file=**_filename_: specified output file. If this parameter is ignored, the standard output is used. + - **-d, --dbname=**_databasename_: database to be dumped. + - **-h, --host=**_hostname_: specifies the hostname. + - **-p, --port=**_portnumber_: port number. + - **-U, --username=**_username_: username of the connection. + - **-W, --password**: forces PostgreSQL to prompt for a password before connecting to a database. + + +## Example + +\#Back up the database1 database of user **postgres** on port **3306** of the host whose IP address is **192.168.202.144** to the **db1.sql** file. + +``` +$ pg_dump -h 192.168.202.144 -p 3306 -U postgres -W database1 > db1.sql +``` + diff --git a/content/en/docs/Administration/basic-configuration.md b/content/en/docs/Administration/basic-configuration.md new file mode 100644 index 0000000000000000000000000000000000000000..0bad5ddc1104f3a46192a8a739cae62c881dd4c6 --- /dev/null +++ b/content/en/docs/Administration/basic-configuration.md @@ -0,0 +1,4 @@ +# Basic Configuration + + + diff --git a/content/en/docs/Administration/changing-a-runlevel.md b/content/en/docs/Administration/changing-a-runlevel.md new file mode 100644 index 0000000000000000000000000000000000000000..323a7742dbf79484b2ef096b402c0a3b5e6c5571 --- /dev/null +++ b/content/en/docs/Administration/changing-a-runlevel.md @@ -0,0 +1,139 @@ +# Changing a Runlevel + +## Targets and Runlevels + +In systemd, the concept of runlevels has been replaced with systemd targets to improve flexibility. For example, you can inherit an existing target and turn it into your own target by adding other services. [Table 1](#en-us_topic_0151920939_t9af92c282ad240ea9a79fb08d26e8181) provides a complete list of runlevels and their corresponding systemd targets. + +**Table 1** Mapping between runlevels and targets + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Runlevel

+

systemd Target

+

Description

+

0

+

runlevel0.target, poweroff.target

+

The operating system is powered off.

+

1, s, single

+

runlevel1.target, rescue.target

+

The operating system is in single user mode.

+

2, 4

+

runlevel2.target, runlevel4.target, multi-user.target

+

The operating system is in user-defined or domain-specific runlevel (by default, it is equivalent to runlevel 3).

+

3

+

runlevel3.target, multi-user.target

+

The operating system is in non-graphical multi-user mode, and can be accessed from multiple consoles or networks.

+

5

+

runlevel5.target, graphical.target

+

The operating system is in graphical multi-user mode. All the services running at level 3 can be accessed through graphical login.

+

6

+

runlevel6.target, reboot.target

+

The operating system is rebooted.

+

emergency

+

emergency.target

+

Emergency shell.

+
+ +## Viewing the Default Startup Target + +Run the following command to view the default startup target of the system: + +``` +systemctl get-default +``` + +## Viewing All Startup Targets + +Run the following command to view all startup targets of the system: + +``` +systemctl list-units --type=target +``` + +## Changing the Default Target + +To change the default target, run the following command as the user **root**: + +``` +systemctl set-default name.target +``` + +## Changing the Current Target + +To change the current target, run the following command as the user **root**: + +``` +systemctl isolate name.target +``` + +## Changing to Rescue Mode + +To change the operating system to rescue mode, run the following command as the user **root**: + +``` +systemctl rescue +``` + +This command is similar to the **systemctl isolate rescue.target** command. After the command is executed, the following information is displayed on the serial port: + +``` +You are in rescue mode. After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" or "exit"to boot into default mode. +Give root password for maintenance +(or press Control-D to continue): +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>You need to restart the system to enter the normal working mode from the rescue mode. + +## Changing to Emergency Mode + +To change the operating system to emergency mode, run the following command as the user **root**: + +``` +systemctl emergency +``` + +This command is similar to the **systemctl isolate emergency.target** command. After the command is executed, the following information is displayed on the serial port: + +``` +You are in emergency mode. After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" or "exit"to boot into default mode. +Give root password for maintenance +(or press Control-D to continue): +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>You need to restart the system to enter the normal working mode from the emergency mode. + diff --git a/content/en/docs/Administration/check-and-update.md b/content/en/docs/Administration/check-and-update.md new file mode 100644 index 0000000000000000000000000000000000000000..6c0d4a68d1daf1c5fc2a5133c26ab9c487871613 --- /dev/null +++ b/content/en/docs/Administration/check-and-update.md @@ -0,0 +1,76 @@ +# Check and Update + +You can use the DNF to check whether any software package in your system needs to be updated. You can use the DNF to list the software packages to be updated. You can choose to update all packages at a time or update only specified packages. + +## Checking For Update + +To list all currently available updates, run the following command: + +``` +dnf check-update +``` + +The following is an example: + +``` +# dnf check-update +Last metadata expiration check: 0:02:10 ago on Sun 01 Sep 2019 11:28:07 PM CST. + +anaconda-core.aarch64 19.31.123-1.14 updates +anaconda-gui.aarch64 19.31.123-1.14 updates +anaconda-tui.aarch64 19.31.123-1.14 updates +anaconda-user-help.aarch64 19.31.123-1.14 updates +anaconda-widgets.aarch64 19.31.123-1.14 updates +bind-libs.aarch64 32:9.9.4-29.3 updates +bind-libs-lite.aarch64 32:9.9.4-29.3 updates +bind-license.noarch 32:9.9.4-29.3 updates +bind-utils.aarch64 32:9.9.4-29.3 updates +... +``` + +## Upgrade + +To upgrade a single software package, run the following command as the user **root**: + +``` +dnf update package_name +``` + +For example, to upgrade the RPM package, run the following command: + +``` +# dnf update anaconda-gui.aarch64 +Last metadata expiration check: 0:02:10 ago on Sun 01 Sep 2019 11:30:27 PM CST. +Dependencies Resolved +================================================================================ + Package Arch Version Repository Size +================================================================================ +Updating: + anaconda-gui aarch64 19.31.123-1.14 updates 461 k + anaconda-core aarch64 19.31.123-1.14 updates 1.4 M + anaconda-tui aarch64 19.31.123-1.14 updates 274 k + anaconda-user-help aarch64 19.31.123-1.14 updates 315 k + anaconda-widgets aarch64 19.31.123-1.14 updates 748 k + +Transaction Summary +================================================================================ +Upgrade 5 Package + +Total download size: 3.1 M +Is this ok [y/N]: +``` + +Similarly, to upgrade a software package group, run the following command as the user **root**: + +``` +dnf group update group_name +``` + +## Updating All Packages and Their Dependencies + +To update all packages and their dependencies, run the following command as the user **root**: + +``` +dnf update +``` + diff --git a/content/en/docs/Administration/checking-whether-the-bonding-kernel-module-is-installed.md b/content/en/docs/Administration/checking-whether-the-bonding-kernel-module-is-installed.md new file mode 100644 index 0000000000000000000000000000000000000000..316ffd66e21a4f36661582ef7de1179b63d4b79f --- /dev/null +++ b/content/en/docs/Administration/checking-whether-the-bonding-kernel-module-is-installed.md @@ -0,0 +1,16 @@ +# Checking Whether the Bonding Kernel Module Is Installed + +By default, the bonding kernel module is loaded. To load this module, run the following command as the** root** user: + +``` +# modprobe --first-time bonding +``` + +Run the following command to display the information about the module: + +``` +# modinfo bonding +``` + +For more commands, run the modprobe --help command. + diff --git a/content/en/docs/Administration/configuration-description.md b/content/en/docs/Administration/configuration-description.md new file mode 100644 index 0000000000000000000000000000000000000000..2a68b706946ce1bcdc27dcff9d1639026a2ad208 --- /dev/null +++ b/content/en/docs/Administration/configuration-description.md @@ -0,0 +1,4 @@ +# Configuration Description + + + diff --git a/content/en/docs/Administration/configuration-differences-of-the-networkmanager-service.md b/content/en/docs/Administration/configuration-differences-of-the-networkmanager-service.md new file mode 100644 index 0000000000000000000000000000000000000000..be48d26d743e0ddd4f1e0d347684bd0560bc646e --- /dev/null +++ b/content/en/docs/Administration/configuration-differences-of-the-networkmanager-service.md @@ -0,0 +1,155 @@ +# Configuration Differences of the NetworkManager Service + +## Overview + +The NetworkManager service uses the ifup/ifdown logical interface definition to perform advanced network settings. Most of the parameters are set in the /etc/sysconfig/network and /etc/sysconfig/network-scripts/ifcfg- configuration files. The former is a global setting, and the latter is a setting of a specified NIC. When the two settings conflict, the latter takes effect. + +## Configuration Differences + +The configuration differences in /etc/sysconfig/network are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

IPv4

+

IPv6

+

Description

+

NA

+

IPV6FORWARDING=yes|no

+

IPv6 forwarding. By default, IPv6 packets are not forwarded.

+

NA

+

IPV6_AUTOCONF=yes|no

+

If IPv6 forwarding is enabled, the value is no. Otherwise, the value is yes.

+

NA

+

IPV6_ROUTER=yes|no

+

If IPv6 forwarding is enabled, the value is yes. Otherwise, the value is no.

+

NA

+

IPV6_AUTOTUNNEL=yes|no

+

Indicates the automatic tunnel mode. The default value is no.

+

GATEWAY

+

IPV6_DEFAULTGW=<IPv6 address[%interface]> (optional)

+

Indicates the default gateway in IPv6.

+

NA

+

IPV6_DEFAULTDEV=<interface> (optional)

+

Specifies the default forwarding NIC.

+

NA

+

IPV6_RADVD_PIDFILE=<pid-file> (optional)

+

The default path of ipv6_radvd_pid is /var/run/radvd/radvd.pid.

+

NA

+

IPV6_RADVD_TRIGGER_ACTION=startstop|reload|restart|SIGHUP (optional)

+

Default radvd trigger action.

+
+ +The differences in /etc/sysconfig/network-scripts/ifcfg- are as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

IPv4

+

IPv6

+

Description

+

IPADDRn

+

IPV6ADDR=<IPv6 address>[/<prefix length>]

+

indicates the IP address.

+

PREFIXn

+

NA

+

The network prefix, network alias, and PPP are invalid. The priority is higher than that of NETMASK.

+

NETMASKn

+

NA

+

Indicates the subnet mask. It is used only for the alias and PPP.

+

GATEWAY

+

IPV6_DEFAULTGW=<IPv6 address[%interface]> (optional)

+

Default gateway

+

MTU

+

IPV6_MTU=<MTU of link> (optional)

+

Default MTU

+

IPV4_FAILURE_FATAL=yes|no

+

IPV6_FAILURE_FATAL

+

The default value is no. If this parameter is set to yes, ifup-eth exits when dhclient fails.

+

NA

+

IPV6_PRIVACY=rfc3041

+

Disabled by default.

+

NA

+

IPV6INIT=yes|no

+

IPv6 is enabled by default.

+

NA

+

IPV6FORWARDING=yes|no

+

This function is disabled by default and has been discarded.

+
+ diff --git a/content/en/docs/Administration/configuration-file-description-4.md b/content/en/docs/Administration/configuration-file-description-4.md new file mode 100644 index 0000000000000000000000000000000000000000..3eed4f185d46c0e66a664c3ea4ee168d20f3c78a --- /dev/null +++ b/content/en/docs/Administration/configuration-file-description-4.md @@ -0,0 +1,39 @@ +# Configuration File Description + +After the Nginx service is started, it reads the configuration file shown in [Table 1](#table24341012096) by default. + +**Table 1** Configuration file description + + + + + + + + + + + + + +

File

+

Description

+

/etc/nginx/nginx.conf

+

Main configuration files.

+

/etc/nginx/conf.d

+

Secondary directory of configuration files, which are also contained in the main configuration file.

+

The secondary directory of a configuration file is contained in the main configuration file.

+
+ +Although the default configuration can be used in most cases, you need to be familiar with some important configuration items. After the configuration file is modified, run the following command to check the syntax errors that may occur in the configuration file: + +``` +# /usr/sbin/nginx -t +``` + +If the command output contains **syntax is ok**, the syntax of the configuration file is correct. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- Before modifying the configuration file, back up the original file so that the configuration file can be quickly restored if a fault occurs. +>- The modified configuration file takes effect only after the web service is restarted. + diff --git a/content/en/docs/Administration/configuration-file-description.md b/content/en/docs/Administration/configuration-file-description.md new file mode 100644 index 0000000000000000000000000000000000000000..84d1f535075a4bb849ee519e66773cc5363dc436 --- /dev/null +++ b/content/en/docs/Administration/configuration-file-description.md @@ -0,0 +1,43 @@ +# Configuration File Description + +After the httpd service is started, it reads the configuration file shown in [Table 1](#table24341012096) by default. + +**Table 1** Configuration file description + + + + + + + + + + + + + +

File

+

Description

+

/etc/httpd/conf/httpd.conf

+

Main configuration files.

+

/etc/httpd/conf.d

+

Secondary directory of configuration files, which are also contained in the main configuration file.

+

The secondary directory of a configuration file is contained in the main configuration file.

+
+ +Although the default configuration can be used in most cases, you need to be familiar with some important configuration items. After the configuration file is modified, run the following command to check the syntax errors that may occur in the configuration file: + +``` +# apachectl configtest +``` + +If the following information is displayed, the syntax of the configuration file is correct: + +``` +Syntax OK +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- Before modifying the configuration file, back up the original file so that the configuration file can be quickly restored if a fault occurs. +>- The modified configuration file takes effect only after the web service is restarted. + diff --git a/content/en/docs/Administration/configuring-a-firewall.md b/content/en/docs/Administration/configuring-a-firewall.md new file mode 100644 index 0000000000000000000000000000000000000000..5a7ae43ff14a0061e5b16773e6ce9eac8a477365 --- /dev/null +++ b/content/en/docs/Administration/configuring-a-firewall.md @@ -0,0 +1,12 @@ +# Configuring a Firewall + +To open the FTP service to the Internet, you need to configure the firewall and SElinux. + +``` +# firewall-cmd --add-service=ftp --permanent +success +# firewall-cmd --reload +success +# setsebool -P ftpd_full_access on +``` + diff --git a/content/en/docs/Administration/configuring-a-host-name-by-running-the-hostnamectl-command.md b/content/en/docs/Administration/configuring-a-host-name-by-running-the-hostnamectl-command.md new file mode 100644 index 0000000000000000000000000000000000000000..0b4fbec72c160d331d91a9ccb23294e9a60e97ad --- /dev/null +++ b/content/en/docs/Administration/configuring-a-host-name-by-running-the-hostnamectl-command.md @@ -0,0 +1,59 @@ +# Configuring a Host Name by Running the **hostnamectl** Command + +## Viewing All Host Names + +Run the following command to view the current host name: + +``` +# hostnamectl status +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If no option is specified in the command, the **status** option is used by default. + +## Setting All Host Names + +Run the following command as the **root** user to set all host names: + +``` +# hostnamectl set-hostname name +``` + +## Setting a Specific Host Name + +Run the following command as the **root** user to set a specific host name: + +``` +# hostnamectl set-hostname name [option...] +``` + +The option may be one or more of **--pretty**, **--static**, and **--transient**. + +If **--static** or **--transient** is used together with **--pretty**, the host names of the **static** or **transient** type will be simplified to the host names of the **pretty** type with spaces replaced with hyphens \(-\) and special characters deleted. + +When setting a host name of the **pretty** type, use quotation marks if the host name contains spaces or single quotation marks. An example is as follows: + +``` +# hostnamectl set-hostname "Stephen's notebook" --pretty +``` + +## Clearing a Specific Host Name + +To clear a specific host name and restore it to the default format, run the following command as the **root** user: + +``` +# hostnamectl set-hostname "" [option...] +``` + +In the preceding command, **""** is a blank character string, and the _option_ may be one or more of **--pretty**, **--static**, and **--transient**. + +## Remotely Changing a Host Name + +To change the host name in a remote system, run the **hostnamectl** command with the **-H** or **--host** option. + +``` +# hostnamectl set-hostname -H [username]@hostname new_hostname +``` + +In the preceding command, _hostname_ indicates the name of the remote host to be configured, _username _indicates the user-defined name, and _new\_hostname_ indicates the new host name. **hostnamectl** is used to connect to the remote system through SSH. + diff --git a/content/en/docs/Administration/configuring-a-host-name-by-running-the-nmcli-command.md b/content/en/docs/Administration/configuring-a-host-name-by-running-the-nmcli-command.md new file mode 100644 index 0000000000000000000000000000000000000000..5580ff608de2cdb64e01bd6ff9c8a6f7cfd0f8bd --- /dev/null +++ b/content/en/docs/Administration/configuring-a-host-name-by-running-the-nmcli-command.md @@ -0,0 +1,20 @@ +# Configuring a Host Name by Running the nmcli Command + +To query a static host name, run the following command: + +``` +# nmcli general hostname +``` + +To name a static host as **host-server**, run the following command as user root: + +``` +# nmcli general hostname host-server +``` + +To enable the system to detect the change of the static host name, run the following command as the **root** user to restart the hostnamed service: + +``` +# systemctl restart systemd-hostnamed +``` + diff --git a/content/en/docs/Administration/configuring-a-host-name.md b/content/en/docs/Administration/configuring-a-host-name.md new file mode 100644 index 0000000000000000000000000000000000000000..65e36bc938f4dc253cc4fce99078d640978a8082 --- /dev/null +++ b/content/en/docs/Administration/configuring-a-host-name.md @@ -0,0 +1,4 @@ +# Configuring a Host Name + + + diff --git a/content/en/docs/Administration/configuring-a-static-route-0.md b/content/en/docs/Administration/configuring-a-static-route-0.md new file mode 100644 index 0000000000000000000000000000000000000000..e58bc212ddf55eab6df7d9caaded330afa7d4447 --- /dev/null +++ b/content/en/docs/Administration/configuring-a-static-route-0.md @@ -0,0 +1,38 @@ +# Configuring a Static Route + +## Configuring a Static Route + +To add a static route to the routing table, run the** ip route add** command. To delete a route, run the **ip route del** command. The following shows the common format of the **ip route** command: + +``` +ip route [ add | del | change | append | replace ] destination-address +``` + +To display the current IP routing table, run the **ip route** command. The following is an example: + +``` +# ip route + +default via 192.168.0.1 dev enp3s0 proto dhcp metric 100 +default via 192.168.0.1 dev enp4s0 proto dhcp metric 101 +192.168.0.0/16 dev enp3s0 proto kernel scope link src 192.168.202.248 metric 100 +192.168.0.0/16 dev enp4s0 proto kernel scope link src 192.168.203.12 metric 101 +192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown +``` + +To add a static route to the host address, run the following command as the user **root**: + +``` +ip route add 192.168.2.1 via 10.0.0.1 [dev interface-name] +``` + +In the preceding command, **192.168.2.1** is the IP address in the dot-decimal notation, **10.0.0.1** is the next hop, and _interface-name_ is the exit interface for entering the next hop. + +To add a static route to the network, that is, an IP address that represents an IP address range, run the following command as the user **root**: + +``` +ip route add 192.168.2.0/24 via 10.0.0.1 [dev interface-name] +``` + +In the preceding command, **192.168.2.1** is the IP address of the target network, _10.0.0.1_ is the network prefix, and _interface-name_ is the NIC name. + diff --git a/content/en/docs/Administration/configuring-a-static-route.md b/content/en/docs/Administration/configuring-a-static-route.md new file mode 100644 index 0000000000000000000000000000000000000000..ce770fd4d02ab007be020c63cc0d0296ff976d05 --- /dev/null +++ b/content/en/docs/Administration/configuring-a-static-route.md @@ -0,0 +1,28 @@ +# Configuring a Static Route + +- Run the nmcli command to configure a static route for a network connection: + + ``` + # nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1" + ``` + + +- Run the following command to configure the static route using the editor: + + ``` + # nmcli con edit type ethernet con-name enp3s0 + ===| nmcli interactive connection editor |=== + Adding a new '802-3-ethernet' connection + Type 'help' or '?' for available commands. + Type 'describe [.]' for detailed property description. + You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb + nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1 + nmcli> + nmcli> save persistent + Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. + Do you still want to save? [yes] yes + Connection 'enp3s0' (1464ddb4-102a-4e79-874a-0a42e15cc3c0) successfully saved. + nmcli> quit + ``` + + diff --git a/content/en/docs/Administration/configuring-an-ip-address.md b/content/en/docs/Administration/configuring-an-ip-address.md new file mode 100644 index 0000000000000000000000000000000000000000..e2e323cfc5ef4d46fb329de1a4fd08630ef25b98 --- /dev/null +++ b/content/en/docs/Administration/configuring-an-ip-address.md @@ -0,0 +1,4 @@ +# Configuring an IP Address + + + diff --git a/content/en/docs/Administration/configuring-dynamic-ip-connections.md b/content/en/docs/Administration/configuring-dynamic-ip-connections.md new file mode 100644 index 0000000000000000000000000000000000000000..0e6183dae36543655fa2e9ce322976f05958d6ed --- /dev/null +++ b/content/en/docs/Administration/configuring-dynamic-ip-connections.md @@ -0,0 +1,41 @@ +# Configuring Dynamic IP Connections + +## Configuring IP Addresses + +When DHCP is used to allocate a network, run the following command to add a network configuration file: + +``` +nmcli connection add type ethernet con-name connection-name ifname interface-name +``` + +For example, to create a dynamic connection configuration file named **net-test**, run the following command: + +``` +# nmcli connection add type ethernet con-name net-test ifname enp3s0 +Connection 'net-test' (a771baa0-5064-4296-ac40-5dc8973967ab) successfully added. +``` + +The NetworkManager sets **connection.autoconnect** to **yes** and saves the setting to the **/etc/sysconfig/network-scripts/ifcfg-net-test** file. In the **/etc/sysconfig/network-scripts/ifcfg-net-test** file, **ONBOOT** is set to **yes**. + +## Activating a Connection and Checking Device Connection Status + +Run the following command to activate a network connection: + +``` +# nmcli con up net-test +Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5) +``` + +Run the following command to check the connection status of devices: + +``` +# nmcli device status + +DEVICE TYPE STATE CONNECTION +enp4s0 ethernet connected enp4s0 +enp3s0 ethernet connected net-test +virbr0 bridge connected virbr0 +lo loopback unmanaged -- +virbr0-nic tun unmanaged -- +``` + diff --git a/content/en/docs/Administration/configuring-ip-addresses.md b/content/en/docs/Administration/configuring-ip-addresses.md new file mode 100644 index 0000000000000000000000000000000000000000..d747220fde069f0ccb75ff67d05af63cb0838c64 --- /dev/null +++ b/content/en/docs/Administration/configuring-ip-addresses.md @@ -0,0 +1,51 @@ +# Configuring IP Addresses + +Run the **ip** command to configure an IP address for the interface. The command format is as follows, where _interface-name_ indicates the NIC name. + +``` +ip addr [ add | del ] address dev interface-name +``` + +## Configuring a Static IP Address + +Run the following command as the user **root** to configure an IP address: + +``` +# ip address add 192.168.0.10/24 dev enp3s0 +``` + +Run the following command to view the configuration result: + +``` +# ip addr show dev enp3s0 +2: enp3s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 + link/ether 52:54:00:aa:ad:4a brd ff:ff:ff:ff:ff:ff + inet 192.168.202.248/16 brd 192.168.255.255 scope global dynamic noprefixroute enp3s0 + valid_lft 9547sec preferred_lft 9547sec + inet 192.168.0.10/24 scope global enp3s0 + valid_lft forever preferred_lft forever + inet6 fe80::32e8:cc22:9db2:f4d4/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` + +## Configuring Multiple IP Addresses + +The **ip** command can be used to assign multiple IP addresses to an interface. You can run the **ip** command multiple times to assign IP addresses to an interface. The following is an example: + +``` +# ip address add 192.168.2.223/24 dev enp4s0 +# ip address add 192.168.4.223/24 dev enp4s0 +# ip addr + +3: enp4s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 + link/ether 52:54:00:aa:da:e2 brd ff:ff:ff:ff:ff:ff + inet 192.168.203.12/16 brd 192.168.255.255 scope global dynamic noprefixroute enp4s0 + valid_lft 8389sec preferred_lft 8389sec + inet 192.168.2.223/24 scope global enp4s0 + valid_lft forever preferred_lft forever + inet 192.168.4.223/24 scope global enp4s0 + valid_lft forever preferred_lft forever + inet6 fe80::1eef:5e24:4b67:f07f/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` + diff --git a/content/en/docs/Administration/configuring-network-bonding-by-using-a-command-line.md b/content/en/docs/Administration/configuring-network-bonding-by-using-a-command-line.md new file mode 100644 index 0000000000000000000000000000000000000000..5d9a963f557661618f84c3b48896410f69718163 --- /dev/null +++ b/content/en/docs/Administration/configuring-network-bonding-by-using-a-command-line.md @@ -0,0 +1,13 @@ +# Configuring Network Bonding by Using a Command Line + +- **[Checking Whether the Bonding Kernel Module Is Installed](checking-whether-the-bonding-kernel-module-is-installed.md)** + +- **[Creating a Channel Bonding Interface](creating-a-channel-bonding-interface.md)** + +- **[Creating a Slave Interface](creating-a-slave-interface.md)** + +- **[Activating Channel Bonding](activating-channel-bonding.md)** + +- **[Creating Multiple Bondings](creating-multiple-bondings.md)** + + diff --git a/content/en/docs/Administration/configuring-network-bonding.md b/content/en/docs/Administration/configuring-network-bonding.md new file mode 100644 index 0000000000000000000000000000000000000000..c9e9fba514b63c28cd25345e328e10db3806f2f3 --- /dev/null +++ b/content/en/docs/Administration/configuring-network-bonding.md @@ -0,0 +1,4 @@ +# Configuring Network Bonding + + + diff --git a/content/en/docs/Administration/configuring-repo-as-the-yum-source.md b/content/en/docs/Administration/configuring-repo-as-the-yum-source.md new file mode 100644 index 0000000000000000000000000000000000000000..a752fa25e6ddf93e8bfd0eb8575621489eeeae51 --- /dev/null +++ b/content/en/docs/Administration/configuring-repo-as-the-yum-source.md @@ -0,0 +1,38 @@ +# Configuring repo as the yum Source + +You can configure the built repo as the yum source and create the \*\*\*.repo configuration file \(the extension .repo is mandatory\) in the /etc/yum.repos.d/ directory. You can configure the yum source on the local host or HTTP server. + +- Configuring the local yum source. + + Create the **openEuler.repo** file in the **/etc/yum.repos.d** directory and use the local repository as the yum source. The content of the **openEuler.repo** file is as follows: + + ``` + [base] + name=base + baseurl=file:///srv/repo + enabled=1 + gpgcheck=1 + gpgkey=file:///srv/repo/RPM-GPG-KEY-openEuler + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >_gpgcheck_ indicates whether to enable the GNU privacy guard \(GPG\) to check the validity and security of sources of RPM packages. **1** indicates GPG check is enabled. **0** indicates the GPG check is disabled. If this option is not specified, the GPG check is enabled by default. + >_gpgkey_ is the storage path of the signature public key. + +- Configuring the yum source for the HTTP server + + Create the **openEuler.repo** file in the **/etc/yum.repos.d** directory and use the repository on the HTTP server as the yum source. The content of the **openEuler.repo** file is as follows: + + ``` + [base] + name=base + baseurl=http://192.168.1.2/ + enabled=1 + gpgcheck=1 + gpgkey=http://192.168.1.2/RPM-GPG-KEY-openEuler + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >192.168.1.2 is an example. Replace it with the actual IP address. + + diff --git a/content/en/docs/Administration/configuring-services.md b/content/en/docs/Administration/configuring-services.md new file mode 100644 index 0000000000000000000000000000000000000000..e1d62b6d851d40863daf8a0605ce9b8cc3c520a1 --- /dev/null +++ b/content/en/docs/Administration/configuring-services.md @@ -0,0 +1,4 @@ +# Configuring Services + + + diff --git a/content/en/docs/Administration/configuring-static-ip-connections.md b/content/en/docs/Administration/configuring-static-ip-connections.md new file mode 100644 index 0000000000000000000000000000000000000000..c4c3d1a7ad608d1797ec22e7293b6f496313a73e --- /dev/null +++ b/content/en/docs/Administration/configuring-static-ip-connections.md @@ -0,0 +1,94 @@ +# Configuring Static IP Connections + +## Configuring IP Addresses + +To add a static IPv4 network connection, run the following command: + +``` +nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>To add an IPv6 address and related gateway information, use the **ip6** and **gw6** options. + +For example, to create a static connection configuration file named **net-static**, run the following command: + +``` +# nmcli con add type ethernet con-name net-static ifname enp3s0 ip4 192.168.0.10/24 gw4 192.168.0.254 +``` + +You can also specify the IPv6 address and gateway for the device. The following is an example: + +``` +# nmcli con add type ethernet con-name test-lab ifname enp3s0 ip4 192.168.0.10/24 gw4 192.168.0.254 ip6 abbe::**** gw6 2001:***::* +Connection 'net-static' (63aa2036-8665-f54d-9a92-c3035bad03f7) successfully added. +``` + +The NetworkManager sets the internal parameter **ipv4.method** to **manual**, **connection.autoconnect** to **yes**, and writes the setting to the **/etc/sysconfig/network-scripts/ifcfg-my-office** file. In the file, **BOOTPROTO** is set to **none**, and **ONBOOT** is set to **yes**. + +Run the following command to set IPv4 addresses of two DNS servers: + +``` +# nmcli con mod net-static ipv4.dns "*.*.*.* *.*.*.*" +``` + +Run the following command to set IPv6 addresses of two DNS servers: + +``` +# nmcli con mod net-static ipv6.dns "2001:4860:4860::**** 2001:4860:4860::****" +``` + +## Activating a Connection and Checking Device Connection Status + +Run the following command to activate a network connection: + +``` +# nmcli con up net-static ifname enp3s0 +Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6) +``` + +Run the following command to check the connection status of devices: + +``` +# nmcli device status + +DEVICE TYPE STATE CONNECTION +enp4s0 ethernet connected enp4s0 +enp3s0 ethernet connected net-static +virbr0 bridge connected virbr0 +lo loopback unmanaged -- +virbr0-nic tun unmanaged -- +``` + +Run the following command to view the connection details \(with the **-p** and **--pretty** options to add the title and segment to the output\): + +``` +# nmcli -p con show net-static +=============================================================================== +Connection profile details (net-static ) +=============================================================================== +connection.id: net-static +connection.uuid: b9f18801-6084-4aee-af28-c8f0598ff5e1 +connection.stable-id: -- +connection.type: 802-3-ethernet +connection.interface-name: enp3s0 +connection.autoconnect: yes +connection.autoconnect-priority: 0 +connection.autoconnect-retries: -1 (default) +connection.multi-connect: 0 (default) +connection.auth-retries: -1 +connection.timestamp: 1578988781 +connection.read-only: no +connection.permissions: -- +connection.zone: -- +connection.master: -- +connection.slave-type: -- +connection.autoconnect-slaves: -1 (default) +connection.secondaries: -- +connection.gateway-ping-timeout: 0 +connection.metered: unknown +connection.lldp: default +connection.mdns: -1 (default) +connection.llmnr: -1 (default) +``` + diff --git a/content/en/docs/Administration/configuring-the-database-accounts-and-passwords.md b/content/en/docs/Administration/configuring-the-database-accounts-and-passwords.md new file mode 100644 index 0000000000000000000000000000000000000000..76600141fae2148b204bbf5f2f1756c330fe4c5b --- /dev/null +++ b/content/en/docs/Administration/configuring-the-database-accounts-and-passwords.md @@ -0,0 +1,11 @@ +# Configuring the Database Accounts and Passwords + +1. After login, set the postgres user password. + + ``` + postgres=#alter user postgres with password '123456'; + ``` + + ![](figures/en-us_image_0230050789.png) + + diff --git a/content/en/docs/Administration/configuring-the-dnf.md b/content/en/docs/Administration/configuring-the-dnf.md new file mode 100644 index 0000000000000000000000000000000000000000..481dc209e171de03188d4b845e73001ac49e3d36 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-dnf.md @@ -0,0 +1,4 @@ +# Configuring the DNF + + + diff --git a/content/en/docs/Administration/configuring-the-environment-22.md b/content/en/docs/Administration/configuring-the-environment-22.md new file mode 100644 index 0000000000000000000000000000000000000000..7beb96020280cf1cfac4e44c222dea8c21ea7272 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-environment-22.md @@ -0,0 +1,7 @@ +# Configuring the Environment + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The following environment configuration is for reference only. Configure the environment based on the site requirements. + + + diff --git a/content/en/docs/Administration/configuring-the-environment-7.md b/content/en/docs/Administration/configuring-the-environment-7.md new file mode 100644 index 0000000000000000000000000000000000000000..791d17aed8b1ee59ef11fc1626efa76f2f5ec146 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-environment-7.md @@ -0,0 +1,7 @@ +# Configuring the Environment + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The following environment configuration is for reference only. Configure the environment based on the site requirements. + + + diff --git a/content/en/docs/Administration/configuring-the-environment.md b/content/en/docs/Administration/configuring-the-environment.md new file mode 100644 index 0000000000000000000000000000000000000000..31b7253c5fff97ee1bd425a3e6c8f872b1a182d7 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-environment.md @@ -0,0 +1,7 @@ +# Configuring the Environment + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The following environment configuration is for reference only. Configure the environment based on the site requirements. + + + diff --git a/content/en/docs/Administration/configuring-the-ftp-server.md b/content/en/docs/Administration/configuring-the-ftp-server.md new file mode 100644 index 0000000000000000000000000000000000000000..3f901da453d96d3f9002c0a4a547fb8a17830ed2 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-ftp-server.md @@ -0,0 +1,3 @@ +# Configuring the FTP Server + + diff --git a/content/en/docs/Administration/configuring-the-login-permission-of-a-system-account.md b/content/en/docs/Administration/configuring-the-login-permission-of-a-system-account.md new file mode 100644 index 0000000000000000000000000000000000000000..5a6c7b1717a68228040f5624755bc40ada09fd47 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-login-permission-of-a-system-account.md @@ -0,0 +1,33 @@ +# Configuring the Login Permission of a System Account + +Generally, users need to restrict the login permission of some accounts. You can set the restriction as required. + +Two files are used to restrict the login of system accounts. The default files are as follows: + +- /etc/vsftpd/ftpusers: This file is managed by the PAM module and is determined by the settings of the /etc/pam.d/vsftpd file. +- /etc/vsftpd/user\_list: This file is set by userlist\_file in vsftpd.conf and is provided by vsftpd. + +Both files must exist and have the same content. You can write the accounts whose UIDs are smaller than 500 to the two files by referring to the /etc/passwd. Each line indicates an account. + +To restrict the login of system accounts, add the accounts to /etc/vsftpd/ftpusers and /etc/vsftpd/user\_list. + +Open the user\_list file to view the account information in the current file. The command and output are as follows: + +``` +# vim /etc/vsftpd/user_list +root +bin +daemon +adm +lp +sync +shutdown +halt +mail +news +uucp +operator +games +nobody +``` + diff --git a/content/en/docs/Administration/configuring-the-network-through-the-ifcfg-file.md b/content/en/docs/Administration/configuring-the-network-through-the-ifcfg-file.md new file mode 100644 index 0000000000000000000000000000000000000000..ac76d126d294d07c097f5fa05ced207c85cb2140 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-network-through-the-ifcfg-file.md @@ -0,0 +1,66 @@ +# Configuring the Network Through the ifcfg File + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The network configured in the **ifcfg** file does not take effect immediately. You need to run the **systemctl reload NetworkManager** command to restart the network service for the configuration to take effect. + +## Configuring a Static Network + +The following uses the **enp4s0** network interface as an example to describe how to configure a static network by modifying the **ifcfg** file. The **ifcfg-enp4s0** file is generated in the **/etc/sysconfig/network-scripts/** directory. Modify the following parameters in the file: + +``` +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +BOOTPROTO=none +IPADDR=192.168.0.10 +PREFIX=24 +DEFROUTE=yes +IPV4_FAILURE_FATAL=no +IPV6INIT=yes +IPV6_AUTOCONF=yes +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +IPV6_ADDR_GEN_MODE=stable-privacy +NAME=enp4s0static +UUID=08c3a30e-c5e2-4d7b-831f-26c3cdc29293 +DEVICE=enp4s0 +ONBOOT=yes +``` + +## Configuring a Dynamic Network + +The following uses the **em1** network interface as an example to describe how to configure a dynamic network by modifying the **ifcfg** file. The **ifcfg-em1** file is generated in the **/etc/sysconfig/network-scripts/** directory. Modify the following parameters in the file: + +``` +DEVICE=em1 +BOOTPROTO=dhcp +ONBOOT=yes +``` + +To configure an interface to send different host names to the DHCP server, add the following content to the **ifcfg** file: + +``` +DHCP_HOSTNAME=hostname +``` + +To configure an interface to ignore the routes sent by the DHCP server to prevent network services from updating the /etc/resolv.conf file using the DNS server received from the DHCP server, add the following content to the **ifcfg** file: + +``` +PEERDNS=no +``` + +To configure an interface to use a specific DNS server, set the **PEERDNS** parameter to **no** and add the following content to the **ifcfg** file: + +``` +DNS1=ip-address +DNS2=ip-address +``` + +**ip-address** is the IP address of the DNS server. This allows the network service to update the** /etc/resolv.conf** file using the specified DNS server. + +## Default Gateway Configuration + +When determining the default gateway, parse the **/etc/sysconfig/network** file and then the **ifcfg** file, and uses the value of **GATEWAY** that is read last as the default route in the routing table. + +In a dynamic network environment, when the NetworkManager is used to manage hosts, you are advised to set the default gateway to DHCP assignment. + diff --git a/content/en/docs/Administration/configuring-the-network.md b/content/en/docs/Administration/configuring-the-network.md new file mode 100644 index 0000000000000000000000000000000000000000..58fdac4b252e664a841a218f7033efa3d0913cf6 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-network.md @@ -0,0 +1,4 @@ +# Configuring the Network + + + diff --git a/content/en/docs/Administration/configuring-the-repo-server.md b/content/en/docs/Administration/configuring-the-repo-server.md new file mode 100644 index 0000000000000000000000000000000000000000..0317d4fc50b741f5cd369043fa12cd96de074acf --- /dev/null +++ b/content/en/docs/Administration/configuring-the-repo-server.md @@ -0,0 +1,7 @@ +# Configuring the Repo Server + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>This section uses the **openEuler-20.03-LTS-aarch64-dvd.iso** image file as an example. Modify the image file as required. + + + diff --git a/content/en/docs/Administration/configuring-the-web-server.md b/content/en/docs/Administration/configuring-the-web-server.md new file mode 100644 index 0000000000000000000000000000000000000000..fc46a338bc3c084169ce2a3b46bde4c17d4d2d90 --- /dev/null +++ b/content/en/docs/Administration/configuring-the-web-server.md @@ -0,0 +1,3 @@ +# Configuring the Web Server + + diff --git a/content/en/docs/Administration/configuring-vsftpd.md b/content/en/docs/Administration/configuring-vsftpd.md new file mode 100644 index 0000000000000000000000000000000000000000..8a5c67c5c6d3845dd517b918f0cb4e1c0c73152f --- /dev/null +++ b/content/en/docs/Administration/configuring-vsftpd.md @@ -0,0 +1,4 @@ +# Configuring vsftpd + + + diff --git a/content/en/docs/Administration/configuring-welcome-information.md b/content/en/docs/Administration/configuring-welcome-information.md new file mode 100644 index 0000000000000000000000000000000000000000..ad581b8e64dcaaa7dc7866af5a759b383af1897a --- /dev/null +++ b/content/en/docs/Administration/configuring-welcome-information.md @@ -0,0 +1,29 @@ +# Configuring Welcome Information + +To use the vsftpd service normally, the welcome information file must exist. To configure the welcome.txt file of the vsftp service, perform the following steps: + +1. Open the vsftpd.conf configuration file, add the welcome information to the file, save the file, and exit. + + ``` + # vim /etc/vsftpd/vsftpd.conf + ``` + + The following configuration lines need to be added: + + ``` + banner_file=/etc/vsftpd/welcome.txt + ``` + +2. Create welcome information. Specifically, open the welcome.txt file, write the welcome information, save the file, and exit. + + ``` + # vim /etc/vsftpd/welcome.txt + ``` + + The following is an example: + + ``` + Welcome to this FTP server! + ``` + + diff --git a/content/en/docs/Administration/creating-a-channel-bonding-interface.md b/content/en/docs/Administration/creating-a-channel-bonding-interface.md new file mode 100644 index 0000000000000000000000000000000000000000..2d66f035963ea2b8c640c7465cbd5c824e7d5fd3 --- /dev/null +++ b/content/en/docs/Administration/creating-a-channel-bonding-interface.md @@ -0,0 +1,18 @@ +# Creating a Channel Bonding Interface + +To create a channel bonding interface, you can create a file named **ifcfg-bondN** in the **/etc/sysconfig/network-scripts/** directory \(replacing N with the actual interface number, for example, 0\). + +Write the corresponding content to the configuration file according to the type of the interface to be bonded, for example, network interface. An example of the interface configuration file is as follows: + +``` +DEVICE=bond0 +NAME=bond0 +TYPE=Bond +BONDING_MASTER=yes +IPADDR=192.168.1.1 +PREFIX=24 +ONBOOT=yes +BOOTPROTO=none +BONDING_OPTS="bonding parameters separated by spaces" +``` + diff --git a/content/en/docs/Administration/creating-a-database-15.md b/content/en/docs/Administration/creating-a-database-15.md new file mode 100644 index 0000000000000000000000000000000000000000..0f342f5b48de226837e16bd0e970e1f2b8111b24 --- /dev/null +++ b/content/en/docs/Administration/creating-a-database-15.md @@ -0,0 +1,18 @@ +# Creating a Database + +Run the **CREATE DATABASE** statement to create a database. + +``` +CREATE DATABASE databasename; +``` + +In the preceding command, _databasename_ can be replaced with the database name, which is case insensitive. + +## Example + +\#Create a database named **databaseexample**. + +``` +> CREATE DATABASE databaseexample; +``` + diff --git a/content/en/docs/Administration/creating-a-database-36.md b/content/en/docs/Administration/creating-a-database-36.md new file mode 100644 index 0000000000000000000000000000000000000000..d4935f0103d61d464f1786404d710a74806892a9 --- /dev/null +++ b/content/en/docs/Administration/creating-a-database-36.md @@ -0,0 +1,18 @@ +# Creating a Database + +Run the **CREATE DATABASE** statement to create a database. + +``` +CREATE DATABASE databasename; +``` + +In the preceding command, _databasename_ can be replaced with the database name, which is case insensitive. + +## Example + +\#Create a database named **databaseexample**. + +``` +> CREATE DATABASE databaseexample; +``` + diff --git a/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions-27.md b/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions-27.md new file mode 100644 index 0000000000000000000000000000000000000000..121f829d8b88e5c5e95620e58d3f310e140e2d0c --- /dev/null +++ b/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions-27.md @@ -0,0 +1,12 @@ +# Creating a Database Directory and Granting Permissions + +1. In the created data directory **/data**, create directories for processes and grant permissions to the MySQL group or user created. + + ``` + #mkdir -p /data/mysql + #cd /data/mysql + #mkdir data tmp run log + #chown -R mysql:mysql /data + ``` + + diff --git a/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions.md b/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions.md new file mode 100644 index 0000000000000000000000000000000000000000..450f5913e99972a42e95d5b3d2e75d15192c6971 --- /dev/null +++ b/content/en/docs/Administration/creating-a-database-directory-and-granting-permissions.md @@ -0,0 +1,12 @@ +# Creating a Database Directory and Granting Permissions + +1. In the created data directory **/data**, create directories for processes and grant permissions to the MySQL group or user created. + + ``` + #mkdir -p /data/mariadb + #cd /data/mariadb + #mkdir data tmp run log + #chown -R mysql:mysql /data + ``` + + diff --git a/content/en/docs/Administration/creating-a-database.md b/content/en/docs/Administration/creating-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..e07924537926e4a3e7068c86a9240e1ef8b8f148 --- /dev/null +++ b/content/en/docs/Administration/creating-a-database.md @@ -0,0 +1,24 @@ +# Creating a Database + +You can use the **CREATE DATABASE** statement or the **createdb** command to create a role. The **createdb** command encapsulates the **CREATE DATABASE** statement and needs to be executed on the shell GUI instead of the database GUI. + +``` +CREATE DATABASE databasename; +``` + +``` +createdb databasename +``` + +In the preceding command, **databasename** indicates the database name. + +To use this command, you must have the CREATEDB permission. + +## Example + +\# Create a database named **database1**. + +``` +postgres=# CREATE DATABASE database1; +``` + diff --git a/content/en/docs/Administration/creating-a-local-repo-source.md b/content/en/docs/Administration/creating-a-local-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..384de82db9a6f3e5f6cfb276868c2853cc6ca588 --- /dev/null +++ b/content/en/docs/Administration/creating-a-local-repo-source.md @@ -0,0 +1,23 @@ +# Creating a Local Repo Source + +You can copy related files in the image to a local directory to create a local repo source. The following is an example: + +``` +mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ +mkdir -p /srv/repo/ +cp -r /mnt/Packages /srv/repo/ +cp -r /mnt/repodata /srv/repo/ +cp -r /mnt/RPM-GPG-KEY-openEuler /srv/repo/ +``` + +The local repo directory is as follows: + +``` +. +│── Packages +│── repodata +└── RPM-GPG-KEY-openEuler +``` + +**Packages** indicates the directory where the RPM package is stored, **repodata** indicates the directory where the repo source metadata is stored, and **RPM-GPG-KEY-openEuler** indicates the public key for signing openEuler. + diff --git a/content/en/docs/Administration/creating-a-local-software-repository.md b/content/en/docs/Administration/creating-a-local-software-repository.md new file mode 100644 index 0000000000000000000000000000000000000000..00a78313a7c1838f1e1feaf1c402c88ed09fee22 --- /dev/null +++ b/content/en/docs/Administration/creating-a-local-software-repository.md @@ -0,0 +1,18 @@ +# Creating a Local Software Repository + +To create a local repository of software sources, perform the following steps. + +1. Install the createrepo software package. Run the following command as the root user: + + ``` + dnf install createrepo + ``` + +2. Copy the required software packages to a directory, for example, /mnt/local\_repo/. +3. Run the following command to create a software source: + + ``` + createrepo --database /mnt/local_repo + ``` + + diff --git a/content/en/docs/Administration/creating-a-role.md b/content/en/docs/Administration/creating-a-role.md new file mode 100644 index 0000000000000000000000000000000000000000..b93990b11535591f6f9b1dfd6fbca545640f0cb6 --- /dev/null +++ b/content/en/docs/Administration/creating-a-role.md @@ -0,0 +1,49 @@ +# Creating a Role + +You can use the **CREATE ROLE** statement or **createuser** command to create a role. The **createuser** command encapsulates the **CREATE ROLE** statement and needs to be executed on the shell GUI instead of the database GUI. + +``` +CREATE ROLE rolename [ [ WITH ] option [ ... ] ]; +``` + +``` +createuser rolename +``` + +In the preceding information: + +- **rolename**: indicates a role name. +- Parameters of the _option_ are as follows: + - **SUPERUSER | NOSUPERUSER**: determines whether a new role is a superuser. If this parameter is not specified, the default value** NOSUPERUSER** is used, indicating that the role is not a superuser. + - **CREATEDB | NOCREATEDB**: specifies whether a role can create a database. If this parameter is not specified, the default value **NOCREATEDB** is used, indicating that the role cannot create a database. + - **CREATEROLE | NOCREATEROLE**: determines whether a role can create roles. If this parameter is not specified, the default value **NOCREATEROLE** is used, indicating that the role cannot create roles. + - **INHERIT | NOINHERIT**: determines whether a role inherits the other roles' permissions in the group to which the role belongs. A role with the INHERIT attribute can automatically use any permissions that have been assigned to its direct or indirect group. If this parameter is not specified, the default value **INHERIT** is used. + - **LOGIN | NOLOGIN**: determines whether a role can log in. A role with the LOGIN attribute can be considered as a user. A role without this attribute can be used to manage database permissions but is not a user. If this attribute is not specified, the default value **NOLOGIN** is used. However, if **CREATE USER** instead of **CREATE ROLE** is used to create a role, the LOGIN attribute is used by default. + - **\[ENCRYPTED | UNENCRYPTED\] PASSWORD'password'**: password of a role. The password is valid only for roles with the LOGIN attribute. **ENCRYPTED | UNENCRYPTED**: determines whether to encrypt the password. If this parameter is not specified, the value **ENCRYPTED** is used, that is, the password is encrypted. + - **VALID UNTIL'timestamp'**: specifies the timestamp when the password of a role expires. If this parameter is not specified, the password is permanently valid. + - **IN ROLE rolename1**: lists one or more existing roles. The new role _rolename_ will be added to and become a member of **rolename1**. + - **ROLE rolename2**: lists one or more existing roles. These roles will be automatically added as members of the new role _rolename_. That is, the new role is a user group. + + +To run this command, you must have the CREATEROLE permission or is the database superuser. + +## Example + +\#Create a role **roleexample1** who can log in. + +``` +postgres=# CREATE ROLE roleexample1 LOGIN; +``` + +\#Create a role **roleexample2** with the password **123456**. + +``` +postgres=# CREATE ROLE roleexample2 WITH LOGIN PASSWORD '123456'; +``` + +\#Create a role named **roleexample3**. + +``` +[postgres@localhost ~]$ createuser roleexample3 +``` + diff --git a/content/en/docs/Administration/creating-a-slave-interface.md b/content/en/docs/Administration/creating-a-slave-interface.md new file mode 100644 index 0000000000000000000000000000000000000000..a4258038ca0b805a7d3c7ca28685a46687b2be4e --- /dev/null +++ b/content/en/docs/Administration/creating-a-slave-interface.md @@ -0,0 +1,26 @@ +# Creating a Slave Interface + +After creating a channel bonding interface, you must add the **MASTER** and **SLAVE** instructions to the configuration file of the slave interface. + +For example, to bind the two network interfaces enp3s0 and enp4s0 in channel mode, the configuration files are as follows: + +``` +TYPE=Ethernet +NAME=bond-slave-enp3s0 +UUID=3b7601d1-b373-4fdf-a996-9d267d1cac40 +DEVICE=enp3s0 +ONBOOT=yes +MASTER=bond0 +SLAVE=yes +``` + +``` +TYPE=Ethernet +NAME=bond-slave-enp4s0 +UUID=00f0482c-824f-478f-9479-abf947f01c4a +DEVICE=enp4s0 +ONBOOT=yes +MASTER=bond0 +SLAVE=yes +``` + diff --git a/content/en/docs/Administration/creating-a-user-group-and-a-user-10.md b/content/en/docs/Administration/creating-a-user-group-and-a-user-10.md new file mode 100644 index 0000000000000000000000000000000000000000..a5ee9ebef70c7b7bf3c9344db79174dd3d5fc6da --- /dev/null +++ b/content/en/docs/Administration/creating-a-user-group-and-a-user-10.md @@ -0,0 +1,24 @@ +# Creating a User Group and a User + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>In the server environment, independent users are assigned to each process to implement permission isolation for security purposes. The user group and user are created for the OS, not for the database. + +1. Create a MySQL user or user group. + + ``` + #groupadd mysql + ``` + + ``` + #useradd -g mysql mysql + ``` + +2. Set the user password. + + ``` + #passwd mysql + ``` + + Enter the password twice for confirmation. + + diff --git a/content/en/docs/Administration/creating-a-user-group-and-a-user-25.md b/content/en/docs/Administration/creating-a-user-group-and-a-user-25.md new file mode 100644 index 0000000000000000000000000000000000000000..d196e81850bb70808281a68e1877b5f57255376e --- /dev/null +++ b/content/en/docs/Administration/creating-a-user-group-and-a-user-25.md @@ -0,0 +1,24 @@ +# Creating a User Group and a User + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>In the server environment, independent users are assigned to each process to implement permission isolation for security purposes. The user group and user are created for the OS, not for the database. + +1. Create a MySQL user or user group. + + ``` + #groupadd mysql + ``` + + ``` + #useradd -g mysql mysql + ``` + +2. Set the user password. + + ``` + #passwd mysql + ``` + + Enter the password twice for confirmation. + + diff --git a/content/en/docs/Administration/creating-a-user-group-and-a-user.md b/content/en/docs/Administration/creating-a-user-group-and-a-user.md new file mode 100644 index 0000000000000000000000000000000000000000..2995fc927bfbf2d05b070bf1c750a0362964c1eb --- /dev/null +++ b/content/en/docs/Administration/creating-a-user-group-and-a-user.md @@ -0,0 +1,22 @@ +# Creating a User Group and a User + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>In the server environment, independent users are assigned to each process to implement permission isolation for security purposes. The user group and user are created for the OS, not for the database. + +1. Create a PostgreSQL user or user group. + + ``` + #groupadd postgres + ``` + + ``` + #useradd -g postgres postgres + ``` + +2. Set the postgres user password. \(Enter the password twice for confirmation.\) + + ``` + #passwd postgres + ``` + + diff --git a/content/en/docs/Administration/creating-and-mounting-a-file-system.md b/content/en/docs/Administration/creating-and-mounting-a-file-system.md new file mode 100644 index 0000000000000000000000000000000000000000..de0198f1d55639cb8053c5514c6754c61d215399 --- /dev/null +++ b/content/en/docs/Administration/creating-and-mounting-a-file-system.md @@ -0,0 +1,100 @@ +# Creating and Mounting a File System + +After creating an LV, you need to create a file system on the LV and mount the file system to the corresponding directory. + +## Creating a File System + +Run the **mkfs** command to create a file system. + +``` +mkfs [option] lvname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-t**: specifies the type of the Linux system to be created, such as **ext2**, **ext3**, and **ext4**. The default type is **ext2**. + +- _lvname_: name of the LV device file corresponding to the file system to be created. + +Example: Run the following command to create the **ext4** file system on LV **/dev/vg1/lv1**: + +``` +mkfs -t ext4 /dev/vg1/lv1 +``` + +## Manually Mounting a File System + +The file system that is manually mounted is not valid permanently. It does not exist after the OS is restarted. + +Run the **mount** command to mount a file system. + +``` +mount lvname mntpath +``` + +In the preceding information: + +- _lvname_: name of the LV device file corresponding to the file system to be mounted. +- _mntpath_: mount path. + +Example: Run the following command to mount LV **/dev/vg1/lv1** to the directory **/mnt/data**. + +``` +mount /dev/vg1/lv1 /mnt/data +``` + +## Automatically Mounting a File System + +A file system that is automatically mounted does not exist after the OS is restarted. You need to manually mount the file system again. If you perform the following steps after manually mounting the file system, the file system can be automatically mounted after the OS is restarted. + +1. Run the **blkid** command to query the UUID of an LV. The following uses LV **/dev/vg1/lv1** as an example: + + ``` + blkid /dev/vg1/lv1 + ``` + + Check the command output. It contains the following information in which _uuidnumber_ is a string of digits, indicating the UUID, and _fstype_ indicates the file system type. + + /dev/vg1/lv1: UUID=" _uuidnumber_ " TYPE=" _fstype_ " + +2. Run the **vi /etc/fstab** command to edit the **fstab** file and add the following content to the end of the file: + + ``` + UUID=uuidnumber mntpath fstype defaults 0 0 + ``` + + In the preceding information: + + - Column 1: indicates the UUID. Enter _uuidnumber_ obtained in [1](#li65701520154311). + - Column 2: indicates the mount directory of the file system. Replace _mntpath_ with the actual value. + - Column 3: indicates the file system format. Enter _fstype_ obtained in [1](#li65701520154311). + - Column 4: indicates the mount option. In this example, **defaults** is used. + - Column 5: indicates the backup option. Enter either **1** \(the system automatically backs up the file system\) or **0** \(the system does not back up the file system\). In this example, **0** is used. + - Column 6: indicates the scanning option. Enter either **1** \(the system automatically scans the file system during startup\) or **0** \(the system does not scan the file system\). In this example, **0** is used. + +3. Verify the automatic mounting function. + 1. Run the **umount** command to unmount the file system. The following uses LV **/dev/vg1/lv1** as an example: + + ``` + umount /dev/vg1/lv1 + ``` + + 2. Run the following command to reload all content in the **/etc/fstab** file: + + ``` + mount -a + ``` + + 3. Run the following command to query the file system mounting information \(**/mnt/data** is used as an example\): + + ``` + mount | grep /mnt/data + ``` + + Check the command output. If the command output contains the following information, the automatic mounting function takes effect: + + /dev/vg1/lv1 on /mnt/data + + + diff --git a/content/en/docs/Administration/creating-data-drives-11.md b/content/en/docs/Administration/creating-data-drives-11.md new file mode 100644 index 0000000000000000000000000000000000000000..312923096adb04621d6d36045fb8fb5751ec5689 --- /dev/null +++ b/content/en/docs/Administration/creating-data-drives-11.md @@ -0,0 +1,93 @@ +# Creating Data Drives + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- If a performance test needs to be performed, an independent drive is required for the data directory. You need to format and mount the drive. For details, see Method 1 or Method 2. +>- In a non-performance test, run the following command to create a data directory. Then skip this section. +> \#mkdir /data + +## Method 1: Using fdisk for Drive Management + +1. Create a partition, for example, **/dev/sdb**. + + ``` + #fdisk /dev/sdb + ``` + +2. Enter **n** and press **Enter**. +3. Enter **p** and press **Enter**. +4. Enter **1** and press **Enter**. +5. Retain the default settings and press **Enter**. +6. Retain the default settings and press **Enter**. +7. Enter **w** and press **Enter**. +8. Create a file system, for example, **xfs**. + + ``` + #mkfs.xfs /dev/sdb1 + ``` + +9. Mount the partition to **/data** for the OS. + + ``` + #mkdir /data + ``` + + ``` + #mount /dev/sdb1 /data + ``` + +10. Run the **vi /etc/fstab** command and edit the **/etc/fstab** file to enable the data drive to be automatically mounted after the system is restarted. For example, add the content in the last line, as shown in the following figure. + + In the last line, **/dev/nvme0n1p1** is only an example. + + ![](figures/搭建数据盘.png) + + +## Method 2: Using LVM for Drive Management + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Install the LVM2 package in the image as follows: +>1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). If the repository has been configured, skip this step. +>2. Install LVM2. +> **\#yum install lvm2** + +1. Create a physical volume, for example, **sdb**. + + ``` + #pvcreate /dev/sdb + ``` + +2. Create a physical volume group, for example, **datavg**. + + ``` + #vgcreate datavg /dev/sdb + ``` + +3. Create a logical volume, for example, **datalv** of 600 GB. + + ``` + #lvcreate -L 600G -n datalv datavg + ``` + +4. Create a file system. + + ``` + #mkfs.xfs /dev/datavg/datalv + ``` + +5. Create a data directory and mount it. + + ``` + #mkdir /data + ``` + + ``` + #mount /dev/datavg/datalv /data + ``` + +6. Run the **vi /etc/fstab** command and edit the **/etc/fstab** file to enable the data drive to be automatically mounted after the system is restarted. For example, add the content in the last line, as shown in the following figure. + + In the last line, **/dev/datavg/datalv** is only an example. + + ![](figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png) + + diff --git a/content/en/docs/Administration/creating-data-drives-26.md b/content/en/docs/Administration/creating-data-drives-26.md new file mode 100644 index 0000000000000000000000000000000000000000..cd096be8dcdf62265054b267c1423aad26512913 --- /dev/null +++ b/content/en/docs/Administration/creating-data-drives-26.md @@ -0,0 +1,93 @@ +# Creating Data Drives + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- If a performance test needs to be performed, an independent drive is required for the data directory. You need to format and mount the drive. For details, see Method 1 or Method 2. +>- In a non-performance test, run the following command to create a data directory. Then skip this section. +> \#mkdir /data + +## Method 1: Using fdisk for Drive Management + +1. Create a partition, for example, **/dev/sdb**. + + ``` + #fdisk /dev/sdb + ``` + +2. Enter **n** and press **Enter**. +3. Enter **p** and press **Enter**. +4. Enter **1** and press **Enter**. +5. Retain the default settings and press **Enter**. +6. Retain the default settings and press **Enter**. +7. Enter **w** and press **Enter**. +8. Create a file system, for example, **xfs**. + + ``` + #mkfs.xfs /dev/sdb1 + ``` + +9. Mount the partition to **/data** for the OS. + + ``` + #mkdir /data + ``` + + ``` + #mount /dev/sdb1 /data + ``` + +10. Run the **vi /etc/fstab** command and edit the **/etc/fstab** file to enable the data drive to be automatically mounted after the system is restarted. For example, add the content in the last line, as shown in the following figure. + + In the last line, **/dev/nvme0n1p1** is only an example. + + ![](figures/搭建数据盘-0.png) + + +## Method 2: Using LVM for Drive Management + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Install the LVM2 package in the image as follows: +>1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). If the repository has been configured, skip this step. +>2. Install LVM2. +> **\#yum install lvm2** + +1. Create a PV, for example, **sdb**. + + ``` + #pvcreate /dev/sdb + ``` + +2. Create a physical VG, for example, **datavg**. + + ``` + #vgcreate datavg /dev/sdb + ``` + +3. Create an LV, for example, **datalv** of 600 GB. + + ``` + #lvcreate -L 600G -n datalv datavg + ``` + +4. Create a file system. + + ``` + #mkfs.xfs /dev/datavg/datalv + ``` + +5. Create a data directory and mount it. + + ``` + #mkdir /data + ``` + + ``` + #mount /dev/datavg/datalv /data + ``` + +6. Run the **vi /etc/fstab** command and edit the **/etc/fstab** file to enable the data drive to be automatically mounted after the system is restarted. For example, add the content in the last line, as shown in the following figure. + + In the last line, **/dev/datavg/datalv** is only an example. + + ![](figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png) + + diff --git a/content/en/docs/Administration/creating-data-drives.md b/content/en/docs/Administration/creating-data-drives.md new file mode 100644 index 0000000000000000000000000000000000000000..9e106f007256f36f35497f9f48b7100278b4edff --- /dev/null +++ b/content/en/docs/Administration/creating-data-drives.md @@ -0,0 +1,26 @@ +# Creating Data Drives + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- When testing the ultimate performance, you are advised to attach NVMe SSDs with better I/O performance to create PostgreSQL test instances to avoid the impact of disk I/O on the performance test result. This section uses NVMe SSDs as an example. For details, see Step 1 to Step 4. +>- In a non-performance test, run the following command to create a data directory. Then skip this section. +> \#mkdir /data + +1. Create a file system \(xfs is used as an example. Create the file system based on the site requirements.\). If a file system has been created for a disk, an error will be reported when you run this command. You can use the **-f** parameter to forcibly create a file system. + + ``` + #mkfs.xfs /dev/nvme0n1 + ``` + +2. Create a data directory. + + ``` + #mkdir /data + ``` + +3. Mount disks. + + ``` + #mount -o noatime,nobarrier /dev/nvme0n1 /data + ``` + + diff --git a/content/en/docs/Administration/creating-multiple-bondings.md b/content/en/docs/Administration/creating-multiple-bondings.md new file mode 100644 index 0000000000000000000000000000000000000000..484a560b79188b113b0508aa0bfd1d2b817e35e2 --- /dev/null +++ b/content/en/docs/Administration/creating-multiple-bondings.md @@ -0,0 +1,24 @@ +# Creating Multiple Bondings + +The system creates a channel bonding interface for each bonding, including the **BONDING\_OPTS** instruction. This configuration method allows multiple bonded devices to use different configurations. Perform the following operations to create multiple channel bonding interfaces: + +- Create multiple **ifcfg-bondN** files that contain the **BONDING\_OPTS** instruction so that network scripts can create bonding interfaces as required. +- Create or edit the existing interface configuration file to be bonded, and add the **SLAVE** instruction. +- Use the MASTER instruction to assign the interface to be bonded, that is, the slave interface, to the channel bonding interface. + +The following is an example of the configuration file of a channel bonding interface: + +``` +DEVICE=bondN +NAME=bondN +TYPE=Bond +BONDING_MASTER=yes +IPADDR=192.168.1.1 +PREFIX=24 +ONBOOT=yes +BOOTPROTO=none +BONDING_OPTS="bonding parameters separated by spaces" +``` + +In this example, replace N with the number of the bonded interface. For example, to create two interfaces, you need to create two configuration files **ifcfg-bond0** and **ifcfg-bond1** with correct IP addresses. + diff --git a/content/en/docs/Administration/creating-or-updating-a-local-repo-source.md b/content/en/docs/Administration/creating-or-updating-a-local-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..900be68ecfd948add7b15a0091f3fb2e9423aee2 --- /dev/null +++ b/content/en/docs/Administration/creating-or-updating-a-local-repo-source.md @@ -0,0 +1,5 @@ +# Creating or Updating a Local Repo Source + +Mount the openEuler image **openEuler-20.03-LTS-aarch64-dvd.iso** to create and update a repo source. + + diff --git a/content/en/docs/Administration/creating-users-29.md b/content/en/docs/Administration/creating-users-29.md new file mode 100644 index 0000000000000000000000000000000000000000..90bdee6680004eca65efb60641d12ff34ae53d15 --- /dev/null +++ b/content/en/docs/Administration/creating-users-29.md @@ -0,0 +1,34 @@ +# Creating Users + +Run the **CREATE USER** statement to create one or more users and set corresponding passwords. + +``` +CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; +``` + +In the preceding information: + +- _username_: name of a user. +- _host_: hostname, that is, the name of the host where the user connects to the database. As a local user, you can set the parameter to **localhost**. If the host name is not specified during user creation, the host name is **%** by default, indicating a group of hosts. +- _password_: password for logging in to the server. The password can be null. If the password is null, the user can log in to the server without entering the password. This method, however, is not recommended because it provides low security. + +To use the **CREATE USER** statement, you must have the **INSERT** permission on the database or the global **CREATE USER** permission. + +After a user account is created using the **CREATE USER** statement, a record is added to the user table in the database. If the account to be created exists, an error will occur during statement execution. + +A new user has few permissions and can perform only operations that do not require permissions. For example, a user can run the **SHOW** statement to query the list of all storage engines and character sets. + +## Example + +\#Create a local user whose password is **123456** and username is **userexample1**. + +``` +> CREATE USER 'userexample1'@'localhost' IDENTIFIED BY '123456'; +``` + +\#Create a user whose password is **123456**, username is **userexample2**, and hostname is **192.168.1.100**. + +``` +> CREATE USER 'userexample2'@'192.168.1.100' IDENDIFIED BY '123456'; +``` + diff --git a/content/en/docs/Administration/creating-users.md b/content/en/docs/Administration/creating-users.md new file mode 100644 index 0000000000000000000000000000000000000000..ddc1da6ff7a7d29945f1e7069bb30ea74bacbbc9 --- /dev/null +++ b/content/en/docs/Administration/creating-users.md @@ -0,0 +1,34 @@ +# Creating Users + +Run the **CREATE USER** statement to create one or more users and set corresponding passwords. + +``` +CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; +``` + +In the preceding information: + +- _username_: name of a user. +- _host_: hostname, that is, the name of the host where the user connects to the database. As a local user, you can set the parameter to **localhost**. If the host name is not specified during user creation, the host name is **%** by default, indicating a group of hosts. +- _password_: password for logging in to the server. The password can be null. If the password is null, the user can log in to the server without entering the password. This method, however, is not recommended because it provides low security. + +To use the **CREATE USER** statement, you must have the INSERT permission on the database or the global CREATE USER permission. + +After a user account is created using the **CREATE USER** statement, a record is added to the user table in the database. If the account to be created exists, an error will occur during statement execution. + +A new user has few permissions and can perform only operations that do not require permissions. For example, a user can run the **SHOW** statement to query the list of all storage engines and character sets. + +## Example + +\#Create a local user whose password is 123456 and username is userexample1. + +``` +> CREATE USER 'userexample1'@'localhost' IDENTIFIED BY '123456'; +``` + +\#Create a user whose password is 123456, username is userexample2, and hostname is 192.168.1.100. + +``` +> CREATE USER 'userexample2'@'192.168.1.100' IDENDIFIED BY '123456'; +``` + diff --git a/content/en/docs/Administration/data-directory-authorization.md b/content/en/docs/Administration/data-directory-authorization.md new file mode 100644 index 0000000000000000000000000000000000000000..138b461fc519eba9ce6e1e781c0786e427a4ae24 --- /dev/null +++ b/content/en/docs/Administration/data-directory-authorization.md @@ -0,0 +1,9 @@ +# Data Directory Authorization + +1. Modify the directory permission. + + ``` + #chown -R postgres:postgres /data/ + ``` + + diff --git a/content/en/docs/Administration/default-configuration-description.md b/content/en/docs/Administration/default-configuration-description.md new file mode 100644 index 0000000000000000000000000000000000000000..ea49535e190c19dc85ca49644cbb24d5ffa8d167 --- /dev/null +++ b/content/en/docs/Administration/default-configuration-description.md @@ -0,0 +1,102 @@ +# Default Configuration Description + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The configuration content in this document is for reference only. You can modify the content based on the site requirements \(for example, security hardening requirements\). + +In the openEuler system, vsftpd does not open to anonymous users by default. Run the vim command to view the main configuration file. The content is as follows: + +``` +# vim /etc/vsftpd/vsftpd.conf +anonymous_enable=NO +local_enable=YES +write_enable=YES +local_umask=022 +dirmessage_enable=YES +xferlog_enable=YES +connect_from_port_20=YES +xferlog_std_format=YES +listen=NO +listen_ipv6=YES +pam_service_name=vsftpd +userlist_enable=YES +``` + +[Table 1](#table18185162512499) describes the parameters. + +**Table 1** Parameter description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

anonymous_enable

+

Indicates whether to allow anonymous users to log in. YES indicates that anonymous users are allowed to log in; NO indicates that anonymous users are not allowed to log in.

+

local_enable

+

Whether to allow local users to log in. YES indicates that local users are allowed to log in. NO indicates that local users are not allowed to log in.

+

write_enable

+

Whether to allow the login user to have the write permission. YES indicates that the upload and write function is enabled, and NO indicates that the function is disabled.

+

local_umask

+

Indicates the umask value when a local user adds a profile.

+

dirmessage_enable

+

Indicates whether to display the contents that users need to pay attention to when a user accesses a directory. The options are YES (yes) and NO (no).

+

xferlog_enable

+

Indicates whether to record file upload and download operations. The options are YES (record operations) and NO (not record operations).

+

connect_from_port_20

+

Indicates whether port 20 is used for data transmission in port mode. YES indicates that port 20 is used, and NO indicates that port 20 is not used.

+

xferlog_std_format

+

Indicates whether the transfer log file is written in the standard xferlog format. The options are YES (yes) and NO (no).

+

listen

+

Indicates whether the vsftpd service is started in standalone mode. The options are YES (yes) and NO (no).

+

pam_service_name

+

Support for PAM management. The value is a service name, for example, vsftpd.

+

userlist_enable

+

Indicates whether to support account login control in the /etc/vsftpd/user_list file. The options are YES (yes) and NO (no).

+

tcp_wrappers

+

Indicates whether to support the firewall mechanism of the TCP Wrappers. The options are YES (yes) and NO (no).

+

listen_ipv6

+

Indicates whether to listen to IPv6 FTP requests. The options are YES (yes) and NO (no). listen and listen_ipv6 cannot be enabled at the same time.

+
+ diff --git a/content/en/docs/Administration/deleting-a-database-18.md b/content/en/docs/Administration/deleting-a-database-18.md new file mode 100644 index 0000000000000000000000000000000000000000..6c0eae06582b3491468bbc0306b6671d62855556 --- /dev/null +++ b/content/en/docs/Administration/deleting-a-database-18.md @@ -0,0 +1,27 @@ +# Deleting a Database + +You can run the **DROP DATABASE** statement to delete a database. + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>Exercise caution when deleting a database. Once a database is deleted, all tables and data in the database will be deleted. + +``` +DROP DATABASE databasename; +``` + +In the preceding command, **databasename** indicates the database name. + +The **DROP DATABASE** command is used to delete an existing database. After this command is executed, all tables in the database are deleted, but the user permissions of the database are not automatically deleted. + +To use **DROP DATABASE**, you need the **DROP** permission on the database. + +**DROP SCHEMA** is a synonym of **DROP DATABASE**. + +## Example + +\#Delete the **databaseexample** database. + +``` +> DROP DATABASE databaseexample; +``` + diff --git a/content/en/docs/Administration/deleting-a-database-39.md b/content/en/docs/Administration/deleting-a-database-39.md new file mode 100644 index 0000000000000000000000000000000000000000..cb4f86f1ffa14fae8a373ddc7d4aae1f717cf96d --- /dev/null +++ b/content/en/docs/Administration/deleting-a-database-39.md @@ -0,0 +1,27 @@ +# Deleting a Database + +Run the **DROP DATABASE** statement to delete a database. + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>Exercise caution when deleting a database. Once a database is deleted, all tables and data in the database will be deleted. + +``` +DROP DATABASE databasename; +``` + +In the preceding command, _databasename_ indicates the database name. + +The **DROP DATABASE** command is used to delete an existing database. After this command is executed, all tables in the database are deleted, but the user permissions of the database are not automatically deleted. + +To use **DROP DATABASE**, you need the **DROP** permission on the database. + +**DROP SCHEMA** is a synonym of **DROP DATABASE**. + +## Example + +\#Delete the **databaseexample** database. + +``` +> DROP DATABASE databaseexample; +``` + diff --git a/content/en/docs/Administration/deleting-a-database.md b/content/en/docs/Administration/deleting-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..edcced0f669d0bae6f4ba06892ac6f18c55e4493 --- /dev/null +++ b/content/en/docs/Administration/deleting-a-database.md @@ -0,0 +1,29 @@ +# Deleting a Database + +You can run the **DROP DATABASE** statement or **dropdb** command to delete a database. The **dropdb** command encapsulates the **DROP DATABASE** statement and needs to be executed on the shell GUI instead of the database GUI. + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>Exercise caution when deleting a database. Once a database is deleted, all tables and data in the database will be deleted. + +``` +DROP DATABASE databasename; +``` + +``` +dropdb databasename +``` + +In the preceding command, **databasename** indicates the database name. + +The **DROP DATABASE** statement deletes the system directory items of the database and the file directories that contain data. + +**DROP DATABASE** can be executed only by the super administrator or database owner. + +## Example + +\#Delete the **databaseexample** database. + +``` +# DROP DATABASE databaseexample; +``` + diff --git a/content/en/docs/Administration/deleting-a-role.md b/content/en/docs/Administration/deleting-a-role.md new file mode 100644 index 0000000000000000000000000000000000000000..880e1638483759c23396da54fea7bb574b1ba2dc --- /dev/null +++ b/content/en/docs/Administration/deleting-a-role.md @@ -0,0 +1,28 @@ +# Deleting a Role + +You can use the **DROP ROLE** statement or **dropuser** command to delete a role. The **dropuser** command encapsulates the **DROP ROLE** statement and needs to be executed on the shell GUI instead of the database GUI. + +``` +DROP ROLE rolename; +``` + +``` +dropuser rolename +``` + +In the preceding command, _rolename_ indicates the role name. + +## Example + +\#Delete the **userexample1** role. + +``` +postgres=# DROP ROLE userexample1; +``` + +\#Delete the **userexample2** role. + +``` +[postgres@localhost ~]$ dropuser userexample2 +``` + diff --git a/content/en/docs/Administration/deleting-user-permissions-13.md b/content/en/docs/Administration/deleting-user-permissions-13.md new file mode 100644 index 0000000000000000000000000000000000000000..5afe8b117dfc3353eb935cf974b72c17ca892575 --- /dev/null +++ b/content/en/docs/Administration/deleting-user-permissions-13.md @@ -0,0 +1,20 @@ +# Deleting User Permissions + +Run the **REVOKE** statement to delete the permissions of a user, but the user will not be deleted. + +``` +REVOKE privilege ON databasename.tablename FROM 'username'@'hostname'; +``` + +The parameters in the **REVOKE** statement are the same as those in the **GRANT** statement. + +To use the **REVOKE** statement, you must have the global CREATE USER or UPDATE permission for the database. + +## Example + +\#Delete the INSERT permission of local user userexample. + +``` +> REVOKE INSERT ON *.* FROM 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/deleting-user-permissions-34.md b/content/en/docs/Administration/deleting-user-permissions-34.md new file mode 100644 index 0000000000000000000000000000000000000000..4724eb93d1987bfe3bdf80f339b2526d32b05e7d --- /dev/null +++ b/content/en/docs/Administration/deleting-user-permissions-34.md @@ -0,0 +1,20 @@ +# Deleting User Permissions + +Run the **REVOKE** statement to delete the permissions of a user, but the user will not be deleted. + +``` +REVOKE privilege ON databasename.tablename FROM 'username'@'hostname'; +``` + +The parameters in the **REVOKE** statement are the same as those in the **GRANT** statement. + +To use the **REVOKE** statement, you must have the global **CREATE USER** or **UPDATE** permission for the database. + +## Example + +\#Delete the **INSERT** permission of local user **userexample**. + +``` +> REVOKE INSERT ON *.* FROM 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/deleting-user-permissions.md b/content/en/docs/Administration/deleting-user-permissions.md new file mode 100644 index 0000000000000000000000000000000000000000..ddeb1cda065cf449ea399d4ffe08aed04c3b601a --- /dev/null +++ b/content/en/docs/Administration/deleting-user-permissions.md @@ -0,0 +1,86 @@ +# Deleting User Permissions + +You can use the **REVOKE** statement to revoke the permissions previously granted to one or more roles. + +Revoke the table operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tablename [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] +``` + +Revoke the sequence operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { { USAGE | SELECT | UPDATE } [,...] | ALL [ PRIVILEGES ] } ON SEQUENCE sequencename [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the database operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE databasename [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the function operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the procedural language operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE langname [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the schema operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schemaname [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the tablespace operation permission from a role. + +``` +REVOKE [ GRANT OPTION FOR ] { CREATE | ALL [ PRIVILEGES ] } ON TABLESPACE tablespacename [, ...] FROM { rolename | GROUP groupname | PUBLIC } [, ...] [ CASCADE | RESTRICT ] +``` + +Revoke the member relationship of rolename1 from rolename2. + +``` +REVOKE [ ADMIN OPTION FOR ] rolename1 [, ...] FROM rolename2 [, ...] [ CASCADE | RESTRICT ] +``` + +In the preceding information: + +- **GRANT OPTION FOR**: The permission cannot be granted to others, but permission itself is not revoked. +- **SELECT**, **INSERT**, **UPDATE**, **DELETE**, **REFERENCES**, **TRIGGER**, **USAGE**, **CREATE**, **CONNECT**, **TEMPORARY**, **TEMP**, **EXECUTE**, and **ALL \[**_PRIVILEGES_**\]** indicate user operation permissions. **ALL \[**_PRIVILEGES_**\]** indicates all permissions, the _PRIVILEGES_ keyword is optional in PostgreSQL, but it is required in strict SQL statements. +- **ON** clause: specifies the object on which the permission is revoked. +- _tablename_: table name. +- **FROM** clause: specifies the role whose permission is revoked. +- _rolename_, _rolename1_, and _rolename2_: role names. +- _groupname_: name of a role group. +- **PUBLIC**: revokes the implicitly defined groups that have all roles. However, this does not mean that all roles lose the permissions. The permissions directly obtained and the permissions obtained through a group are still valid. +- _sequencename_: sequence name. +- **CASCADE**: revokes all dependent permissions. +- **RESTRICT**: does not revoke all dependent permissions. +- _databasename_: database name. +- **funcname \(**_\[\[argmode\] \[argname\] argtype \[, ...\]\]_**\)**: function name and its parameters. +- _langname_: procedural language name. +- _schemaname_: schema name. +- _tablespacename_: tablespace name. +- **ADMIN OPTION FOR**: The transferred authorization is not automatically revoked. + +## Example + +\#Grant the CREATE permission on database1 to userexample. + +``` +# GRANT CREATE ON DATABASE database1 TO userexample; +``` + +\#Grant all permissions on table1 to all users. + +``` +# GRANT ALL PRIVILEGES ON TABLE table1 TO PUBLIC; +``` + diff --git a/content/en/docs/Administration/deleting-users-12.md b/content/en/docs/Administration/deleting-users-12.md new file mode 100644 index 0000000000000000000000000000000000000000..fded8467d5d076ea8273afdbe34c49412e55b922 --- /dev/null +++ b/content/en/docs/Administration/deleting-users-12.md @@ -0,0 +1,25 @@ +# Deleting Users + +Use the **DROP USER** statement to delete one or more user accounts and related permissions. + +``` +DROP USER 'username1'@'hostname1' [,'username2'@'hostname2']...; +``` + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>The deletion of users does not affect the tables, indexes, or other database objects that they have created, because the database does not record the accounts that have created these objects. + +The **DROP USER** statement can be used to delete one or more database accounts and their original permissions. + +To use the **DROP USER** statement, you must have the DELETE permission on the database or the global CREATE USER permission. + +In the **DROP USER** statement, if the hostname of an account is not specified, the hostname is **%** by default. + +## Example + +\#Delete the local user **userexample**. + +``` +> DROP USER 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/deleting-users-32.md b/content/en/docs/Administration/deleting-users-32.md new file mode 100644 index 0000000000000000000000000000000000000000..31500dc7c132beff2f5ebbe276fbcb4d617abbf0 --- /dev/null +++ b/content/en/docs/Administration/deleting-users-32.md @@ -0,0 +1,25 @@ +# Deleting Users + +Use the **DROP USER** statement to delete one or more user accounts and related permissions. + +``` +DROP USER 'username1'@'hostname1' [,'username2'@'hostname2']...; +``` + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>The deletion of users does not affect the tables, indexes, or other database objects that they have created, because the database does not record the accounts that have created these objects. + +The **DROP USER** statement can be used to delete one or more database accounts and their original permissions. + +To use the **DROP USER** statement, you must have the **DELETE** permission on the database or the global **CREATE USER** permission. + +In the **DROP USER** statement, if the hostname of an account is not specified, the hostname is **%** by default. + +## Example + +\#Delete the local user **userexample**. + +``` +> DROP USER 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/deleting-users.md b/content/en/docs/Administration/deleting-users.md new file mode 100644 index 0000000000000000000000000000000000000000..e79cd2cc9a15939d0fc8eae6f48483d335c71882 --- /dev/null +++ b/content/en/docs/Administration/deleting-users.md @@ -0,0 +1,15 @@ +# Deleting Users + +Run the **userdel** command as the user **root** to delete an existing user. + +For example, run the following command to delete user Test: + +``` +# userdel Test +``` + +If you also need to delete the user's home directory and all contents in the directory, run the **userdel** command with the -r option to delete them recursively. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>You are not advised to directly delete a user who has logged in to the system. To forcibly delete a user, run the **userdel -f **_Test_ command. + diff --git a/content/en/docs/Administration/deploying-the-remote-repo-source.md b/content/en/docs/Administration/deploying-the-remote-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..f00bcaf39d6011518848aef7ddb0876cbb8ea591 --- /dev/null +++ b/content/en/docs/Administration/deploying-the-remote-repo-source.md @@ -0,0 +1,6 @@ +# Deploying the Remote Repo Source + +Install openEuler OS and deploy the repo source using Nginx on openEuler OS. + + + diff --git a/content/en/docs/Administration/deploying-the-repo-source.md b/content/en/docs/Administration/deploying-the-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..ba348ca7ddb98a46dfa3bd291238e21d79d0f9fe --- /dev/null +++ b/content/en/docs/Administration/deploying-the-repo-source.md @@ -0,0 +1,63 @@ +# Deploying the Repo Source + +1. Run the following command to create the /srv/repo directory specified in the Nginx configuration file /etc/nginx/nginx.conf: + + ``` + mkdir -p /srv/repo + ``` + +2. Set the SELinux working mode to the permissive mode: + + ``` + setenforce permissive + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >After the repo server is restarted, you need to configure the repo server again. + +3. Configure firewall rules to enable the port \(port 80\) configured for Nginx. + + ``` + firewall-cmd --add-port=80/tcp --permanent + firewall-cmd --reload + ``` + + Check whether port 80 is enabled. If the output is** yes**, port 80 is enabled. + + ``` + firewall-cmd --query-port=80/tcp + ``` + + You can also enable port 80 using iptables. + + ``` + iptables -I INPUT -p tcp --dport 80 -j ACCEPT + ``` + +4. After the Nginx service is configured, you can use the IP address to access the web page, as shown in [Figure 1](#en-us_topic_0151921017_fig1880404110396). + + **Figure 1** Nginx deployment succeeded + ![](figures/nginx-deployment-succeeded.png "nginx-deployment-succeeded") + +5. Use either of the following methods to add the repo source to the /srv/repo directory: + - Copy related files in the image to the /srv/repo directory. + + ``` + mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ + cp -r /mnt/Packages /srv/repo/ + cp -r /mnt/repodata /srv/repo/ + cp -r /mnt/RPM-GPG-KEY-openEuler /srv/repo/ + ``` + + The **openEuler-20.03-LTS-aarch64-dvd.iso** file is stored in the **/home/openEuler** directory. + + - Create a soft link for the repo source in the /srv/repo directory. + + ``` + ln -s /home/openEuler/os /srv/repo/os + ``` + + /home/openEuler/os is the created repo source, and /srv/repo/os points to /home/openEuler/os. + + + diff --git a/content/en/docs/Administration/differences-between-ipv4-and-ipv6-configuration-using-the-iproute-command.md b/content/en/docs/Administration/differences-between-ipv4-and-ipv6-configuration-using-the-iproute-command.md new file mode 100644 index 0000000000000000000000000000000000000000..bb65ef8c0f1c52d23762350d3b6e73d852348371 --- /dev/null +++ b/content/en/docs/Administration/differences-between-ipv4-and-ipv6-configuration-using-the-iproute-command.md @@ -0,0 +1,143 @@ +# Differences Between IPv4 and IPv6 Configuration Using the iproute Command + +## Overview + +IPv4 and IPv6 are two different protocol standards. Therefore, the iproute commands are different in usage. This section describes the differences between IPv4 and IPv6 commands in the iproute package. + +## Lifecycle of an IPv6 Address + + + + + + + + + + + + + + + + + + + +

IPv6 status

+

Description

+

tentative

+

Temporary state: The newly added address is still in the DAD process.

+

preferred

+

Preferred state: The DAD process is complete, but no NA packet is received, indicating that the address does not conflict.

+

deprecated

+

Deprecated state: An address has a validity period (valid_lft or preferred_lft). After preferred_lft expires, the address changes to the deprecated state.

+

The address in this state cannot be used to create a new connection, but the original connection can still be used.

+

invalid

+

Invalid state: If the lease renewal fails after the preferred_lft time expires, the address status is set to invalid after the valid_lft time expires, indicating that the address cannot be used again.

+
+ +Remarks: + +- preferred\_lft: preferred lifetime. The preferred\_lft address has not expired and can be used for normal communication. If there are multiple preferred addresses, the address is selected based on the kernel mechanism. +- valid\_lft: valid lifetime. The address cannot be used for creating new connections within the period of \[preferred\_lft, valid\_lft\]. The existing connections are still valid. + +## ip link Command + +The commands are as follows: + +``` +ip link set IFNAME mtu MTU +``` + +The minimum PMTU of IPv6 is 1280. If the MTU is set to a value smaller than 1280, IPv6 addresses will be lost. Other devices cannot ping the IPv6 address. + +## ip addr Command + +1. The commands are as follows: + + ``` + ip [-6] addr add IFADDR dev IFNAME + ``` + + You can choose to add the -6 option or not to add the IPv6 address. The ip addr command determines whether the address is an IPv4 address or an IPv6 address based on the address type. + + If the -6 option is specified but IFADDR is an IPv4 address, an error message is returned. + +2. The commands are as follows: + + ``` + ip [-6] addr add IFADDR dev IFNAME [home|nodad] + ``` + + \[home|nodad\] is valid only for IPv6 addresses. + + - home: specifies the home address defined in RFC 6275. \(This address is obtained by the mobile node from the home link, and is a permanent address of the mobile node. If the mobile node remains in the same home link, communication between various entities is performed normally.\) + - nodad: indicates that DAD is not performed when this IPv6 address is added. \(RFC 4862\) If multiple interfaces on a device are configured with the same IPv6 address through nodad, the IPv6 address is used in the interface sequence. An IPv6 address with both nodad and non-nodad cannot be added the same interface because the two IP addresses are the same. Otherwise, the message "RTNETLINK answers: File exists" is displayed. + +3. The commands are as follows: + + ``` + ip [-6] addr del IFADDR dev IFNAME + ``` + + You can choose to add the -6 option or not to delete an IPv6 address. The ip addr del command determines whether an IPv4 address or an IPv6 address is used based on the address type. + +4. The commands are as follows: + + ``` + ip [-6] addr show dev IFNAME [tentative|-tentative|deprecated|-deprecated|dadfailed|-dadfailed|temporary] + ``` + + - If the -6 option is not specified, both IPv4 and IPv6 addresses are displayed. If the -6 option is specified, only IPv6 addresses are displayed. + - \[tentative|-tentative|deprecated|-deprecated|dadfailed|-dadfailed|temporary\]. These options are only for IPv6. You can filter and view addresses based on the IPv6 address status. + 1. tentative: \(only for IPv6\) lists only the addresses that have not passed duplicate address detection \(DAD\). + 2. -tentative: \(only for IPv6\) lists only the addresses that are not in the DAD process. + 3. deprecated: \(only for IPv6\) lists only the deprecated addresses. + 4. -deprecated: \(only for IPv6\) lists only the addresses that are not deprecated. + 5. dadfailed: \(only for IPv6\) lists only the addresses that fail the DAD. + 6. -dadfailed: \(only for IPv6\) lists only the addresses that do not encounter DAD failures. + 7. temporary: \(only for IPv6\) lists only the temporary addresses. + + + +## ip route Command + +1. The commands are as follows: + + ``` + ip [-6] route add ROUTE [mtu lock MTU] + ``` + + - -6 option: You can add the -6 option or not when adding an IPv6 route. The ip route command determines whether an IPv4 or IPv6 address is used based on the address type. + + - mtu lock MTU: specifies the MTU of the locked route. If the MTU is not locked, the MTU value may be changed by the kernel during the PMTUD process. If the MTU is locked, PMTUD is not attempted. All IPv4 packets are not set with the DF bit and IPv6 packets are segmented based on the MTU. + +2. The commands are as follows: + + ``` + ip [-6] route del ROUTE + ``` + + You can choose whether to add the -6 option when deleting an IPv6 route. The ip route command determines whether an IPv4 address or an IPv6 address is used based on the address type. + + +## ip rule command + +1. The commands are as follows: + + ``` + ip [-6] rule list + ``` + + -6 option: If the -6 option is set, IPv6 policy-based routes are printed. If the -6 option is not set, IPv4 policy-based routes are printed. Therefore, you need to configure the -6 option according to the specific protocol type. + +2. The commands are as follows: + + ``` + ip [-6] rule [add|del] [from|to] ADDR table TABLE pref PREF + ``` + + -6 option: IPv6-related policy routing entries need to be configured with the -6 option. Otherwise, the error message "Error: Invalid source address." is displayed. Accordingly, the -6 option cannot be set for IPv4-related policy routing entries. Otherwise, the error message "Error: Invalid source address." is displayed. + + diff --git a/content/en/docs/Administration/disabling-selinux-24.md b/content/en/docs/Administration/disabling-selinux-24.md new file mode 100644 index 0000000000000000000000000000000000000000..7eb598182373b713dc14c9a9c7d146471dc22078 --- /dev/null +++ b/content/en/docs/Administration/disabling-selinux-24.md @@ -0,0 +1,9 @@ +# Disabling SELinux + +1. Modify the configuration file. + + ``` + #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux + ``` + + diff --git a/content/en/docs/Administration/disabling-selinux-9.md b/content/en/docs/Administration/disabling-selinux-9.md new file mode 100644 index 0000000000000000000000000000000000000000..42bb301a7d1c84e855728239be388c51998e9ac7 --- /dev/null +++ b/content/en/docs/Administration/disabling-selinux-9.md @@ -0,0 +1,9 @@ +# Disabling SELinux + +1. Modify the configuration file. + + ``` + #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux + ``` + + diff --git a/content/en/docs/Administration/disabling-selinux.md b/content/en/docs/Administration/disabling-selinux.md new file mode 100644 index 0000000000000000000000000000000000000000..77a5b7d8dff9394dd0b6d5d38fdf1a5ceefc257c --- /dev/null +++ b/content/en/docs/Administration/disabling-selinux.md @@ -0,0 +1,9 @@ +# Disabling SELinux + +1. Modify the configuration file. + + ``` + #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux + ``` + + diff --git a/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-23.md b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-23.md new file mode 100644 index 0000000000000000000000000000000000000000..7d868df7d8afd1e9f98cfef7732e943de4d706e8 --- /dev/null +++ b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-23.md @@ -0,0 +1,21 @@ +# Disabling the Firewall and Automatic Startup + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>It is recommended that firewall be disabled in the test environment to prevent network impact. Configure the firewall based on actual requirements. + +1. Stop the firewall service. + + ``` + #systemctl stop firewalld + ``` + +2. Disable the firewall service. + + ``` + #systemctl disable firewalld + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The automatic startup is automatically disabled as the firewall is disabled. + + diff --git a/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-8.md b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-8.md new file mode 100644 index 0000000000000000000000000000000000000000..b9614436da85fa7fcb4d2953f598061c522194cc --- /dev/null +++ b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup-8.md @@ -0,0 +1,21 @@ +# Disabling the Firewall and Automatic Startup + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>It is recommended that firewall be disabled in the test environment to prevent network impact. Configure the firewall based on actual requirements. + +1. Stop the firewall service. + + ``` + #systemctl stop firewalld + ``` + +2. Disable the firewall service. + + ``` + #systemctl disable firewalld + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The automatic startup is automatically disabled as the firewall is disabled. + + diff --git a/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup.md b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup.md new file mode 100644 index 0000000000000000000000000000000000000000..95b555521f5fb64165404ee26ac2462a5f6abbee --- /dev/null +++ b/content/en/docs/Administration/disabling-the-firewall-and-automatic-startup.md @@ -0,0 +1,21 @@ +# Disabling the Firewall and Automatic Startup + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>It is recommended that firewall be disabled in the test environment to prevent network impact. Configure the firewall based on actual requirements. + +1. Stop the firewall service. + + ``` + #systemctl stop firewalld + ``` + +2. Disable the firewall service. + + ``` + #systemctl disable firewalld + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The automatic startup is automatically disabled as the firewall is disabled. + + diff --git a/content/en/docs/Administration/en-us_bookmap_0229622607.md b/content/en/docs/Administration/en-us_bookmap_0229622607.md new file mode 100644 index 0000000000000000000000000000000000000000..da3f52898d46a8286dea60760fc733951166f618 --- /dev/null +++ b/content/en/docs/Administration/en-us_bookmap_0229622607.md @@ -0,0 +1,299 @@ +# Administrator Guide + +- [Terms of Use](terms-of-use.md) +- [About This Document ](about-this-document.md) +- [Basic Configuration](basic-configuration.md) + - [Using Commands](using-commands.md) + - [Setting the System Locale](setting-the-system-locale.md) + - [Setting the Keyboard Layout](setting-the-keyboard-layout.md) + - [Setting the Date and Time](setting-the-date-and-time.md) + - [Using the timedatectl Command](using-the-timedatectl-command.md) + - [Using the date Command](using-the-date-command.md) + - [Using the hwclock Command](using-the-hwclock-command.md) + + + +- [Viewing System Information](viewing-system-information.md) +- [User Management](user-management.md) + - [Adding a User](adding-a-user.md) + - [Modifying a User Account](modifying-a-user-account.md) + - [Deleting Users](deleting-users.md) + - [Authorizing Administrator Accounts](authorizing-administrator-accounts.md) + - [Granting Rights to a Common User](granting-rights-to-a-common-user.md) + + +- [Using the DNF to Manage Software Packages](using-the-dnf-to-manage-software-packages.md) + - [Configuring the DNF](configuring-the-dnf.md) + - [Modifying the Configuration File](modifying-the-configuration-file.md) + - [Creating a Local Software Repository](creating-a-local-software-repository.md) + - [Adding, Enabling, and Disabling Software Sources](adding-enabling-and-disabling-software-sources.md) + + - [Managing Software Package](managing-software-package.md) + - [Managing Software Package Groups](managing-software-package-groups.md) + - [Check and Update](check-and-update.md) + +- [Service Management](service-management.md) + - [Introduction to systemd](introduction-to-systemd.md) + - [Features](features.md) + - [Managing System Services](managing-system-services.md) + - [Changing a Runlevel](changing-a-runlevel.md) + - [Shutting Down, Suspending, and Hibernating the Operating System](shutting-down-suspending-and-hibernating-the-operating-system.md) + +- [Process Management](process-management.md) + - [Managing System Processes](managing-system-processes.md) + - [Scheduling a Process](scheduling-a-process.md) + - [Using the at Command to Run Processes at the Scheduled Time](using-the-at-command-to-run-processes-at-the-scheduled-time.md) + - [Using the cron Service to Run Commands Periodically](using-the-cron-service-to-run-commands-periodically.md) + + - [Suspending/Resuming a Process](suspending-resuming-a-process.md) + + - [Viewing Processes](viewing-processes.md) + +- [Configuring the Network](configuring-the-network.md) + - [Configuring an IP Address](configuring-an-ip-address.md) + - [Using the nmcli Command](using-the-nmcli-command.md) + - [Introduction to nmcli](introduction-to-nmcli.md) + - [Setting Network Connections](setting-network-connections.md) + - [Configuring Dynamic IP Connections](configuring-dynamic-ip-connections.md) + - [Configuring Static IP Connections](configuring-static-ip-connections.md) + - [Adding a Wi-Fi Connection](adding-a-wi-fi-connection.md) + - [Modifying Attributes](modifying-attributes.md) + + - [Configuring a Static Route](configuring-a-static-route.md) + + - [Using the ip Command](using-the-ip-command.md) + - [Configuring IP Addresses](configuring-ip-addresses.md) + - [Configuring a Static Route](configuring-a-static-route-0.md) + + - [Configuring the Network Through the ifcfg File](configuring-the-network-through-the-ifcfg-file.md) + + - [Configuring a Host Name](configuring-a-host-name.md) + - [Introduction](introduction.md) + - [Configuring a Host Name by Running the hostnamectl Command](configuring-a-host-name-by-running-the-hostnamectl-command.md) + - [Configuring a Host Name by Running the nmcli Command](configuring-a-host-name-by-running-the-nmcli-command.md) + + - [Configuring Network Bonding](configuring-network-bonding.md) + - [Running the nmcli Command](running-the-nmcli-command.md) + - [Configuring Network Bonding by Using a Command Line](configuring-network-bonding-by-using-a-command-line.md) + - [Checking Whether the Bonding Kernel Module Is Installed](checking-whether-the-bonding-kernel-module-is-installed.md) + - [Creating a Channel Bonding Interface](creating-a-channel-bonding-interface.md) + - [Creating a Slave Interface](creating-a-slave-interface.md) + - [Activating Channel Bonding](activating-channel-bonding.md) + - [Creating Multiple Bondings](creating-multiple-bondings.md) + + + - [IPv6 Differences \(vs IPv4\)](ipv6-differences-(vs-ipv4).md) + - [Restrictions](restrictions.md) + - [Configuration Description](configuration-description.md) + - [Setting the MTU of an Interface Device](setting-the-mtu-of-an-interface-device.md) + - [Stateful IPv6 Address Autoconfiguration](stateful-ipv6-address-autoconfiguration.md) + - [Kernel Supporting Socket-Related System Calls](kernel-supporting-socket-related-system-calls.md) + - [Persistency Configuration of the IPv4 dhclient Daemon Process](persistency-configuration-of-the-ipv4-dhclient-daemon-process.md) + - [Differences Between IPv4 and IPv6 Configuration Using the iproute Command](differences-between-ipv4-and-ipv6-configuration-using-the-iproute-command.md) + - [Configuration Differences of the NetworkManager Service](configuration-differences-of-the-networkmanager-service.md) + + - [FAQ](faq.md) + - [The iscsi-initiator-utils Does Not Support the fe80 IPv6 Address.](the-iscsi-initiator-utils-does-not-support-the-fe80-ipv6-address.md) + - [The IPv6 Address Is Lost After the NIC Is Down.](the-ipv6-address-is-lost-after-the-nic-is-down.md) + - [Taking a Long Time to Add or Delete an IPv6 Address for a Bond Interface with Multiple IPv6 Addresses](taking-a-long-time-to-add-or-delete-an-ipv6-address-for-a-bond-interface-with-multiple-ipv6-addresse.md) + - [Rsyslog Log Transmission Is Delayed in the Scenario Where Both IPv4 and IPv6 Are Used](rsyslog-log-transmission-is-delayed-in-the-scenario-where-both-ipv4-and-ipv6-are-used.md) + + + +- [Managing Hard Disks Through LVM](managing-hard-disks-through-lvm.md) + - [LVM Overview](lvm-overview.md) + - [Installing the LVM](installing-the-lvm.md) + - [Managing PVs](managing-pvs.md) + - [Managing VGs](managing-vgs.md) + - [Managing LVs](managing-lvs.md) + - [Creating and Mounting a File System](creating-and-mounting-a-file-system.md) + +- [Using the KAE](using-the-kae.md) + - [Overview](overview.md) + - [Application Scenarios](application-scenarios.md) + - [Installing, Running, and Uninstalling the KAE](installing-running-and-uninstalling-the-kae.md) + - [Installing the Accelerator Software Packages](installing-the-accelerator-software-packages.md) + - [Preparing for Installation](preparing-for-installation.md) + - [Installing the Accelerator Software Package](installing-the-accelerator-software-package.md) + - [Performing Required Operations After Installation](performing-required-operations-after-installation.md) + - [Testing the OpenSSL Accelerator Engine](testing-the-openssl-accelerator-engine.md) + + + - [Upgrading the Accelerator Software Packages](upgrading-the-accelerator-software-packages.md) + - [Uninstalling the Accelerator Software Packages](uninstalling-the-accelerator-software-packages.md) + + - [Querying Logs](querying-logs.md) + - [Application Cases](application-cases.md) + - [Acceleration Engine Application](acceleration-engine-application.md) + - [Example Code for the KAE](example-code-for-the-kae.md) + - [Using the KAE in the OpenSSL Configuration File openssl.cnf](using-the-kae-in-the-openssl-configuration-file-openssl-cnf.md) + + + - [Troubleshooting](troubleshooting.md) + - [Initialization Failure](initialization-failure.md) + - [Failed to Identify Accelerator Devices After the Acceleration Engine Is Installed](failed-to-identify-accelerator-devices-after-the-acceleration-engine-is-installed.md) + - [Failed to Upgrade the Accelerator Drivers](failed-to-upgrade-the-accelerator-drivers.md) + + +- [Configuring Services](configuring-services.md) + - [Configuring the Repo Server](configuring-the-repo-server.md) + - [Overview](overview-1.md) + - [Creating or Updating a Local Repo Source](creating-or-updating-a-local-repo-source.md) + - [Obtaining the ISO Image File](obtaining-the-iso-image-file.md) + - [Mounting an ISO File to Create a Repo Source](mounting-an-iso-file-to-create-a-repo-source.md) + - [Creating a Local Repo Source](creating-a-local-repo-source.md) + - [Updating the Repo Source](updating-the-repo-source.md) + + - [Deploying the Remote Repo Source](deploying-the-remote-repo-source.md) + - [Installing and Configuring Nginx](installing-and-configuring-nginx.md) + - [Starting Nginx](starting-nginx.md) + - [Deploying the Repo Source](deploying-the-repo-source.md) + + - [Using the repo Source](using-the-repo-source.md) + - [Configuring repo as the yum Source](configuring-repo-as-the-yum-source.md) + - [repo Priority](repo-priority.md) + - [Related Commands of dnf](related-commands-of-dnf.md) + + + - [Configuring the FTP Server](configuring-the-ftp-server.md) + - [General Introduction](general-introduction.md) + - [Using vsftpd](using-vsftpd.md) + - [Configuring vsftpd](configuring-vsftpd.md) + - [vsftpd Configuration Files](vsftpd-configuration-files.md) + - [Default Configuration Description](default-configuration-description.md) + - [Setting the Local Time](setting-the-local-time.md) + - [Configuring Welcome Information](configuring-welcome-information.md) + - [Configuring the Login Permission of a System Account](configuring-the-login-permission-of-a-system-account.md) + + - [Verifying Whether the FTP Service Is Successfully Set Up](verifying-whether-the-ftp-service-is-successfully-set-up.md) + - [Configuring a Firewall](configuring-a-firewall.md) + - [File Transmission](file-transmission.md) + + - [Configuring the Web Server](configuring-the-web-server.md) + - [Apache Server](apache-server.md) + - [Overview](overview-2.md) + - [Managing httpd](managing-httpd.md) + - [Configuration File Description](configuration-file-description.md) + - [Management Module and SSL](management-module-and-ssl.md) + - [Verifying Whether the Web Service Is Successfully Set Up](verifying-whether-the-web-service-is-successfully-set-up.md) + + - [Nginx Server](nginx-server.md) + - [Overview](overview-3.md) + - [Installing Nginx](installing-nginx.md) + - [Managing Nginx](managing-nginx.md) + - [Configuration File Description](configuration-file-description-4.md) + - [Management Modules](management-modules.md) + - [Verifying Whether the Web Service Is Successfully Set Up](verifying-whether-the-web-service-is-successfully-set-up-5.md) + + + - [Setting Up the Database Server](setting-up-the-database-server.md) + - [PostgreSQL Server](postgresql-server.md) + - [Software Description](software-description.md) + - [Configuring the Environment](configuring-the-environment.md) + - [Disabling the Firewall and Automatic Startup](disabling-the-firewall-and-automatic-startup.md) + - [Disabling SELinux](disabling-selinux.md) + - [Creating a User Group and a User](creating-a-user-group-and-a-user.md) + - [Creating Data Drives](creating-data-drives.md) + - [Data Directory Authorization](data-directory-authorization.md) + + - [Installing, Running, and Uninstalling PostgreSQL](installing-running-and-uninstalling-postgresql.md) + - [Installing PostgreSQL](installing-postgresql.md) + - [Running PostgreSQL](running-postgresql.md) + - [Initializing the Database](initializing-the-database.md) + - [Starting the Database](starting-the-database.md) + - [Logging In to the Database](logging-in-to-the-database.md) + - [Configuring the Database Accounts and Passwords](configuring-the-database-accounts-and-passwords.md) + - [Exiting the Database](exiting-the-database.md) + - [Stopping the Database](stopping-the-database.md) + + - [Uninstalling PostgreSQL](uninstalling-postgresql.md) + + - [Managing Database Roles](managing-database-roles.md) + - [Creating a Role](creating-a-role.md) + - [Viewing Roles](viewing-roles.md) + - [Modifying a Role](modifying-a-role.md) + - [Deleting a Role](deleting-a-role.md) + - [Role Permissions](role-permissions.md) + - [Deleting User Permissions](deleting-user-permissions.md) + + - [Managing Databases](managing-databases.md) + - [Creating a Database](creating-a-database.md) + - [Selecting a Database](selecting-a-database.md) + - [Viewing a Database](viewing-a-database.md) + - [Deleting a Database](deleting-a-database.md) + - [Backing Up a Database](backing-up-a-database.md) + - [Restoring a Database](restoring-a-database.md) + + + - [MariaDB Server](mariadb-server.md) + - [Software Description](software-description-6.md) + - [Configuring the Environment](configuring-the-environment-7.md) + - [Disabling the Firewall and Automatic Startup](disabling-the-firewall-and-automatic-startup-8.md) + - [Disabling SELinux](disabling-selinux-9.md) + - [Creating a User Group and a User](creating-a-user-group-and-a-user-10.md) + - [Creating Data Drives](creating-data-drives-11.md) + - [Creating a Database Directory and Granting Permissions](creating-a-database-directory-and-granting-permissions.md) + + - [Installing, Running, and Uninstalling MariaDB Server](installing-running-and-uninstalling-mariadb-server.md) + - [Installing MariaDB](installing-mariadb.md) + - [Running MariaDB Server](running-mariadb-server.md) + - [Uninstalling MariaDB](uninstalling-mariadb.md) + + - [Managing Database Users](managing-database-users.md) + - [Creating Users](creating-users.md) + - [Viewing Users](viewing-users.md) + - [Modifying Users](modifying-users.md) + - [Deleting Users](deleting-users-12.md) + - [Granting Permissions to a User](granting-permissions-to-a-user.md) + - [Deleting User Permissions](deleting-user-permissions-13.md) + + - [Managing Databases](managing-databases-14.md) + - [Creating a Database](creating-a-database-15.md) + - [Viewing a Database](viewing-a-database-16.md) + - [Selecting a Database](selecting-a-database-17.md) + - [Deleting a Database](deleting-a-database-18.md) + - [Backing Up a Database](backing-up-a-database-19.md) + - [Restoring a Database](restoring-a-database-20.md) + + + - [MySQL Server](mysql-server.md) + - [Software Description](software-description-21.md) + - [Configuring the Environment](configuring-the-environment-22.md) + - [Disabling the Firewall and Automatic Startup](disabling-the-firewall-and-automatic-startup-23.md) + - [Disabling SELinux](disabling-selinux-24.md) + - [Creating a User Group and a User](creating-a-user-group-and-a-user-25.md) + - [Creating Data Drives](creating-data-drives-26.md) + - [Creating a Database Directory and Granting Permissions](creating-a-database-directory-and-granting-permissions-27.md) + + - [Installing, Running, and Uninstalling MySQL](installing-running-and-uninstalling-mysql.md) + - [Installing MySQL](installing-mysql.md) + - [Running MySQL](running-mysql.md) + - [Uninstalling MySQL](uninstalling-mysql.md) + + - [Managing Database Users](managing-database-users-28.md) + - [Creating Users](creating-users-29.md) + - [Viewing Users](viewing-users-30.md) + - [Modifying Users](modifying-users-31.md) + - [Deleting Users](deleting-users-32.md) + - [Granting Permissions to a User](granting-permissions-to-a-user-33.md) + - [Deleting User Permissions](deleting-user-permissions-34.md) + + - [Managing Databases](managing-databases-35.md) + - [Creating a Database](creating-a-database-36.md) + - [Viewing a Database](viewing-a-database-37.md) + - [Selecting a Database](selecting-a-database-38.md) + - [Deleting a Database](deleting-a-database-39.md) + - [Backing Up a Database](backing-up-a-database-40.md) + - [Restoring a Database](restoring-a-database-41.md) + + + + +- [FAQs](faqs.md) + - [Why Is the Memory Usage of the libvirtd Service Queried by Running the systemctl and top Commands Different?](why-is-the-memory-usage-of-the-libvirtd-service-queried-by-running-the-systemctl-and-top-commands-di.md) + - [An Error Occurs When stripsize Is Set to 4 During RAID 0 Volume Configuration](an-error-occurs-when-stripsize-is-set-to-4-during-raid-0-volume-configuration.md) + - [Failed to Compile MariaDB Using rpmbuild](failed-to-compile-mariadb-using-rpmbuild.md) + - [Failed to Start the SNTP Service Using the Default Configuration](failed-to-start-the-sntp-service-using-the-default-configuration.md) + - [Installation Failure Caused by Software Package Conflict, File Conflict, or Missing Software Package](installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md) + + diff --git a/content/en/docs/Administration/example-code-for-the-kae.md b/content/en/docs/Administration/example-code-for-the-kae.md new file mode 100644 index 0000000000000000000000000000000000000000..c34ba0ff4077077c1d26a5a5c518d97bf625ca6c --- /dev/null +++ b/content/en/docs/Administration/example-code-for-the-kae.md @@ -0,0 +1,122 @@ +# Example Code for the KAE + +``` +#include +``` + +``` +#include +``` + +``` + +``` + +``` +/* OpenSSL headers */ +``` + +``` +#include +``` + +``` +#include +``` + +``` +#include +``` + +``` +#include +``` + +``` + +``` + +``` +int main(int argc, char **argv) +``` + +``` +{ +``` + +``` + /* Initializing OpenSSL */ +``` + +``` + SSL_load_error_strings(); +``` + +``` + ERR_load_BIO_strings(); +``` + +``` + OpenSSL_add_all_algorithms(); +``` + +``` + +``` + +``` + /*You can use ENGINE_by_id Function to get the handle of the Huawei Accelerator Engine*/ +``` + +``` + ENGINE *e = ENGINE_by_id("kae"); +``` + +``` + /* Enable the accelerator asynchronization function. This parameter is optional. The value 0 indicates disabled, and the value 1 indicates enabled. The asynchronous function is enabled by default. */ +``` + +``` + ENGINE_ctrl_cmd_string(e, "KAE_CMD_ENABLE_ASYNC", "1", 0) +``` + +``` + ENGINE_init(e); +``` + +``` + +``` + +``` + RSA*rsa=RSA_new_method(e);#Specify the engine for RSA encryption and decryption. +``` + +``` + /*The user code*/ +``` + +``` + ...... +``` + +``` + +``` + +``` +; +``` + +``` + ENGINE_free(e); +``` + +``` +; +``` + +``` +} +``` + diff --git a/content/en/docs/Administration/exiting-the-database.md b/content/en/docs/Administration/exiting-the-database.md new file mode 100644 index 0000000000000000000000000000000000000000..ebd1f86b20cec96e3995d2507254c8e4bd4786e6 --- /dev/null +++ b/content/en/docs/Administration/exiting-the-database.md @@ -0,0 +1,9 @@ +# Exiting the Database + +1. Run **\\q** to exit from the database. + + ``` + postgres=#\q + ``` + + diff --git a/content/en/docs/Administration/failed-to-compile-mariadb-using-rpmbuild.md b/content/en/docs/Administration/failed-to-compile-mariadb-using-rpmbuild.md new file mode 100644 index 0000000000000000000000000000000000000000..d19936787c87564d05a5c42cecf501649896890c --- /dev/null +++ b/content/en/docs/Administration/failed-to-compile-mariadb-using-rpmbuild.md @@ -0,0 +1,34 @@ +# Failed to Compile MariaDB Using rpmbuild + +## Symptom + +When you log in to the system as user **root** and run the **rpmbuild** command to compile the MariaDB source code, the compilation fails and the following information is displayed: + +``` ++ echo 'mysql can'\''t run test as root' +mysql can't run test as root ++ exit 1 +``` + +## Possible Cause + +The MariaDB does not allow user **root** to execute test cases. However, test cases are automatically executed during compilation. As a result, the compilation process is blocked. + +## Solution + +Use a text editor, such as vi, to modify the value of the **runtest** variable in the **mariadb.spec** file. + +Before the modification: + +``` +%global runtest 1 +``` + +After the modification: + +``` +%global runtest 0 +``` + +The modification disables the function of executing test cases during compilation, which does not affect the compilation and the RPM package content after compilation. + diff --git a/content/en/docs/Administration/failed-to-identify-accelerator-devices-after-the-acceleration-engine-is-installed.md b/content/en/docs/Administration/failed-to-identify-accelerator-devices-after-the-acceleration-engine-is-installed.md new file mode 100644 index 0000000000000000000000000000000000000000..7dae6b1d671db2f28f31893f8b1021124e01bae3 --- /dev/null +++ b/content/en/docs/Administration/failed-to-identify-accelerator-devices-after-the-acceleration-engine-is-installed.md @@ -0,0 +1,47 @@ +# Failed to Identify Accelerator Devices After the Acceleration Engine Is Installed + +## Symptom + +After the acceleration engine is installed, the accelerator devices cannot be identified. + +## Solution + +1. Check whether the device exists in the virtual file system. Normally, the following accelerator devices are displayed: + + ``` + # ls -al /sys/class/uacce/ + total 0 + lrwxrwxrwx. 1 root root 0 Nov 14 03:45 hisi_hpre-2 -> ../../devices/pci0000:78/0000:78:00.0/0000:79:00.0/uacce/hisi_hpre-2 + lrwxrwxrwx. 1 root root 0 Nov 14 03:45 hisi_hpre-3 -> ../../devices/pci0000:b8/0000:b8:00.0/0000:b9:00.0/uacce/hisi_hpre-3 + lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_rde-4 -> ../../devices/pci0000:78/0000:78:01.0/uacce/hisi_rde-4 + lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_rde-5 -> ../../devices/pci0000:b8/0000:b8:01.0/uacce/hisi_rde-5 + lrwxrwxrwx. 1 root root 0 Nov 14 08:39 hisi_sec-0 -> ../../devices/pci0000:74/0000:74:01.0/0000:76:00.0/uacce/hisi_sec-0 + lrwxrwxrwx. 1 root root 0 Nov 14 08:39 hisi_sec-1 -> ../../devices/pci0000:b4/0000:b4:01.0/0000:b6:00.0/uacce/hisi_sec-1 + lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_zip-6 -> ../../devices/pci0000:74/0000:74:00.0/0000:75:00.0/uacce/hisi_zip-6 + lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_zip-7 -> ../../devices/pci0000:b4/0000:b4:00.0/0000:b5:00.0/uacce/hisi_zip-7 + ``` + +2. If you want to use the HPRE device but the device is not found in [1](#li1760055514614), check whether the accelerator software is correctly installed by referring to [Failed to Upgrade the Accelerator Drivers](failed-to-upgrade-the-accelerator-drivers.md). +3. If the accelerator software is correctly installed, run the **lspci** command to check whether the physical device exists. + + ``` + # lspci | grep HPRE + 79:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon HPRE Engine (rev 21) + b9:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon HPRE Engine (rev 21) + ## lspci | grep SEC + 76:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon SEC Engine (rev 21) + b6:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon SEC Engine (rev 21) + ## lspci | grep RDE + 78:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21) + b8:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21) + ## lspci | grep ZIP + 75:00.0 Processing accelerators: Huawei Technologies Co., Ltd. HiSilicon ZIP Engine (rev 21) + b5:00.0 Processing accelerators: Huawei Technologies Co., Ltd. HiSilicon ZIP Engine (rev 21) + # + ``` + +4. If no physical device is found in [3](#li1560012551369), perform the following operations: + - Check whether the accelerator license has been imported. If no, import the accelerator license. For details, see "License Management" in the [TaiShan Rack Server iBMC \(V500 or Later\) User Guide](https://support.huawei.com/enterprise/en/doc/EDOC1100121685/426cffd9?idPath=7919749|9856522|21782478|8060757). After the accelerator license is imported, power off and restart the BMC to enable the license. + - Check whether the BMC and BIOS versions support the accelerator feature. + + diff --git a/content/en/docs/Administration/failed-to-start-the-sntp-service-using-the-default-configuration.md b/content/en/docs/Administration/failed-to-start-the-sntp-service-using-the-default-configuration.md new file mode 100644 index 0000000000000000000000000000000000000000..f136c78a25ee89ff48542269ab9128b69b9d1aed --- /dev/null +++ b/content/en/docs/Administration/failed-to-start-the-sntp-service-using-the-default-configuration.md @@ -0,0 +1,14 @@ +# Failed to Start the SNTP Service Using the Default Configuration + +## Symptom + +The SNTP service fails to be started with the default configuration. + +## Possible Cause + +The domain name of the NTP server is not added to the default configuration. + +## Solution + +Modify the **/etc/sysconfig/sntp** file and add the domain name of the NTP server in China: **0.generic.pool.ntp.org**. + diff --git a/content/en/docs/Administration/failed-to-upgrade-the-accelerator-drivers.md b/content/en/docs/Administration/failed-to-upgrade-the-accelerator-drivers.md new file mode 100644 index 0000000000000000000000000000000000000000..21c3d22749aa49961b5ed95f6de4fa4c969ab684 --- /dev/null +++ b/content/en/docs/Administration/failed-to-upgrade-the-accelerator-drivers.md @@ -0,0 +1,14 @@ +# Failed to Upgrade the Accelerator Drivers + +## Symptom + +After the accelerator drivers are upgraded, the driver version is not changed after the system is restarted. + +## Possible Cause + +Before the accelerator drivers are upgraded, the system upgrades other driver packages. These driver packages may update the boot file system initramfs, and update the accelerator drivers to initramfs before upgrade. For example, if the NIC driver is updated or initramfs is manually updated, the system loads the accelerator drivers from initramfs first during restart. + +## Solution + +After the accelerator drivers are upgraded, run the **dracut --force** command to update initramfs again. + diff --git a/content/en/docs/Administration/faq.md b/content/en/docs/Administration/faq.md new file mode 100644 index 0000000000000000000000000000000000000000..3829ae45406e805d2740f21290acf02f06df607b --- /dev/null +++ b/content/en/docs/Administration/faq.md @@ -0,0 +1,4 @@ +# FAQ + + + diff --git a/content/en/docs/Administration/faqs.md b/content/en/docs/Administration/faqs.md new file mode 100644 index 0000000000000000000000000000000000000000..4065da7df55705375681f5fb11c99e96f1924b39 --- /dev/null +++ b/content/en/docs/Administration/faqs.md @@ -0,0 +1,4 @@ +# FAQs + + + diff --git a/content/en/docs/Administration/features.md b/content/en/docs/Administration/features.md new file mode 100644 index 0000000000000000000000000000000000000000..341f46af58d9683d4c3f5c867d13cc0eba1cf69f --- /dev/null +++ b/content/en/docs/Administration/features.md @@ -0,0 +1,51 @@ +# Features + +## Fast Activation + +The systemd provides more aggressive parallelization than UpStart. The use of Socket- and D-Bus based activation reduces the time required to boot the operating system. + +To accelerate system boot, systemd seeks to: + +- Activate only the necessary processes +- Activate as many processes as possible in parallel + +## On-Demand Activation + +During SysVinit initialization, it activates all the possible background service processes that might be used. Users can log in only after all these service processes are activated. The drawbacks in SysVinit are obvious: slow system boot and a waste of system resources. + +Some services may rarely or even never be used during system runtime. For example, CUPS, printing services are rarely used on most servers. SSHD is rarely accessed on many servers. It is unnecessary to spend time on starting these services and system resources. + +systemd can only be activated when a service is requested. If the service request is over, systemd stops. + +## Service Lifecycle Management by Cgroups + +An important role of an init system is to track and manage the lifecycle of services. It can start and stop a service. However, it is more difficult than you could ever imagine to encode an init system into stopping services. + +Service processes often run in background as daemons and sometimes fork twice. In UpStart, the expect stanza in the configuration file must be correctly configured. Otherwise, UpStart is unable to learn a daemon's PID by counting the number of forks. + +Things are made simpler with Cgroups, which have long been used to manage system resource quotas. The ease of use comes largely from its file-system-like user interface. When a parent service creates a child service, the latter inherits all attributes of the Cgroup to which the parent service belongs. This means that all relevant services are put into the same Cgroup. The systemd can find the PIDs of all relevant services simply by traversing their control group and then stop them one by one. + +## Mount and Automount Point Management + +In traditional Linux systems, users can use the **/etc/fstab** file to maintain fixed file system mount points. These mount points are automatically mounted during system startup. Once the startup is complete, these mount points are available. These mount points are file systems critical to system running, such as the **HOME** directory. Like SysVinit, systemd manages these mount points so that they can be automatically mounted at system startup. systemd is also compatible with the **/etc/fstab** file. You can continue to use this file to manage mount points. + +There are times when you need to mount or unmount on demand. For example, a temporary mounting point is required for you to access the DVD content, and the mounting point is canceled \(using the **umount** command\) if you no longer need to access the content, thereby saving resources. This is traditionally achieved using the autofs service. + +The systemd allows automatic mount without a need to install autofs. + +## Transactional Dependency Management + +System boot involves a host of separate jobs, some of which may be dependent on each other. For example, a network file system \(NFS\) can be mounted only after network connectivity is activated. The systemd can run a large number of dependent jobs in parallel, but not all of them. Looking back to the NFS example, it is impossible to mount NFS and activate network at the same time. Before running a job, systemd calculates its dependencies, creates a temporary transaction, and verifies that this transaction is consistent \(all relevant services can be activated without any dependency on each other\). + +## Compatibility with SysVinit Scripts + +Like UpStart, systemd introduces new configuration methods and has new requirements for application development. If you want to replace the currently running initialization system with systemd, systemd must be compatible with the existing program. It is difficult to modify all the service code in any Linux distribution in a short time for the purpose of using systemd. + +The systemd provides features compatible with SysVinit and LSB initscripts. You do not need to modify the existing services and processes in the system. This reduces the cost of migrating the system to systemd, making it possible for users to replace the existing initialization system with systemd. + +## System State Snapshots and System Restoration + +The systemd can be started on demand. Therefore, the running status of the system changes dynamically, and you cannot know the specific services that are running in the system. systemd snapshots enable the current system running status to be saved and restored. + +For example, if services A and B are running in the system, you can run the **systemd** command to create a snapshot for the current system running status. Then stop process A or make any other change to the system, for example, starting process C. After these changes, run the snapshot restoration command of systemd to restore the system to the point at which the snapshot was taken. That is, only services A and B are running. A possible application scenario is debugging. For example, when an exception occurs on the server, a user saves the current status as a snapshot for debugging, and then perform any operation, for example, stopping the service. After the debugging is complete, restore the snapshot. + diff --git a/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png b/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png new file mode 100644 index 0000000000000000000000000000000000000000..900cdc07c1f0e844bc48fe2342e83c91a23c24ec Binary files /dev/null and b/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e-1.png differ diff --git a/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png b/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png new file mode 100644 index 0000000000000000000000000000000000000000..900cdc07c1f0e844bc48fe2342e83c91a23c24ec Binary files /dev/null and b/content/en/docs/Administration/figures/d1376b2a-d036-41c4-b852-e8368f363b5e.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0229622729.png b/content/en/docs/Administration/figures/en-us_image_0229622729.png new file mode 100644 index 0000000000000000000000000000000000000000..47f2d1cac133379469ed88b2bcb7213d75cf881e Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0229622729.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0229622789.png b/content/en/docs/Administration/figures/en-us_image_0229622789.png new file mode 100644 index 0000000000000000000000000000000000000000..102d523ea5c2a1fedf4975556bf8b26f7599daaf Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0229622789.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0230050789.png b/content/en/docs/Administration/figures/en-us_image_0230050789.png new file mode 100644 index 0000000000000000000000000000000000000000..0b785be2a026fe059c6ee41700a971a11cfff7ae Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0230050789.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143189.png b/content/en/docs/Administration/figures/en-us_image_0231143189.png new file mode 100644 index 0000000000000000000000000000000000000000..7656f3aa5f5907f1e9f981c0cb5d44d4fcb84ef3 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143189.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143191.png b/content/en/docs/Administration/figures/en-us_image_0231143191.png new file mode 100644 index 0000000000000000000000000000000000000000..a82d1bcb2b719e3a372f63ae099cb5d52a93b536 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143191.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143193.png b/content/en/docs/Administration/figures/en-us_image_0231143193.png new file mode 100644 index 0000000000000000000000000000000000000000..94614045bddb0871b44d2f6603402f914871ad61 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143193.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143195.png b/content/en/docs/Administration/figures/en-us_image_0231143195.png new file mode 100644 index 0000000000000000000000000000000000000000..05011dbabe2d245c37ec68de646851bf955a2361 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143195.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143196.png b/content/en/docs/Administration/figures/en-us_image_0231143196.png new file mode 100644 index 0000000000000000000000000000000000000000..9bdbac969920af77721980804bd1c5433bea5bc9 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143196.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143197.png b/content/en/docs/Administration/figures/en-us_image_0231143197.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea4eec4002374096d8ac18eb973ed3bf874b632 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143197.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231143198.png b/content/en/docs/Administration/figures/en-us_image_0231143198.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6360c150495d204da4b069e6dc62677580888f Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231143198.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231563132.png b/content/en/docs/Administration/figures/en-us_image_0231563132.png new file mode 100644 index 0000000000000000000000000000000000000000..bb801a9471f3f3541ba96491654f25e2df9ce8bf Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231563132.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231563134.png b/content/en/docs/Administration/figures/en-us_image_0231563134.png new file mode 100644 index 0000000000000000000000000000000000000000..398d15376d29d3aa406abb2e7e065d4625428c4d Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231563134.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231563135.png b/content/en/docs/Administration/figures/en-us_image_0231563135.png new file mode 100644 index 0000000000000000000000000000000000000000..785977142a6bf0e1c1815b82dea73d75fa206a75 Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231563135.png differ diff --git a/content/en/docs/Administration/figures/en-us_image_0231563136.png b/content/en/docs/Administration/figures/en-us_image_0231563136.png new file mode 100644 index 0000000000000000000000000000000000000000..c274db4d0ca9d8758267a916e19fdef4aa22d0ba Binary files /dev/null and b/content/en/docs/Administration/figures/en-us_image_0231563136.png differ diff --git a/content/en/docs/Administration/figures/example-command-output.png b/content/en/docs/Administration/figures/example-command-output.png new file mode 100644 index 0000000000000000000000000000000000000000..2d77d3dc2934763b5da896a827b9805da34d1c09 Binary files /dev/null and b/content/en/docs/Administration/figures/example-command-output.png differ diff --git a/content/en/docs/Administration/figures/mariadb-logical-architecture.png b/content/en/docs/Administration/figures/mariadb-logical-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e65e786d918c84bbb14c101b69bc4ad36ccb4b Binary files /dev/null and b/content/en/docs/Administration/figures/mariadb-logical-architecture.png differ diff --git a/content/en/docs/Administration/figures/nginx-deployment-succeeded.png b/content/en/docs/Administration/figures/nginx-deployment-succeeded.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffb2c142defbd690e5407659116bf8e5582ba73 Binary files /dev/null and b/content/en/docs/Administration/figures/nginx-deployment-succeeded.png differ diff --git a/content/en/docs/Administration/figures/nginx-startup-failure.png b/content/en/docs/Administration/figures/nginx-startup-failure.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b855453433796265de42d7ffd0189c7ff9be2b Binary files /dev/null and b/content/en/docs/Administration/figures/nginx-startup-failure.png differ diff --git a/content/en/docs/Administration/figures/postgres.png b/content/en/docs/Administration/figures/postgres.png new file mode 100644 index 0000000000000000000000000000000000000000..e7fc36882718587ec949133fe9892185cb4c2158 Binary files /dev/null and b/content/en/docs/Administration/figures/postgres.png differ diff --git a/content/en/docs/Administration/figures/postgresql-architecture.png b/content/en/docs/Administration/figures/postgresql-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..cc73eb31f746409efc1e997072bf3d18b013012e Binary files /dev/null and b/content/en/docs/Administration/figures/postgresql-architecture.png differ diff --git a/content/en/docs/Administration/figures/the-nginx-service-is-successfully-started.png b/content/en/docs/Administration/figures/the-nginx-service-is-successfully-started.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6929772fd98fac3494b4436f26910b09818cb7 Binary files /dev/null and b/content/en/docs/Administration/figures/the-nginx-service-is-successfully-started.png differ diff --git "a/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230-0.png" "b/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230-0.png" new file mode 100644 index 0000000000000000000000000000000000000000..0dfd6a2802184af6d809c485191ea52452cf28d5 Binary files /dev/null and "b/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230-0.png" differ diff --git "a/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230.png" "b/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230.png" new file mode 100644 index 0000000000000000000000000000000000000000..0dfd6a2802184af6d809c485191ea52452cf28d5 Binary files /dev/null and "b/content/en/docs/Administration/figures/\346\220\255\345\273\272\346\225\260\346\215\256\347\233\230.png" differ diff --git "a/content/en/docs/Administration/figures/\347\231\273\345\275\225.png" "b/content/en/docs/Administration/figures/\347\231\273\345\275\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..d15c2cad98fba16320d587f3c7b0c80f435c5d3a Binary files /dev/null and "b/content/en/docs/Administration/figures/\347\231\273\345\275\225.png" differ diff --git a/content/en/docs/Administration/file-transmission.md b/content/en/docs/Administration/file-transmission.md new file mode 100644 index 0000000000000000000000000000000000000000..4b94799c96f829cf8fc14062cbf548c81db93c8c --- /dev/null +++ b/content/en/docs/Administration/file-transmission.md @@ -0,0 +1,159 @@ +# File Transmission + +## Overview + +This section describes how to transfer files after the vsftpd service is started. + +## Connecting to the Server + +**Command Format** + +**ftp** \[_hostname_ | _ip-address_\] + +**hostname** indicates the name of the server, and **ip-address** indicates the IP address of the server. + +**Requirements** + +Run the following command on the command-line interface \(CLI\) of the openEuler OS: + +``` +ftp ip-address +``` + +Enter the user name and password as prompted. If the following information is displayed after the authentication is successful, the FTP connection is successful. In this case, you have accessed the directory of the connected server. + +``` +ftp> +``` + +At this prompt, you can enter different commands to perform related operations. + +- Display the current IP address of the server. + + ``` + ftp>pwd + ``` + +- Display the local path. You can upload the files in this path to the corresponding location on the FTP server. + + ``` + ftp>lcd + ``` + +- Exit the current window and return to the local Linux terminal. + + ``` + ftp>! + ``` + + +## Downloading a File + +Generally, the get or mget command is used to download files. + +**How to use get** + +- Function description: Transfers files from a remote host to a local host. +- Command format: **get** \[_remote-file_\] \[_local-file_\] + + _remote-file_ indicates a remote file, and _local-file_ indicates a local file. + +- For example, to obtain the /usr/your/openEuler.htm file on the remote server, run the following command: + + ``` + ftp> get /usr/your/openEuler.htm + ``` + + +**How to use mget** + +- Function description: Receives a batch of files from the remote host to the local host. +- Command format: **mget** \[_remote-file_\] + + _remote-file_ indicates a remote file. + +- For example, to obtain all files in the /usr/your/ directory on the server, run the following command: + + ``` + ftp> cd /usr/your/ + ftp> mget *.* + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- In this case, a message is displayed each time a file is downloaded. To block the prompt information, run the **prompt off** command before running the **mget \*.\*** command. + >- The files are downloaded to the current directory on the Linux host. For example, if you run the ftp command in /usr/my/, all files are downloaded to /usr/my/. + + +## Uploading a file + +Generally, the put or mput command is used to upload files. + +**How to use put** + +- Function: Transfers a local file to a remote host. +- Command format: **put** \[_local-file_\] \[_remote-file_\] + + _remote-file_ indicates a remote file, and _local-file_ indicates a local file. + +- For example, run the following command to transfer the local Euler.htm file to the remote host /usr/your/ and change the file name to openEuler.htm: + + ``` + ftp> put Euler.htm /usr/your/openEuler.htm + ``` + + +**How to use mput** + +- Function: Transfers a batch of files from the local host to a remote host. +- Command format: **mput** \[_local-file_\] + + _local-file_ indicates a local file. + +- For example, run the following command to upload all HTM files in the local directory to the /usr/your/ directory on the server: + + ``` + ftp> cd /usr/your + ftp> mput *.htm + ``` + + +## Deleting a File + +Generally, the **delete** or **mdelete** command is used to delete a file. + +**How to use delete** + +- Function description: Deletes one or more files from the remote server. +- Command format: **delete** \[_remote-file_\] + + _remote-file_ indicates a remote file. + +- For example, to delete the openFile from the remote server, run the following command: + + ``` + ftp> delete openFile + ``` + + +**How to use mdelete** + +- Function description: Deletes files from a remote server. This function is used to delete files in batches. +- Command format: **mdelete** \[_remote-file_\] + + _remote-file_ indicates a remote file. + +- For example, to delete all files whose names start with **a**, run the following command: + + ``` + ftp> mdelete a* + ``` + + +## Disconnecting from the Server + +Run the bye command to disconnect from the server. + +``` +ftp> bye +``` + diff --git a/content/en/docs/Administration/general-introduction.md b/content/en/docs/Administration/general-introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..704d4dc3b49c0f05ea0816f0f0f93eaca9077cc9 --- /dev/null +++ b/content/en/docs/Administration/general-introduction.md @@ -0,0 +1,38 @@ +# General Introduction + +## FTP Overview + +File Transfer Protocol \(FTP\) is one of the earliest transmission protocols on the Internet. It is used to transfer files between the server and client. FTP allows users to access files on a remote system using a set of standard commands without logging in to the remote system. In addition, the FTP server provides the following functions: + +- Subscriber classification + + By default, the FTP server classifies users into real users, guest users, and anonymous users based on the login status. The three types of users have different access permissions. Real users have complete access permissions, while anonymous users have only the permission to downloading resources. + +- Command records and log file records + + FTP can use the syslogd to record data, including historical commands and user transmission data \(such as the transmission time and file size\). Users can obtain log information from the /var/log/ directory. + +- Restricting the access scope of users + + FTP can limit the work scope of a user to the home directory of the user. After a user logs in to the system through FTP, the root directory displayed by the system is the home directory of the user. This environment is called change root \(chroot for short\). In this way, users can access only the main directory, but not important directories such as /etc, /home, and /usr/local. This protects the system and keeps the system secure. + + +## Port Used by the FTP Server + +The FTP service requires multiple network ports. The server uses the following ports: + +- Command channel. The default port number is 21. +- Data channel. The default port number is 20. + +Port 21 is used to receive connection requests from the FTP client, and port 20 is used by the FTP server to proactively connect to the FTP client. + +## Introduction to vsftpd + +FTP has a long history and uses the unencrypted transmission mode, and is therefore considered insecure. This section describes the Very Secure FTP Daemon \(vsftpd\), to use FTP in a more secure way. + +The vsftpd is introduced to build a security-centric FTP server. The vsftpd is designed with the following features: + +- The startup user of the vsftpd service is a common user who has low system permission. In addition, the vsftpd service uses chroot to change the root directory, preventing the risk of misusing system tools. +- Any vsftpd command that requires high execution permission is controlled by a special upper-layer program. The upper-layer program has low permission and does not affect the system. +- vsftpd integrates most of the extra commands \(such as dir, ls, and cd\) used by FTP. Generally, the system does not need to provide extra commands, which are secure for the system. + diff --git a/content/en/docs/Administration/granting-permissions-to-a-user-33.md b/content/en/docs/Administration/granting-permissions-to-a-user-33.md new file mode 100644 index 0000000000000000000000000000000000000000..2c9609b116bba6f292075353c9ce876d146c38a3 --- /dev/null +++ b/content/en/docs/Administration/granting-permissions-to-a-user-33.md @@ -0,0 +1,32 @@ +# Granting Permissions to a User + +Run the **GRANT** statement to grant permissions to a new user. + +``` +GRANT privileges ON databasename.tablename TO 'username'@'hostname'; +``` + +In the preceding information: + +- **ON** clause: specifies the object and level on which the permission is granted. +- _privileges_: indicates the operation permissions of a user, such as **SELECT**, INSERT, and **UPDATE**. To grant all permissions to a user, use **ALL**. +- _databasename_: database name. +- _tablename_: table name. +- **TO** clause: sets the user password and specifies the user to whom the permission is granted. +- _username_: name of a user. +- _hostname_: host name. + +To grant the user the permission to operate all databases and tables, use asterisks \(\*\), for example, **\*.\***. + +If you specify a password for an existing user in the **TO** clause, the new password will overwrite the original password. + +If the permission is granted to a non-existent user, a **CREATE USER** statement is automatically executed to create the user, but the password must be specified for the user. + +## Example + +\#Grant the **SELECT** and **INSERT** permissions to local user **userexample**. + +``` +> GRANT SELECT,INSERT ON *.* TO 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/granting-permissions-to-a-user.md b/content/en/docs/Administration/granting-permissions-to-a-user.md new file mode 100644 index 0000000000000000000000000000000000000000..c10cd5f99f34361f0003bb8faa46d57a9858990e --- /dev/null +++ b/content/en/docs/Administration/granting-permissions-to-a-user.md @@ -0,0 +1,32 @@ +# Granting Permissions to a User + +Run the **GRANT** statement to grant permissions to a new user. + +``` +GRANT privileges ON databasename.tablename TO 'username'@'hostname'; +``` + +In the preceding information: + +- **ON** clause: specifies the object and its level on which the permission is granted. +- **privileges**: indicates the operation permissions of a user, such as **SELECT**, INSERT, and **UPDATE**. To grant all permissions to a user, use **ALL**. +- _databasename_: database name. +- _tablename_: table name. +- **TO** clause: sets the user password and specifies the user to whom the permission is granted. +- _username_: name of a user. +- _hostname_: host name. + +To grant the user the permission to operate all databases and tables, use asterisks \(\*\), for example, **\*.\***. + +If you specify a password for an existing user in the **TO** clause, the new password will overwrite the original password. + +If the permission is granted to a non-existent user, a **CREATE USER** statement is automatically executed to create the user, but the password must be specified for the user. + +## Example + +\#Grant the SELECT and INSERT permissions to local user userexample. + +``` +> GRANT SELECT,INSERT ON *.* TO 'userexample'@'localhost'; +``` + diff --git a/content/en/docs/Administration/granting-rights-to-a-common-user.md b/content/en/docs/Administration/granting-rights-to-a-common-user.md new file mode 100644 index 0000000000000000000000000000000000000000..bf9452f9eaa65ec15f945c87e63cf4267a8f6958 --- /dev/null +++ b/content/en/docs/Administration/granting-rights-to-a-common-user.md @@ -0,0 +1,82 @@ +# Granting Rights to a Common User + +The **sudo** command allows common users to execute commands that can be executed only by administrator accounts. + +The **sudo** command allows the user specified in the **/etc/sudoers** file to execute the administrator account commands. For example, an authorized common user can run: + +``` +sudo /usr/sbin/useradd newuserl +``` + +The **sudo** command can specify a common user that has been added to the **/etc/sudoers** file to process tasks as required. + +The information configured in the **/etc/sudoers** file is as follows: + +- Blank lines or comment lines starting with **\#**: Have no specific functions. +- Optional host alias lines: Create the name of a host list. The lines must start with **Host\_Alias**. The host names in the list must be separated by commas \(,\). For example: + + ``` + Host_Alias linux=ted1,ted2 + ``` + + **ted1** and **ted2** are two host names, which can be called **linux**. + + +- Optional user alias lines: Create the name of a user list. The lines must start with **User\_Alias**. The user names in the list must be separated by commas \(,\). The user alias lines have the same format as the host alias lines. +- Optional command alias lines: Create the name of a command list. The lines must start with **Cmnd\_Alias**. The commands in the list must be separated by commas \(,\). +- Optional running mode alias lines: Create the name of a user list. The difference is that such alias can enable a user in the list to run the **sudo** command. +- Necessary declaration lines for user access: + + The declaration syntax for user access is as follows: + + ``` + user host = [ run as user ] command list + ``` + + Set the user to a real user name or a defined user alias, and set the host to a real host name or a defined host alias. By default, all the commands executed by sudo are executed as user **root**. If you want to use another account, you can specify it. **command list** is either a command list separated by commas \(,\) or a defined command alias. For example: + + ``` + ted1 ted2=/sbin/shutdown + ``` + + In this example, ted1 can run the shutdown command on ted2. + + ``` + newuser1 ted1=(root) /usr/sbin/useradd,/usr/sbin/userdel + ``` + + This indicates that newuser1 on the ted1 host can run the **useradd** and **userdel** commands as the user **root**. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- You can define multiple aliases in a line and separate them with colons \(:\). + >- You can add an exclamation mark \(!\) before a command or a command alias to make the command or the command alias invalid. + >- There are two keywords: ALL and NOPASSWD. ALL indicates all files, hosts, or commands, and NOPASSWD indicates that no password is required. + >- By modifying user access, you can change the access permission of a common user to be the same as that of the user **root**. Then, you can grant rights to the common user. + + +The following is an example of the **sudoers** file: + +``` +#sudoers files +#User alias specification +User_Alias ADMIN=ted1:POWERUSER=globus,ted2 +#user privilege specification +ADMIN ALL=ALL +POWERUSER ALL=ALL,!/bin/su +``` + +In the preceding information: + +- User\_Alias ADMIN=ted1:POWERUSER=globus,ted2 + + Two aliases ADMIN and POWERUSER are defined. + +- ADMIN ALL=ALL + + ADMIN can run all commands as the user **root** on all hosts. + +- POWERUSER ALL=ALL,!/bin/su + + POWERUSER can run all commands except the **su** command as the user **root** on all hosts. + + diff --git a/content/en/docs/Administration/initialization-failure.md b/content/en/docs/Administration/initialization-failure.md new file mode 100644 index 0000000000000000000000000000000000000000..922d0354fa4e7403873b10188709d6d3e6914b76 --- /dev/null +++ b/content/en/docs/Administration/initialization-failure.md @@ -0,0 +1,43 @@ +# Initialization Failure + +## Symptom + +The accelerator engine is not completely loaded due to an initialization failure. + +## Solution + +1. Check whether the accelerator drivers are loaded successfully. Specifically, run the **lsmod** command to check whether uacce.ko, qm.ko, sgl.ko, hisi\_sec2.ko, hisi\_hpre.ko, hisi\_zip.ko, and hisi\_rde.ko exist. + + ``` + # lsmod | grep uacce + uacce 262144 2 hisi_hpre,hisi_qm,hisi_sec2,hisi_zip,hisi_rde + ``` + +2. Check whether the accelerator engine library exists in **/usr/lib64** \(directory for RPM installation\) or **/usr/local/lib** \(directory for source code installation\) and the OpenSSL installation directory, and check whether the correct soft link is established. + + ``` + [root@localhost home]# ll /usr/local/lib/engines-1.1/ |grep kae + #Check whether the KAE has been correctly installed and whether a soft link has been established. If yes, the displayed information is as follows: + # ll /usr/local/lib/engines-1.1/ |grep kae + lrwxrwxrwx. 1 root root 22 Nov 12 02:33 kae.so -> kae.so.1.0.1 + lrwxrwxrwx. 1 root root 22 Nov 12 02:33 kae.so.0 -> kae.so.1.0.1 + -rwxr-xr-x. 1 root root 112632 May 25 2019 kae.so.1.0.1 + [[root@localhost home]# + [root@localhost home]# ll /usr/lib64/ | grep libwd + #Check whether libwd has been correctly installed and whether a soft link has been established. If yes, the displayed information is as follows: + lrwxrwxrwx. 1 root root 14 Nov 12 02:33 libwd.so -> libwd.so.1.0.1 + lrwxrwxrwx. 1 root root 14 Nov 12 02:33 libwd.so.0 -> libwd.so.1.0.1 + -rwxr-xr-x. 1 root root 137120 May 25 2019 libwd.so.1.0.1 + [root@localhost home]# + ``` + +3. Check whether the path of the OpenSSL engine library can be exported by running the **export** command. + + ``` + # echo $OPENSSL_ENGINES + # export OPENSSL_ENGINES=/usr/local/lib/engines-1.1 + # echo $OPENSSL_ENGINES + /usr/local/lib/engines-1.1 + ``` + + diff --git a/content/en/docs/Administration/initializing-the-database.md b/content/en/docs/Administration/initializing-the-database.md new file mode 100644 index 0000000000000000000000000000000000000000..7c637ac8148ac6a58be2229b0542ed3077681e54 --- /dev/null +++ b/content/en/docs/Administration/initializing-the-database.md @@ -0,0 +1,18 @@ +# Initializing the Database + +>![](public_sys-resources/icon-notice.gif) **NOTICE:** +>Perform this step as the postgres user. + +1. Switch to the created PostgreSQL user. + + ``` + #su - postgres + ``` + +2. Initialize the database. In the command, **/usr/bin** is the directory where the **initdb** command is located. + + ``` + $/usr/bin/initdb -D /data/ + ``` + + diff --git a/content/en/docs/Administration/installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md b/content/en/docs/Administration/installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..c46c2cea8edaff5a212e8a2552a05420cde01433 --- /dev/null +++ b/content/en/docs/Administration/installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md @@ -0,0 +1,81 @@ +# Installation Failure Caused by Software Package Conflict, File Conflict, or Missing Software Package + +## Symptom + +Software package conflict, file conflict, or missing software packages may occur during software package installation. As a result, the upgrade is interrupted and the installation fails. The error information about software package conflict, file conflict, and missing software packages is as follows: + +The following is an example of software package conflict error information \(the conflict between **libev-libevent-devel-4.24-11.oe1.aarch64** and **libevent-devel-2.1.11-2.oe1.aarch64** is used as an example\): + +``` +package libev-libevent-devel-4.24-11.oe1.aarch64 conflicts with libevent-devel provided by libevent-devel-2.1.11-2.oe1.aarch64 + - cannot install the best candidate for the job + - conflicting requests +``` + +The following is an example of file conflict error information \(the **/usr/bin/containerd** file conflict is used as an example\): + +``` +Error: Transaction test error: + file /usr/bin/containerd from install of containerd-1.2.0-101.oe1.aarch64 conflicts with file from package docker-engine-18.09.0-100.aarch64 + file /usr/bin/containerd-shim from install of containerd-1.2.0-101.oe1.aarch64 conflicts with file from package docker-engine-18.09.0-100.aarch64 +``` + +The following is an example of the error message indicating that the **blivet-data** software package is missing: + +``` +Error: + Problem: cannot install both blivet-data-1:3.1.1-6.oe1.noarch and blivet-data-1:3.1.1-5.noarch + - package python2-blivet-1:3.1.1-5.noarch requires blivet-data = 1:3.1.1-5, but none of the providers can be installed + - cannot install the best update candidate for package blivet-data-1:3.1.1-5.noarch + - problem with installed package python2-blivet-1:3.1.1-5.noarch(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) +``` + +## Possible Cause + +- In the software packages provided by openEuler, some software packages have different names but the same functions. As a result, the software packages cannot be installed at the same time. +- In the software packages provided by openEuler, some software packages have different names but the same functions. As a result, the files after installation are the same, causing file conflict. +- Some software packages are depended on by other software packages before the upgrade. After the software packages are upgraded, the software packages that depend on them may fail to be installed due to lack of software packages. + +## Solution + +If a software package conflict occurs, perform the following steps \(the software package conflict in "Symptom" is used as an example\): + +1. According to the error message displayed during the installation, the software package that conflicts with the to-be-installed software package **libev-libevent-devel-4.24-11.oe1.aarch64** is **libevent-devel-2.1.11-2.oe1.aarch64**. +2. Run the **dnf remove** command to uninstall the software package that conflicts with the software package to be installed. + + ``` + # dnf remove libevent-devel-2.1.11-2.oe1.aarch64 + ``` + +3. Perform the installation again. + +If a file conflict occurs, perform the following steps \(the file conflict in "Symptom" is used as an example\): + +1. According to the error message displayed during the installation, the names of the software packages that cause the file conflict are **containerd-1.2.0-101.oe1.aarch64** and **docker-engine-18.09.0-100.aarch64**. +2. Record the names of the software packages that do not need to be installed. The following uses **docker-engine-18.09.0-100.aarch64** as an example. +3. Run the **dnf remove** command to uninstall the software package that does not need to be installed. + + ``` + # dnf remove docker-engine-18.09.0-100.aarch64 + ``` + +4. Perform the installation again. + +If a software package is missing, perform the following steps \(the missed software package in "Symptom" is used as an example\): + +1. Determine the name of the software package to be upgraded \(**blivet-data-1:3.1.1-5.noarch**\) and the name of the dependent software package \(**python2-blivet-1:3.1.1-5.noarch**\) based on the error information displayed during the upgrade. +2. Run the **dnf remove** command to uninstall the software package that depends on the upgrade package or add the **--allowerasing** parameter when upgrading the software package. + - Run the **dnf remove** command to uninstall the software package that depends on the **blivet-data-1:3.1.1-5.noarch** software package. + + ``` + # dnf remove python2-blivet-1:3.1.1-5.noarch + ``` + + - Add the **--allowerasing** parameter when upgrading the software package. + + ``` + # yum update blivet-data-1:3.1.1-5.noarch -y --allowerasing + ``` + +3. Perform the upgrade again. + diff --git a/content/en/docs/Administration/installing-and-configuring-nginx.md b/content/en/docs/Administration/installing-and-configuring-nginx.md new file mode 100644 index 0000000000000000000000000000000000000000..02be4c24b35f2173aea2bffacdc712c2adbaf1b2 --- /dev/null +++ b/content/en/docs/Administration/installing-and-configuring-nginx.md @@ -0,0 +1,48 @@ +# Installing and Configuring Nginx + +1. Download the Nginx tool and install it. +2. After installing Nginx, configure /etc/nginx/nginx.conf. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The configuration content in this document is for reference only. You can configure the content based on the site requirements \(for example, security hardening requirements\). + + ``` + user root; + worker_processes auto; # You are advised to set this parameter to core-1. + error_log /var/log/nginx/error.log warn; # log storage location + pid /var/run/nginx.pid; + + events { + worker_connections 1024; + } + + http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + + server { + listen 80; + server_name localhost; #Server name (URL) + client_max_body_size 4G; + root /srv/repo; #Default service directory + + location / { + autoindex on; # Enable the access to lower-layer files in the directory. + autoindex_exact_size on; + autoindex_localtime on; + } + + } + + } + ``` + + diff --git a/content/en/docs/Administration/installing-mariadb.md b/content/en/docs/Administration/installing-mariadb.md new file mode 100644 index 0000000000000000000000000000000000000000..32647eece33dbe667d816b9f4c4b5be11bfe02fd --- /dev/null +++ b/content/en/docs/Administration/installing-mariadb.md @@ -0,0 +1,28 @@ +# Installing MariaDB + +1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). +2. Clear the cache. + + ``` + #dnf clean all + ``` + +3. Create a cache. + + ``` + #dnf makecache + ``` + +4. Install the MariaDB server. + + ``` + #dnf install mariadb-server + ``` + +5. Check the installed RPM package. + + ``` + #rpm -qa | grep mariadb + ``` + + diff --git a/content/en/docs/Administration/installing-mysql.md b/content/en/docs/Administration/installing-mysql.md new file mode 100644 index 0000000000000000000000000000000000000000..7964c3a8e532efe8c2264a6e44ae09f11f307a7a --- /dev/null +++ b/content/en/docs/Administration/installing-mysql.md @@ -0,0 +1,28 @@ +# Installing MySQL + +1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). +2. Clear the cache. + + ``` + #dnf clean all + ``` + +3. Create a cache. + + ``` + #dnf makecache + ``` + +4. Install the MySQL server. + + ``` + #dnf install mysql + ``` + +5. Check the installed RPM package. + + ``` + #rpm -qa | grep mysql + ``` + + diff --git a/content/en/docs/Administration/installing-nginx.md b/content/en/docs/Administration/installing-nginx.md new file mode 100644 index 0000000000000000000000000000000000000000..0d81ce595cbc7b8c04aca95f937bb91f269f7ad1 --- /dev/null +++ b/content/en/docs/Administration/installing-nginx.md @@ -0,0 +1,28 @@ +# Installing Nginx + +1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). +2. Clear the cache. + + ``` + #dnf clean all + ``` + +3. Create a cache. + + ``` + #dnf makecache + ``` + +4. Install the MariaDB server. + + ``` + #dnf install nginx + ``` + +5. Check the installed RPM package. + + ``` + dnf list all | grep nginx + ``` + + diff --git a/content/en/docs/Administration/installing-postgresql.md b/content/en/docs/Administration/installing-postgresql.md new file mode 100644 index 0000000000000000000000000000000000000000..706941b1bee5abb412637276d2fcdea71cad1e46 --- /dev/null +++ b/content/en/docs/Administration/installing-postgresql.md @@ -0,0 +1,28 @@ +# Installing PostgreSQL + +1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). +2. Clear the cache. + + ``` + #dnf clean all + ``` + +3. Create a cache. + + ``` + #dnf makecache + ``` + +4. Install the PostgreSQL server. + + ``` + #dnf install postgresql-server + ``` + +5. Check the installed RPM package. + + ``` + #rpm -qa | grep postgresql + ``` + + diff --git a/content/en/docs/Administration/installing-running-and-uninstalling-mariadb-server.md b/content/en/docs/Administration/installing-running-and-uninstalling-mariadb-server.md new file mode 100644 index 0000000000000000000000000000000000000000..9774e6beec24a89304b3b80fb72d598dd1eb5810 --- /dev/null +++ b/content/en/docs/Administration/installing-running-and-uninstalling-mariadb-server.md @@ -0,0 +1,3 @@ +# Installing, Running, and Uninstalling MariaDB Server + + diff --git a/content/en/docs/Administration/installing-running-and-uninstalling-mysql.md b/content/en/docs/Administration/installing-running-and-uninstalling-mysql.md new file mode 100644 index 0000000000000000000000000000000000000000..9a6ec6a9bea4ac827e549399c2e40c834a44a8bf --- /dev/null +++ b/content/en/docs/Administration/installing-running-and-uninstalling-mysql.md @@ -0,0 +1,4 @@ +# Installing, Running, and Uninstalling MySQL + + + diff --git a/content/en/docs/Administration/installing-running-and-uninstalling-postgresql.md b/content/en/docs/Administration/installing-running-and-uninstalling-postgresql.md new file mode 100644 index 0000000000000000000000000000000000000000..0687ff7e016cb10eb1d4d69c58013b0304dc0f60 --- /dev/null +++ b/content/en/docs/Administration/installing-running-and-uninstalling-postgresql.md @@ -0,0 +1,3 @@ +# Installing, Running, and Uninstalling PostgreSQL + + diff --git a/content/en/docs/Administration/installing-running-and-uninstalling-the-kae.md b/content/en/docs/Administration/installing-running-and-uninstalling-the-kae.md new file mode 100644 index 0000000000000000000000000000000000000000..962a43d4fd16b6a7435b67bc3769b38e3f7c6900 --- /dev/null +++ b/content/en/docs/Administration/installing-running-and-uninstalling-the-kae.md @@ -0,0 +1,4 @@ +# Installing, Running, and Uninstalling the KAE + + + diff --git a/content/en/docs/Administration/installing-the-accelerator-software-package.md b/content/en/docs/Administration/installing-the-accelerator-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..80ba20261395d7fa5323d017eeecb557b13b8d18 --- /dev/null +++ b/content/en/docs/Administration/installing-the-accelerator-software-package.md @@ -0,0 +1,142 @@ +# Installing the Accelerator Software Package + +## Prerequisites + +- The remote SSH login tool has been installed on the local PC. +- The openEuler OS has been installed. +- The RPM tool is running properly. +- OpenSSL 1.1.1a or a later version has been installed. + + You can run the following commands to query the version number of OpenSSL: + + - openssl version + + +## Procedure + +1. Log in to the openEuler OS CLI as user **root**. +2. Create a directory for storing accelerator engine software packages. +3. Use SSH to copy all accelerator engine software package to the created directory. +4. In the directory, run the **rpm -ivh** command to install the accelerator engine software packages. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Install the **libwd** package first because the **libkae** package installation depends on the **libwd** package. + + ``` + rpm -ivh uacce*.rpm hisi*.rpm libwd-*.rpm libkae*.rpm + ``` + + ``` + Verifying... ################################# [100%] + Preparing... ################################# [100%] + checking installed modules + uacce modules start to install + Updating / installing... + 1:uacce-1.2.10-4.oe1 ################################# [ 14%] + uacce modules installed + 2:libwd-1.2.10-3.oe1 ################################# [ 29%] + 3:libkae-1.2.10-3.oe1 ################################# [ 43%] + checking installed modules + hisi_hpre modules start to install + 4:hisi_hpre-1.2.10-4.oe1 ################################# [ 57%] + hisi_hpre modules installed + checking installed modules + hisi_rde modules start to install + 5:hisi_rde-1.2.10-4.oe1 ################################# [ 71%] + hisi_rde modules installed + checking installed modules + hisi_sec2 modules start to install + 6:hisi_sec2-1.2.10-4.oe1 ################################# [ 86%] + hisi_sec2 modules installed + checking installed modules + hisi_zip modules start to install + 7:hisi_zip-1.2.10-4.oe1 ################################# [100%] + hisi_zip modules installed + ``` + +5. Run the **rpm -qa** command to check whether the accelerator software packages have been installed properly. Run the **rpm -ql** command to check whether files in the software packages are correct. The following is an example: + + ``` + rpm -qa|grep -E "hisi|uacce|libwd|libkae" + ``` + + ``` + hisi_rde-1.2.10-4.oe1.aarch64 + hisi_sec2-1.2.10-4.oe1.aarch64 + libkae-1.2.10-3.oe1.aarch64 + hisi_hpre-1.2.10-4.oe1.aarch64 + uacce-1.2.10-4.oe1.aarch64 + libwd-1.2.10-3.oe1.aarch64 + hisi_zip-1.2.10-4.oe1.aarch64 + ``` + + ``` + rpm -ql uacce hisi* libwd* libkae + ``` + + ``` + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/hisi_qm.ko + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/uacce.ko + /etc/modprobe.d/hisi_hpre.conf + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/hisi_hpre.ko + /etc/modprobe.d/hisi_rde.conf + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/hisi_rde.ko + /etc/modprobe.d/hisi_sec2.conf + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/hisi_sec2.ko + /etc/modprobe.d/hisi_zip.conf + /lib/modules/4.19.90-2003.4.0.0036.oe1.aarch64/extra/hisi_zip.ko + /usr/include/warpdrive/config.h + /usr/include/warpdrive/include/uacce.h + /usr/include/warpdrive/smm.h + /usr/include/warpdrive/wd.h + /usr/include/warpdrive/wd_bmm.h + /usr/include/warpdrive/wd_cipher.h + /usr/include/warpdrive/wd_comp.h + /usr/include/warpdrive/wd_dh.h + /usr/include/warpdrive/wd_digest.h + /usr/include/warpdrive/wd_rsa.h + /usr/lib64/libwd.so.1.2.10 + /usr/local/lib/engines-1.1/libkae.so.1.2.10 + ``` + +6. Restart the system or run commands to manually load the accelerator engine drivers to the kernel in sequence, and check whether the drivers are successfully loaded. + + ``` + # modprobe uacce + # lsmod | grep uacce + # modprobe hisi_qm + # lsmod | grep hisi_qm + # modprobe hisi_qm + # modprobe hisi_sec2 # Loads the hisi_sec2 driver to the kernel based on the configuration file in /etc/modprobe.d/hisi_sec2.conf. + # modprobe hisi_hpre # Loads the hisi_hpre driver to the kernel based on the configuration file in /etc/modprobe.d/hisi_hpre.conf. + ``` + + +## Setting Environment Variables + +Run the following command to export the environment variable \(If you have specified the installation directory, use the actual installation directory instead of **/usr/local**\): + +``` +export OPENSSL_ENGINES=/usr/local/lib/engines-1.1 +``` + +## Performing the Post-Installation Check + +Run the **rpm -qa** command to check whether the accelerator engine software packages are successfully installed. + +If the command output contains _software package name_**-**_version number_**-**, the software package is successfully installed. The following is an example: + +``` +rpm -qa|grep -E "hisi|uacce|libwd|libkae" +``` + +``` +hisi_rde-1.2.10-4.oe1.aarch64 +hisi_sec2-1.2.10-4.oe1.aarch64 +libkae-1.2.10-3.oe1.aarch64 +hisi_hpre-1.2.10-4.oe1.aarch64 +uacce-1.2.10-4.oe1.aarch64 +libwd-1.2.10-3.oe1.aarch64 +hisi_zip-1.2.10-4.oe1.aarch64 +``` + diff --git a/content/en/docs/Administration/installing-the-accelerator-software-packages.md b/content/en/docs/Administration/installing-the-accelerator-software-packages.md new file mode 100644 index 0000000000000000000000000000000000000000..72e42fe6345abf4cbe89b79437e36b7652a0e85c --- /dev/null +++ b/content/en/docs/Administration/installing-the-accelerator-software-packages.md @@ -0,0 +1,4 @@ +# Installing the Accelerator Software Packages + + + diff --git a/content/en/docs/Administration/installing-the-lvm.md b/content/en/docs/Administration/installing-the-lvm.md new file mode 100644 index 0000000000000000000000000000000000000000..7dbeceed24c95730f7907fde707cde75cc6c6d76 --- /dev/null +++ b/content/en/docs/Administration/installing-the-lvm.md @@ -0,0 +1,31 @@ +# Installing the LVM + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The LVM has been installed on the openEuler OS by default. You can run the **rpm -qa | grep lvm2** command to check whether it is installed. If the command output contains "lvm2", the LVM has been installed. In this case, skip this section. If no information is output, the LVM is not installed. Install it by referring to this section. + +1. Configure the local yum source. For details, see [Configuring the Repo Server](configuring-the-repo-server.md). +2. Clear the cache. + + ``` + #dnf clean all + ``` + +3. Create a cache. + + ``` + #dnf makecache + ``` + +4. Install the LVM. + + ``` + #dnf install lvm2 + ``` + +5. Check the installed RPM package. + + ``` + #rpm -qa | grep lvm2 + ``` + + diff --git a/content/en/docs/Administration/introduction-to-nmcli.md b/content/en/docs/Administration/introduction-to-nmcli.md new file mode 100644 index 0000000000000000000000000000000000000000..12f80dc2dff1304436cf633f2f101cf4b99e0c57 --- /dev/null +++ b/content/en/docs/Administration/introduction-to-nmcli.md @@ -0,0 +1,49 @@ +# Introduction to nmcli + +**nmcli** \(NetworkManager Command Line Interface\) is the command-line utility to configure networking through NetworkManager. The basic format of using **nmcli** is as follows: + +``` + nmcli [OPTIONS] OBJECT { COMMAND | help } +``` + +In the preceding command, **OBJECT** can be one of the following options: **general**, **networking**, **radio**, **connection**, and **device**. **OPTIONS** can be optional options, such as **-t**, **--terse** \(for script processing\),** -p**, **--pretty** \(for human-readable output\), **-h**, and **--help**. For more information, run the **nmcli help** command. + +``` +# nmcli help +``` + +Common commands are listed as follows: + +- To display the general status of NetworkManager, run the following command: + + ``` + nmcli general status + ``` + +- To display all connections, run the following command: + + ``` + nmcli connection show + ``` + +- To display the current active connections only, add the **-a** or **--active** option as follows: + + ``` + nmcli connection show --active + ``` + +- To display the device identified by NetworkManager and its connection status, run the following command: + + ``` + nmcli device status + ``` + +- To start or stop network interfaces, for example, run the nmcli commands: + + ``` + + nmcli connection up id enp3s0 + nmcli device disconnect enp3s0 + ``` + + diff --git a/content/en/docs/Administration/introduction-to-systemd.md b/content/en/docs/Administration/introduction-to-systemd.md new file mode 100644 index 0000000000000000000000000000000000000000..8a73bf6d1af924724fb1c024b4561518786495a7 --- /dev/null +++ b/content/en/docs/Administration/introduction-to-systemd.md @@ -0,0 +1,135 @@ +# Introduction to systemd + +The systemd is a system and service manager for Linux operating systems. It is designed to be backward compatible with SysV and LSB init scripts, and provides a number of features such as Socket & D-Bus based activation of services, on-demand activation of daemons, system state snapshots, and mount & automount point management. With systemd, the service control logic and parallelization are refined. + +## Systemd Units + +In systemd, the targets of most actions are units, which are resources systemd know how to manage. Units are categorized by the type of resources they represent and defined in unit configuration files. For example, the avahi.service unit represents the Avahi daemon and is defined in the **avahi.service** file. [Table 1](#en-us_topic_0151921012_t2dcb6d973cc249ed9ccd56729751ca6b) lists available types of systemd units. + +**Table 1** Available types of systemd units + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Unit Type

+

File Extension

+

Description

+

Service unit

+

.service

+

A system service.

+

Target unit

+

.target

+

A group of systemd units.

+

Automount unit

+

.automount

+

A file system automount point.

+

Device unit

+

.device

+

A device file recognized by the kernel.

+

Mount unit

+

.mount

+

A file system mount point.

+

Path unit

+

.path

+

A file or directory in a file system.

+

Scope unit

+

.scope

+

An externally created process.

+

Slice unit

+

.slice

+

A group of hierarchically organized units that manage system processes.

+

Snapshot unit

+

.snapshot

+

A saved state of the systemd manager.

+

Socket unit

+

.socket

+

An inter-process communication socket.

+

Swap unit

+

.swap

+

A swap device or a swap file.

+

Timer unit

+

.timer

+

A systemd timer.

+
+ +All available types of systemd units are located in one of the following directories listed in [Table 2](#en-us_topic_0151921012_t2523a0a9a0c54f9b849e52d1efa0160c). + +**Table 2** Locations of available systemd units + + + + + + + + + + + + + + + + +

Directory

+

Description

+

/usr/lib/systemd/system/

+

Systemd units distributed with installed RPM packages.

+

/run/systemd/system/

+

Systemd units created at runtime.

+

/etc/systemd/system/

+

Systemd units created and managed by the system administrator.

+
+ diff --git a/content/en/docs/Administration/introduction.md b/content/en/docs/Administration/introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..c3abae58dc00a342cbe62a1ddd52155bd0d16ab9 --- /dev/null +++ b/content/en/docs/Administration/introduction.md @@ -0,0 +1,11 @@ +# Introduction + +There are three types of host names: **static**, **transient**, and **pretty**. + +- **static**: Static host name, which can be set by users and saved in the **/etc/hostname** file. +- **transient**: Dynamic host name, which is maintained by the kernel. The initial value is a static host name. The default value is **localhost**. The value can be changed when the DHCP or mDNS server is running. +- **pretty**: Flexible host name, which can be set in any form \(including special characters/blanks\). Static and transient host names are subject to the general domain name restrictions. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Static and transient host names can contain only letters \(a–z and A–Z\), digits \(0–9\), hyphens \(-\), underlines \(\_\), and periods \(.\). The host names cannot start or end with a period \(.\) or contain two consecutive periods \(.\). The host name can contain a maximum of 64 characters. + diff --git a/content/en/docs/Administration/ipv6-differences-(vs-ipv4).md b/content/en/docs/Administration/ipv6-differences-(vs-ipv4).md new file mode 100644 index 0000000000000000000000000000000000000000..442e26ddf3a9fe1bdd9eaff83df908e474c421c6 --- /dev/null +++ b/content/en/docs/Administration/ipv6-differences-(vs-ipv4).md @@ -0,0 +1,4 @@ +# IPv6 Differences \(vs IPv4\) + + + diff --git a/content/en/docs/Administration/kernel-supporting-socket-related-system-calls.md b/content/en/docs/Administration/kernel-supporting-socket-related-system-calls.md new file mode 100644 index 0000000000000000000000000000000000000000..4748ce9fd81ddabf504807af8b648aded317dc3e --- /dev/null +++ b/content/en/docs/Administration/kernel-supporting-socket-related-system-calls.md @@ -0,0 +1,46 @@ +# Kernel Supporting Socket-Related System Calls + +## Overview + +The length of an IPv6 address is extended to 128 bits, indicating that there are sufficient IPv6 addresses for allocation. Compared with the IPv4 header, the IPv6 header is simplified, and the IPv6 automatic configuration function is enhanced. IPv6 addresses are classified into unicast addresses, multicast addresses, and anycast addresses. Common unicast addresses include link-local addresses, unique local addresses, and global addresses. As there are sufficient global IPv6 addresses, unique local addresses are not used. \(formerly known as site-local addresses, which were discarded in 2004.\) Currently, the mainstream unicast addresses are link-local address and global address. The current kernel supports socket system invoking. The link-local address and global address using unicast addresses are different. + +## Differences Between the link-local Address and global Address During Socket Invoking + +RFC 2553: Basic Socket Interface Extensions for IPv6 defines the sockaddr\_in6 data structure as follows: + +``` +struct sockaddr_in6 { + uint8_t sin6_len; /* length of this struct */ + sa_family_t sin6_family; /* AF_INET6 */ + in_port_t sin6_port; /* transport layer port # */ + uint32_t sin6_flowinfo; /* IPv6 flow information */ + struct in6_addr sin6_addr; /* IPv6 address */ + uint32_t sin6_scope_id; /* set of interfaces for a scope */ +}; +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>sin6\_scope\_id: a 32-bit integer. For the link-local address, it identifies the index of the specified interface. For the link-range sin6\_addr, it identifies the index of the specified interface. For the site-range sin6\_addr, it is used as the site identifier \(the site-local address has been discarded\). + +When the link-local address is used for socket communication, the interface index corresponding to the address needs to be specified when the destination address is constructed. Generally, you can use the if\_nametoindex function to convert an interface name into an interface index number. Details are as follows: + +``` +int port = 1234; +int sk_fd; +int iff_index = 0; +char iff_name[100] = "enp3s0"; +char * ll_addr[100] = "fe80::123:456:789"; +struct sockaddr_in6 server_addr; + +memset(&server_addr,0,sizeof(structsockaddr_in6)); +iff_index=if_nametoindex(iff_name); + +server_addr.sin6_family=AF_INET6; +server_addr.sin6_port=htons(port); +server_addr.sin6_scope_id=iff_index; +inet_pton(AF_INET6, ll_addr, &(server_addr.sin6_addr)); + +sk_fd=socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP); +connect(sk_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in6)); +``` + diff --git a/content/en/docs/Administration/logging-in-to-the-database.md b/content/en/docs/Administration/logging-in-to-the-database.md new file mode 100644 index 0000000000000000000000000000000000000000..9a4caa29250aadf0faed969a98e434d7dbdf2c84 --- /dev/null +++ b/content/en/docs/Administration/logging-in-to-the-database.md @@ -0,0 +1,14 @@ +# Logging In to the Database + +1. Log in to the database. + + ``` + $/usr/bin/psql -U postgres + ``` + + ![](figures/登录.png) + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >You do not need to enter a password when logging in to the database for the first time. + + diff --git a/content/en/docs/Administration/lvm-overview.md b/content/en/docs/Administration/lvm-overview.md new file mode 100644 index 0000000000000000000000000000000000000000..9575b8fd841d2f016a7d6190fd787b9dbadef973 --- /dev/null +++ b/content/en/docs/Administration/lvm-overview.md @@ -0,0 +1,27 @@ +# LVM Overview + +Logical Volume Manager \(LVM\) is a mechanism used for managing disk partitions in Linux. By adding a logical layer between disks and file systems, LVM shields the disk partition layout for file systems, thereby improving flexibility in managing disk partitions. + +The procedure of managing a disk through LVM is as follows: + +1. Create physical volumes for a disk. +2. Combine several physical volumes into a volume group. +3. Create logical volumes in the volume group. +4. Create file systems on logical volumes. + +When disks are managed using LVM, file systems are distributed on multiple disks and can be easily resized as needed. Therefore, file system space will no longer be limited by disk capacities. + +## Basic Terms + +- Physical media: refers to physical storage devices in the system, such as hard disks \(**/dev/hda** and **/dev/sda**\). It is the storage unit at the lowest layer of the storage system. + +- Physical volume \(PV\): refers to a disk partition or device \(such as a RAID\) that has the same logical functions as a disk partition. PVs are basic logical storage blocks of LVM. A PV contains a special label that is stored in the second 512-byte sector by default. It can also be stored in one of the first four sectors. A label contains the universal unique identifier \(UUID\) of the PV, size of the block device, and the storage location of LVM metadata in the device. + +- Volume group \(VG\): consists of PVs and shields the details of underlying PVs. You can create one or more logical volumes within a VG without considering detailed PV information. + +- Logical volume \(LV\): A VG cannot be used directly. It can be used only after being partitioned into LVs. LVs can be formatted into different file systems and can be directly used after being mounted. + +- Physical extent \(PE\): A PE is a small storage unit in a PV. The PE size is the same as the size of the logical extent in the VG. + +- Logical extent \(LE\): An LE is a small storage unit in an LV. In one VG, the LEs of all the LVs have the same size. + diff --git a/content/en/docs/Administration/management-module-and-ssl.md b/content/en/docs/Administration/management-module-and-ssl.md new file mode 100644 index 0000000000000000000000000000000000000000..24c75c7badd93b810a101c9133ed9bf7196d0c0b --- /dev/null +++ b/content/en/docs/Administration/management-module-and-ssl.md @@ -0,0 +1,72 @@ +# Management Module and SSL + +## Overview + +The httpd service is a modular application that is distributed with many Dynamic Shared Objects \(DSOs\). DSOs can be dynamically loaded or unloaded when running if necessary. These modules are located in the /usr/lib64/httpd/modules/ directory of the server operating system. This section describes how to load and write a module. + +## Loading a Module + +To load a special DSO module, you can use the load module indication in the configuration file. The modules provided by the independent software package have their own configuration files in the /etc/httpd/conf.modules.d directory. + +For example, to load the asis DSO module, perform the following steps: + +1. In the /etc/httpd/conf.modules.d/00-optional.conf file, uncomment the following configuration line: + + ``` + LoadModule asis_module modules/mod_asis.so + ``` + +2. After the loading is complete, restart the httpd service to reload the configuration file. + + ``` + # systemctl restart httpd + ``` + +3. After the loading is complete, run the httpd -M command to check whether the asis DSO module is loaded. + + ``` + # httpd -M | grep asis + ``` + + If the following information is displayed, the asis DSO module is successfully loaded: + + ``` + asis_module (shared) + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>**Common httpd commands** +>- httpd -v: views the httpd version number. +>- httpd -l: views the static modules compiled into the httpd program. +>- httpd -M: views the static modules and loaded dynamic modules that have been compiled into the httpd program. + +## Introduction to SSL + +Secure Sockets Layer \(SSL\) is an encryption protocol that allows secure communication between the server and client. The Transport Layer Security \(TLS\) protocol ensures security and data integrity for network communication. openEuler supports Mozilla Network Security Services \(NSS\) as the security protocol TLS. To load the SSL, perform the following steps: + +1. Install the **mod\_ssl** RPM package. + + ``` + # dnf install mod_ssl + ``` + +2. After the loading is complete, restart the httpd service to reload the configuration file. + + ``` + # systemctl restart httpd + ``` + +3. After the loading is complete, run the **httpd -M** command to check whether the SSL is loaded. + + ``` + # httpd -M | grep ssl + ``` + + If the following information is displayed, the SSL has been loaded successfully. + + ``` + ssl_module (shared) + ``` + + diff --git a/content/en/docs/Administration/management-modules.md b/content/en/docs/Administration/management-modules.md new file mode 100644 index 0000000000000000000000000000000000000000..16be1d72621ae57bfeb93ac4a40979d8a86f488a --- /dev/null +++ b/content/en/docs/Administration/management-modules.md @@ -0,0 +1,12 @@ +# Management Modules + +## Overview + +The Nginx service is a modular application that is distributed with many Dynamic Shared Objects \(DSOs\). DSOs can be dynamically loaded or unloaded when running if necessary. These modules are located in the **/usr/lib64/nginx/modules/** directory of the server operating system. This section describes how to load and write a module. + +## Loading a Module + +To load a special DSO module, you can use the load module indication in the configuration file. Generally, the modules provided by independent software packages have their own configuration files in the **/usr/share/nginx/modules** directory. + +The DSO is automatically loaded when the **dnf install nginx** command is used to install the Nginx in the openEuler operating system. + diff --git a/content/en/docs/Administration/managing-database-roles.md b/content/en/docs/Administration/managing-database-roles.md new file mode 100644 index 0000000000000000000000000000000000000000..ac687efb13f04d5f1ad51fe97bb13016f6064b0e --- /dev/null +++ b/content/en/docs/Administration/managing-database-roles.md @@ -0,0 +1,4 @@ +# Managing Database Roles + + + diff --git a/content/en/docs/Administration/managing-database-users-28.md b/content/en/docs/Administration/managing-database-users-28.md new file mode 100644 index 0000000000000000000000000000000000000000..e450dde91276e1cf184f2cae6fbb7b276f39e1df --- /dev/null +++ b/content/en/docs/Administration/managing-database-users-28.md @@ -0,0 +1,4 @@ +# Managing Database Users + + + diff --git a/content/en/docs/Administration/managing-database-users.md b/content/en/docs/Administration/managing-database-users.md new file mode 100644 index 0000000000000000000000000000000000000000..1c2bd5d696c981b789e2d1c250ad48827979d22d --- /dev/null +++ b/content/en/docs/Administration/managing-database-users.md @@ -0,0 +1,4 @@ +# Managing Database Users + + + diff --git a/content/en/docs/Administration/managing-databases-14.md b/content/en/docs/Administration/managing-databases-14.md new file mode 100644 index 0000000000000000000000000000000000000000..d23dd3fd18878a415825f5c8e6a3f2eb183c827f --- /dev/null +++ b/content/en/docs/Administration/managing-databases-14.md @@ -0,0 +1,4 @@ +# Managing Databases + + + diff --git a/content/en/docs/Administration/managing-databases-35.md b/content/en/docs/Administration/managing-databases-35.md new file mode 100644 index 0000000000000000000000000000000000000000..5a2a368022f0ccc941b2b566ce5929573de3f285 --- /dev/null +++ b/content/en/docs/Administration/managing-databases-35.md @@ -0,0 +1,3 @@ +# Managing Databases + + diff --git a/content/en/docs/Administration/managing-databases.md b/content/en/docs/Administration/managing-databases.md new file mode 100644 index 0000000000000000000000000000000000000000..cb1153165a19c2ea2b005f9a1ac09ef5bf6aafa4 --- /dev/null +++ b/content/en/docs/Administration/managing-databases.md @@ -0,0 +1,4 @@ +# Managing Databases + + + diff --git a/content/en/docs/Administration/managing-hard-disks-through-lvm.md b/content/en/docs/Administration/managing-hard-disks-through-lvm.md new file mode 100644 index 0000000000000000000000000000000000000000..9efcc365c90f4434bc17817e4ba6d89426155f42 --- /dev/null +++ b/content/en/docs/Administration/managing-hard-disks-through-lvm.md @@ -0,0 +1,4 @@ +# Managing Hard Disks Through LVM + + + diff --git a/content/en/docs/Administration/managing-httpd.md b/content/en/docs/Administration/managing-httpd.md new file mode 100644 index 0000000000000000000000000000000000000000..3bbe20a055825fdb89073f4e18298fe61e6139d5 --- /dev/null +++ b/content/en/docs/Administration/managing-httpd.md @@ -0,0 +1,93 @@ +# Managing httpd + +## Overview + +You can use the systemctl tool to manage the httpd service, including starting, stopping, and restarting the service, and viewing the service status. This section describes how to manage the Apache HTTP service. + +## Prerequisites + +- To use the Apache HTTP service, ensure that the rpm package of the httpd service has been installed in your system. The installation command is as follows: + + ``` + # dnf install httpd + ``` + + For more information about service management, see [Service Management](service-management.md). + +- To start, stop, and restart the httpd service, you must have the root permission. + +## Starting a Service + +- Run the following command to start and run the httpd service: + + ``` + # systemctl start httpd + ``` + + +- If you want the httpd service to automatically start when the system starts, the command and output are as follows: + + ``` + # systemctl enable httpd + Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the running Apache HTTP server functions as a secure server, a password is required after the system is started. The password is an encrypted private SSL key. + +## Stopping the Service + +- Run the following command to stop the httpd service: + + ``` + # systemctl stop httpd + ``` + +- If you want to prevent the service from automatically starting during system startup, the command and output are as follows: + + ``` + # systemctl disable httpd + Removed /etc/systemd/system/multi-user.target.wants/httpd.service. + ``` + + +## Restarting a Service + +You can restart the service in any of the following ways: + +- Restart the service by running the restart command: + + ``` + # systemctl restart httpd + ``` + + This command stops the ongoing httpd service and restarts it immediately. This command is generally used after a service is installed or when a dynamically loaded module \(such as PHP\) is removed. + +- Reload the configuration. + + ``` + # systemctl reload httpd + ``` + + This command causes the running httpd service to reload its configuration file. Any requests that are currently being processed will be interrupted, causing the client browser to display an error message or re-render some pages. + +- Re-load the configuration without affecting the activation request. + + ``` + # apachectl graceful + ``` + + This command causes the running httpd service to reload its configuration file. Any requests that are currently being processed will continue to use the old configuration file. + + +## Verifying the Service Status + +Check whether the httpd service is running. + +``` +# systemctl is-active httpd +``` + +If active is displayed in the command output, the service is running. + diff --git a/content/en/docs/Administration/managing-lvs.md b/content/en/docs/Administration/managing-lvs.md new file mode 100644 index 0000000000000000000000000000000000000000..78697bff64428d88ba47d779dbce7307b73a81b1 --- /dev/null +++ b/content/en/docs/Administration/managing-lvs.md @@ -0,0 +1,153 @@ +# Managing LVs + +## Creating an LV + +Run the **lvcreate** command to create an LV. + +``` +lvcreate [option] vgname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-L**: specifies the size of the LV in kKmMgGtT. + - **-l**: specifies the size of the LV \(number of LEs\). + - **-n**: specifies the name of the LV to be created. + - **-s**: creates a snapshot. + +- _vgname_: name of the VG to be created. + +Example 1: Run the following command to create a 10 GB LV in VG **vg1**. + +``` +lvcreate -L 10G vg1 +``` + +Example 1: Run the following command to create a 200 MB LV in VG **vg1** and name the LV **lv1**. + +``` +lvcreate -L 200M -n lv1 vg1 +``` + +## Viewing an LV + +Run the **lvdisplay** command to view the LV information, including the size of the LV, its read and write status, and snapshot information. + +``` +lvdisplay [option] [lvname] +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-v**: displays the mapping from LEs to PEs. + +- _lvname_: device file corresponding to the LV whose attributes are to be displayed. If this option is not set, attributes of all LVs are displayed. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Device files corresponding to LVs are stored in the VG directory. For example, if LV **lv1** is created in VG **vg1**, the device file corresponding to **lv1** is **/dev/vg1/lv1**. + + +Example: Run the following command to display the basic information about LV **lv1**: + +``` +lvdisplay /dev/vg1/lv1 +``` + +## Adjusting the LV Size + +Run the **lvresize** command to increase or reduce the size of an LVM LV. This may cause data loss. Therefore, exercise caution when running this command. + +``` +lvresize [option] vgname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-L**: specifies the size of the LV in kKmMgGtT. + - **-l**: specifies the size of the LV \(number of LEs\). + - **-f**: forcibly adjusts the size of the LV without user confirmation. + +- _lvname_: name of the LV to be adjusted. + +Example 1: Run the following command to increase the size of LV **/dev/vg1/lv1** by 200 MB. + +``` +lvresize -L +200 /dev/vg1/lv1 +``` + +Example 2: Run the following command to reduce the size of LV **/dev/vg1/lv1** by 200 MB. + +``` +lvresize -L -200 /dev/vg1/lv1 +``` + +## Extending an LV + +Run the **lvextend** command to dynamically extend the size of an LV online without interrupting the access of applications to the LV. + +``` +lvextend [option] lvname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-L**: specifies the size of the LV in kKmMgGtT. + - **-l**: specifies the size of the LV \(number of LEs\). + - **-f**: forcibly adjusts the size of the LV without user confirmation. + +- _lvname_: device file of the LV whose size is to be extended. + +Example: Run the following command to increase the size of LV **/dev/vg1/lv1** by 100 MB. + +``` +lvextend -L +100M /dev/vg1/lv1 +``` + +## Shrinking an LV + +Run the **lvreduce** command to reduce the size of an LV. This may delete existing data on the LV. Therefore, confirm whether the data can be deleted before running the command. + +``` +lvreduce [option] lvname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-L**: specifies the size of the LV in kKmMgGtT. + - **-l**: specifies the size of the LV \(number of LEs\). + - **-f**: forcibly adjusts the size of the LV without user confirmation. + +- _lvname_: device file of the LV whose size is to be extended. + +Example: Run the following command to reduce the space of LV **/dev/vg1/lvl** by 100 MB: + +``` +lvreduce -L -100M /dev/vg1/lv1 +``` + +## Deleting an LV + +Run the **lvremove** command to delete an LV. If the LV has been mounted by running the **mount** command, you need to run the **umount** command to unmount the LV before running the **lvremove** command. + +``` +lvremove [option] vgname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-f**: forcibly deletes an LV without user confirmation. + +- _vgname_: name of the LV to be deleted. + +Example: Run the following command to delete LV **/dev/vg1/lv1**. + +``` +lvremove /dev/vg1/lv1 +``` + diff --git a/content/en/docs/Administration/managing-nginx.md b/content/en/docs/Administration/managing-nginx.md new file mode 100644 index 0000000000000000000000000000000000000000..972c0fc07772b610ab2cfcc8c74a4fca97f8c5a2 --- /dev/null +++ b/content/en/docs/Administration/managing-nginx.md @@ -0,0 +1,89 @@ +# Managing Nginx + +## Overview + +You can use the systemctl tool to manage the Nginx service, including starting, stopping, and restarting the service, and viewing the service status. This section describes how to manage the Nginx service. + +## Prerequisites + +- Ensure that the Nginx service has been installed. If not, install it by referring to [Installing Nginx](installing-nginx.md). + + For more information about service management, see [Service Management](service-management.md). + +- To start, stop, and restart the httpd service, you must have the **root** permission. + +## Starting a Service + +- Run the following command to start and run the Nginx service: + + ``` + # systemctl start nginx + ``` + + +- If you want the Nginx service to automatically start when the system starts, the command and output are as follows: + + ``` + # systemctl enable nginx + Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service. + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the running Nginx server functions as a secure server, a password is required after the system is started. The password is an encrypted private SSL key. + +## Stopping the Service + +- Run the following command to stop the httpd service: + + ``` + # systemctl stop nginx + ``` + +- If you want to prevent the service from automatically starting during system startup, the command and output are as follows: + + ``` + # systemctl disable nginx + Removed /etc/systemd/system/multi-user.target.wants/nginx.service. + ``` + + +## Restarting a Service + +You can restart the service in any of the following ways: + +- Restart the service. + + ``` + # systemctl restart nginx + ``` + + This command stops the ongoing Nginx service and restarts it immediately. This command is generally used after a service is installed or when a dynamically loaded module \(such as PHP\) is removed. + +- Reload the configuration. + + ``` + # systemctl reload httpd + ``` + + This command causes the running Nginx service to reload its configuration file. Any requests that are currently being processed will be interrupted, causing the client browser to display an error message or re-render some pages. + +- Smoothly restart Nginx. + + ``` + # kill -HUP PID + ``` + + This command causes the running Nginx service to reload its configuration file. Any requests that are currently being processed will continue to use the old configuration file. + + +## Verifying the Service Status + +Check whether the httpd service is running. + +``` +# systemctl is-active nginx +``` + +If **active **is displayed in the command output, the service is running. + diff --git a/content/en/docs/Administration/managing-pvs.md b/content/en/docs/Administration/managing-pvs.md new file mode 100644 index 0000000000000000000000000000000000000000..a021c538f32348baa50c60cdfd9dd34b6d1c826d --- /dev/null +++ b/content/en/docs/Administration/managing-pvs.md @@ -0,0 +1,97 @@ +# Managing PVs + +## Creating a PV + +Run the **pvcreate** command to create a PV. + +``` +pvcreate [option] devname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-f**: forcibly creates a PV without user confirmation. + - **-u**: specifies the UUID of the device. + - **-y**: answers yes to all questions. + +- _devname_: specifies the name of the device corresponding to the PV to be created. If multiple PVs need to be created in batches, set this option to multiple device names and separate the names with spaces. + +Example 1: Create PVs based on **/dev/sdb** and **/dev/sdc**. + +``` +pvcreate /dev/sdb /dev/sdc +``` + +Example 2: Create PVs based on **/dev/sdb1** and **/dev/sdb2**. + +``` +pvcreate /dev/sdb1 /dev/sdb2 +``` + +## Viewing a PV + +Run the **pvdisplay** command to view PV information, including PV name, VG to which the PV belongs, PV size, PE size, total number of PEs, number of available PEs, number of allocated PEs, and UUID. + +``` +pvdisplay [option] devname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-s**: outputs information in short format. + - **-m**: displays the mapping from PEs to LEs. + +- _devname_: indicates the device corresponding to the PV to be viewed. If no PVs are specified, information about all PVs is displayed. + +Example: Run the following command to display the basic information about the PV **/dev/sdb**: + +``` +pvdisplay /dev/sdb +``` + +## Modifying PV Attributes + +Run the **pvchange** command to modify the attributes of a PV. + +``` +pvchange [option] pvname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-u**: generates a new UUID. + - **-x**: indicates whether PE allocation is allowed. + +- _pvname_: specifies the name of the device corresponding to the PV to be modified. If multiple PVs need to be modified in batches, set this option to multiple device names and separate the names with spaces. + +Example: Run the following command to prohibit PEs on the PV **/dev/sdb** from being allocated. + +``` +pvchange -x n /dev/sdb +``` + +## Deleting a PV + +Run the **pvremove** command to delete a PV. + +``` +pvremove [option] pvname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-f**: forcibly deletes a PV without user confirmation. + - **-y**: answers yes to all questions. + +- _pvname_: specifies the name of the device corresponding to the PV to be deleted. If multiple PVs need to be deleted in batches, set this option to multiple device names and separate the names with spaces. + +Example: Run the following command to delete the PV **/dev/sdb**: + +``` +pvremove /dev/sdb +``` + diff --git a/content/en/docs/Administration/managing-software-package-groups.md b/content/en/docs/Administration/managing-software-package-groups.md new file mode 100644 index 0000000000000000000000000000000000000000..6d9615ece92f1483512b7da51770ac2bac67a353 --- /dev/null +++ b/content/en/docs/Administration/managing-software-package-groups.md @@ -0,0 +1,121 @@ +# Managing Software Package Groups + +A software package set is a group of software packages that serve a common purpose, for example, a system tool set. You can use the DNF to install or delete software package groups, improving operation efficiency. + +## Listing Software Package Groups + +The summary parameter can be used to list the number of all installed software package groups, available groups, and available environment groups in the system. The command is as follows: + +``` +dnf groups summary +``` + +The following is an example: + +``` +# dnf groups summary +Last metadata expiration check: 0:11:56 ago on Sat 17 Aug 2019 07:45:14 PM CST. +Available Groups: 8 +``` + +To list all software package groups and their group IDs, run the following command: + +``` +dnf group list +``` + +The following is an example: + +``` +# dnf group list +Last metadata expiration check: 0:10:32 ago on Sat 17 Aug 2019 07:45:14 PM CST. +Available Environment Groups: + Minimal Install + Custom Operating System + Server +Available Groups: + Development Tools + Graphical Administration Tools + Headless Management + Legacy UNIX Compatibility + Network Servers + Scientific Support + Security Tools + System Tools + +``` + +## Displaying the Software Package Group Information + +To list the mandatory and optional packages contained in a software package group, run the following command: + +``` +dnf group info glob_expression... +``` + +The following is an example of displaying the Development Tools information: + +``` +# dnf group info "Development Tools" +Last metadata expiration check: 0:14:54 ago on Wed 05 Jun 2019 08:38:02 PM CST. + +Group: Development Tools + Description: A basic development environment. + Mandatory Packages: + binutils + glibc-devel + make + pkgconf + pkgconf-m4 + pkgconf-pkg-config + rpm-sign + Optional Packages: + expect +``` + +## Installation Software Package Group + +Each software package group has its own name and corresponding group ID. You can use the software package group name or its ID to install the software package. + +To install a software package group, run the following command as the user **root**: + +``` +dnf group install group_name +``` + +``` +dnf group install groupid +``` + +For example, to install the software package group of Development Tools, run the following command: + +``` +# dnf group install "Development Tools" +``` + +``` +# dnf group install development +``` + +## Deleting a Software Package Group + +To uninstall a software package group, you can use the group name or ID to run the following command as the user **root**: + +``` +dnf group remove group_name +``` + +``` +dnf group remove groupid +``` + +For example, to delete the software package group of Development Tools, run the following command: + +``` +# dnf group remove "Development Tools" +``` + +``` +# dnf group remove development +``` + diff --git a/content/en/docs/Administration/managing-software-package.md b/content/en/docs/Administration/managing-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..de7a67c1cc57d64d37bae7e3a47a475d2fbd43cf --- /dev/null +++ b/content/en/docs/Administration/managing-software-package.md @@ -0,0 +1,131 @@ +# Managing Software Package + +The DNF enables you to query, install, and delete software packages. + +## Searching for Software Packages + +You can search for the required RPM package by its name, abbreviation, or description. The command is as follows: + +``` +dnf search term +``` + +The following is an example: + +``` +$ dnf search httpd +========================================== N/S matched: httpd ========================================== +httpd.aarch64 : Apache HTTP Server +httpd-devel.aarch64 : Development interfaces for the Apache HTTP server +httpd-manual.noarch : Documentation for the Apache HTTP server +httpd-tools.aarch64 : Tools for use with the Apache HTTP Server +libmicrohttpd.aarch64 : Lightweight library for embedding a webserver in applications +mod_auth_mellon.aarch64 : A SAML 2.0 authentication module for the Apache Httpd Server +mod_dav_svn.aarch64 : Apache httpd module for Subversion server +``` + +## Listing Software Packages + +To list all installed and available RPM packages in the system, run the following command: + +``` +dnf list all +``` + +To list a specific RPM package in the system, run the following command: + +``` +dnf list glob_expression... +``` + +The following is an example: + +``` +$ dnf list httpd +Available Packages +httpd.aarch64 2.4.34-8.h5.oe1 Local +``` + +## Displaying RPM Package Information + +To view information about one or more RPM packages, run the following command: + +``` +dnf info package_name... +``` + +The following is a command example: + +``` +$ dnf info httpd +Available Packages +Name : httpd +Version : 2.4.34 +Release : 8.h5.oe1 +Arch : aarch64 +Size : 1.2 M +Repo : Local +Summary : Apache HTTP Server +URL : http://httpd.apache.org/ +License : ASL 2.0 +Description : The Apache HTTP Server is a powerful, efficient, and extensible + : web server. +``` + +## Installing an RPM Package + +To install a software package and all its dependencies that have not been installed, run the following command as the user **root**: + +``` +dnf install package_name +``` + +You can also add software package names to install multiple software packages at the same time. Add the **strict=False** parameter to the /etc/dnf/dnf.conf configuration file and run the **dnf** command to add --setopt=strict=0. Run the following command as the user **root**: + +``` +dnf install package_name package_name... --setopt=strict=0 +``` + +The following is an example: + +``` +# dnf install httpd +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the RPM package fails to be installed, see [Installation Failure Caused by Software Package Conflict, File Conflict, or Missing Software Package](installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md). + +## Downloading Software Packages + +To download the software package using the DNF, run the following command as the user **root**: + +``` +dnf download package_name +``` + +If you need to download the dependency packages that are not installed, add **--resolve**. The command is as follows: + +``` +dnf download --resolve package_name +``` + +The following is an example: + +``` +# dnf download --resolve httpd +``` + +## Deleting a Software Package + +To uninstall the software package and related dependent software packages, run the following command as the user **root**: + +``` +dnf remove package_name... +``` + +The following is an example: + +``` +# dnf remove totem +``` + diff --git a/content/en/docs/Administration/managing-system-processes.md b/content/en/docs/Administration/managing-system-processes.md new file mode 100644 index 0000000000000000000000000000000000000000..4dfab3f17bfa5a59423ea10c36370723fad55f08 --- /dev/null +++ b/content/en/docs/Administration/managing-system-processes.md @@ -0,0 +1,5 @@ +# Managing System Processes + +The operating system manages multiple user requests and tasks. In most cases, the operating system comes with only one CPU and one main memory, but it may have multiple tier-2 disks and input/output \(I/O\) devices. Therefore, users have to share resources, but it appears to users that they are exclusively occupying resources. The operating system places user tasks, OS tasks, emailing, print tasks, and other pending tasks in the queue and schedules the tasks according to predefined rules. In this topic, you will know how the operating system manages processes. + + diff --git a/content/en/docs/Administration/managing-system-services.md b/content/en/docs/Administration/managing-system-services.md new file mode 100644 index 0000000000000000000000000000000000000000..05f1c4781799b6d3bc73d7e824d3a9bce024f60c --- /dev/null +++ b/content/en/docs/Administration/managing-system-services.md @@ -0,0 +1,388 @@ +# Managing System Services + +The systemd provides the systemctl command to start, stop, restart, view, enable, and disable system services. + +## Comparison Between SysVinit and systemd Commands + +The **systemctl** command from the **systemd** command has the functions similar to the **SysVinit** command. Note that the **service** and **chkconfig** commands are supported in this version. For details, see [Table 1](#en-us_topic_0151920917_ta7039963b0c74b909b72c22cbc9f2e28). You are advised to manage system services by running the **systemctl** command. + +**Table 1** Comparison between SysVinit and systemd commands + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

SysVinit Command

+

systemd Command

+

Description

+

service network start

+

systemctl start network.service

+

Starts a service.

+

service network stop

+

systemctl stop network.service

+

Stops a service.

+

service network restart

+

systemctl restart network.service

+

Restarts a service.

+

service network reload

+

systemctl reload network.service

+

Reloads a configuration file without interrupting an operation.

+

service network condrestart

+

systemctl condrestart network.service

+

Restarts a service only if it is running.

+

service network status

+

systemctl status network.service

+

Checks the service running status.

+

chkconfig network on

+

systemctl enable network.service

+

Enables a service when the service activation time arrives or a trigger condition for enabling the service is met.

+

chkconfig network off

+

systemctl disable network.service

+

Disables a service when the service activation time arrives or a trigger condition for disabling the service is met.

+

chkconfig network

+

systemctl is-enabled network.service

+

Checks whether a service is enabled.

+

chkconfig --list

+

systemctl list-unit-files --type=service

+

Lists all services in each runlevel and checks whether they are enabled.

+

chkconfig network --list

+

ls /etc/systemd/system/*.wants/network.service

+

Lists the runlevels in which a service is enabled and those in which the service is disabled.

+

chkconfig network --add

+

systemctl daemon-reload

+

Used when you need to create a service file or change settings.

+
+ +## Listing Services + +To list all currently loaded services, run the following command: + +``` +systemctl list-units --type service +``` + +To list all services regardless of whether they are loaded, run the following command \(with the all option\): + +``` +systemctl list-units --type service --all +``` + +Example list of all currently loaded services: + +``` +$ systemctl list-units --type service +UNIT LOAD ACTIVE SUB JOB DESCRIPTION +atd.service loaded active running Deferred execution scheduler +auditd.service loaded active running Security Auditing Service +avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack +chronyd.service loaded active running NTP client/server +crond.service loaded active running Command Scheduler +dbus.service loaded active running D-Bus System Message Bus +dracut-shutdown.service loaded active exited Restore /run/initramfs on shutdown +firewalld.service loaded active running firewalld - dynamic firewall daemon +getty@tty1.service loaded active running Getty on tty1 +gssproxy.service loaded active running GSSAPI Proxy Daemon +irqbalance.service loaded active running irqbalance daemon +iscsid.service loaded activating start start Open-iSCSI +``` + +## Displaying Service Status + +To display the status of a service, run the following command: + +``` +systemctl status name.service +``` + +[Table 2](#en-us_topic_0151920917_t36cd267d69244ed39ae06bb117ed8e62) describes the parameters in the command output. + +**Table 2** Output parameters + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Loaded

+

Information on whether the service has been loaded, the absolute path to the service file, and a note of whether the service is enabled.

+

Active

+

Information on whether the service is running and a time stamp.

+

Main PID

+

PID of the service.

+

CGroup

+

Additional information about related control groups.

+
+ +To verify whether a particular service is running, run the following command: + +``` +systemctl is-active name.service +``` + +The output of the **is-active** command is as follows: + +**Table 3** Output of the is-active command + + + + + + + + + + + + + + + + + + + +

Status

+

Description

+

active(running)

+

One or more services are running in the system.

+

active(exited)

+

A service that ends properly after being executed only once. Currently, no program is running in the system. For example, the quotaon function is performed only when the program is started or mounted.

+

active(waiting)

+

The program needs to wait for other events to continue running. For example, the print queue service is being started, but it needs to be queued (print jobs) so that it can continue to wake up the printer service to perform the next print function.

+

inactive

+

The service is not running.

+
+ +Similarly, to determine whether a particular service is enabled, run the following command: + +``` +systemctl is-enabled name.service +``` + +The output of the **is-enabled** command is as follows: + +**Table 4** Output of the is-enabled command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Status

+

Description

+

"enabled"

+

Has been permanently enabled through Alias= Alias, .wants/, or .requires/ soft link in the /etc/systemd/system/ directory.

+

"enabled-runtime"

+

Has been temporarily enabled through Alias= Alias, .wants/, or .requires/ soft link in the /run/systemd/system/ directory.

+

"linked"

+

Although the unit file is not in the standard unit directory, one or more soft links pointing to the unit file exist in the /etc/systemd/system/ permanent directory.

+

"linked-runtime"

+

Although the unit file is not in the standard unit directory, one or more soft links pointing to the unit file exist in the /run/systemd/system/ temporary directory.

+

"masked"

+

Has been masked permanently by the /etc/systemd/system/ directory (soft link to /dev/null). Therefore, the start operation fails.

+

"masked-runtime"

+

Has been masked temporarily by the /run/systemd/systemd/ directory (soft link to /dev/null). Therefore, the start operation fails.

+

"static"

+

Not enabled. There is no option available for the enable command in the [Install] section of the unit file.

+

"indirect"

+

Not enabled. But the list of values for the Also= option in the [Install] section of the unit file is not empty (that is, some units in the list may have been enabled), or the unit file has an alias soft link which is not in the Also= list. For a template unit, it indicates that an instance different from DefaultInstance= is enabled.

+

"disabled"

+

Not enabled. But the [Install] section of the unit file contains options available for the enable command.

+

"generated"

+

The unit file is dynamically generated by the unit generator. The generated unit file may not be directly enabled, but is implicitly enabled by the unit generator.

+

"transient"

+

The unit file is dynamically and temporarily generated by the runtime API. The temporary unit may not be enabled.

+

"bad"

+

The unit file is incorrect or other errors occur. is-enabled does not return this status, but displays an error message. The list-unit-files command may display this unit.

+
+ +For example, to display the status of gdm.service, run the **systemctl status gdm.service** command. + +``` +# systemctl status gdm.service +gdm.service - GNOME Display Manager Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled) Active: active (running) since Thu 2013-10-17 17:31:23 CEST; 5min ago + Main PID: 1029 (gdm) + CGroup: /system.slice/gdm.service + ├─1029 /usr/sbin/gdm + ├─1037 /usr/libexec/gdm-simple-slave --display-id /org/gno... + └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager. +``` + +## Starting a Service + +To start a service, run the following command as the user **root**: + +``` +systemctl start name.service +``` + +For example, to start the httpd service, run the following command: + +``` +# systemctl start httpd.service +``` + +## Stopping a Service + +To stop a service, run the following command as the user **root**: + +``` +systemctl stop name.service +``` + +For example, to stop the Bluetooth service, run the following command: + +``` +# systemctl stop bluetooth.service +``` + +## Restarting a Service + +To restart a service, run the following command as the user **root**: + +``` +systemctl restart name.service +``` + +This command stops the selected service in the current session and immediately starts it again. If the selected service is not running, this command starts it too. + +For example, to restart the Bluetooth service, run the following command: + +``` +# systemctl restart bluetooth.service +``` + +## Enabling a Service + +To configure a service to start automatically at system boot time, run the following command as the user **root**: + +``` +systemctl enable name.service +``` + +For example, to configure the httpd service to start automatically at system boot time, run the following command: + +``` +# systemctl enable httpd.service +ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service' +``` + +## Disabling a Service + +To prevent a service from starting automatically at system boot time, run the following command as the user **root**: + +``` +systemctl disable name.service +``` + +For example, to prevent the Bluetooth service from starting automatically at system boot time, run the following command: + +``` +# systemctl disable bluetooth.service +Removed /etc/systemd/system/bluetooth.target.wants/bluetooth.service. +Removed /etc/systemd/system/dbus-org.bluez.service. +``` + diff --git a/content/en/docs/Administration/managing-vgs.md b/content/en/docs/Administration/managing-vgs.md new file mode 100644 index 0000000000000000000000000000000000000000..2a699e24bb468bcedd4d641b397c0da7585da5aa --- /dev/null +++ b/content/en/docs/Administration/managing-vgs.md @@ -0,0 +1,136 @@ +# Managing VGs + +## Creating a VG + +Run the **vgcreate** command to create a VG. + +``` +vgcreate [option] vgname pvname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-l**: specifies the maximum number of LVs that can be created on the VG. + - **-p**: specifies the maximum number of PVs that can be added to the VG. + - **-s**: specifies the PE size of a PV in the VG. + +- _vgname_: name of the VG to be created. +- _pvname_: name of the PV to be added to the VG. + +Example: Run the following command to create VG **vg1** and add the PVs **/dev/sdb** and **/dev/sdc** to the VG. + +``` +vgcreate vg1 /dev/sdb /dev/sdc +``` + +## Viewing a VG + +Run the **vgdisplay** command to view VG information. + +``` +vgdisplay [option] [vgname] +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-s**: outputs information in short format. + - **-A**: displays only attributes of active VGs. + +- _vgname_: name of the VG to be viewed. If no VGs are specified, information about all VGs is displayed. + +Example: Run the following command to display the basic information about VG **vg1**: + +``` +vgdisplay vg1 +``` + +## Modifying VG Attributes + +Run the **vgchange** command to modify the attributes of a VG. + +``` +vgchange [option] vgname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-a**: sets the active status of the VG. + +- _vgname_: name of the VG whose attributes are to be modified. + +Example: Run the following command to change the status of **vg1** to active. + +``` +vgchange -ay vg1 +``` + +## Extending a VG + +Run the **vgextend** command to dynamically extend a VG. In this way, the VG size is extended by adding PVs to the VG. + +``` +vgextend [option] vgname pvname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **dev**: debugging mode. + - **-t**: test only. + +- _vgname_: name of the VG whose size is to be extended. +- _pvname_: name of the PV to be added to the VG. + +Example: Run the following command to add PV **/dev/sdb** to VG **vg1**: + +``` +vgextend vg1 /dev/sdb +``` + +## Shrinking a VG + +Run the **vgreduce** command to delete PVs from a VG to reduce the VG size. A VG must contain at least one PV. + +``` +vgreduce [option] vgname pvname ... +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-a**: If no PVs are specified in the command, all empty PVs are deleted. + - **--removemissing**: deletes lost PVs in the VG to restore the VG to the normal state. + +- _vgname_: name of the VG to be shrunk. +- _pvname_: name of the PV to be deleted from the VG. + +Example: Run the following command to remove PV **/dev/sdb2** from VG **vg1**: + +``` +vgreduce vg1 /dev/sdb2 +``` + +## Deleting a VG + +Run the **vgremove** command to delete a VG. + +``` +vgremove [option] vgname +``` + +In the preceding information: + +- _option_: command parameter options. Common parameter options are as follows: + - **-f**: forcibly deletes a VG without user confirmation. + +- _vgname_: name of the VG to be deleted. + +Example: Run the following command to delete VG **vg1**. + +``` +vgremove vg1 +``` + diff --git a/content/en/docs/Administration/mariadb-server.md b/content/en/docs/Administration/mariadb-server.md new file mode 100644 index 0000000000000000000000000000000000000000..d935675d6d7723a6c7476d4c6bb6548a40a923f5 --- /dev/null +++ b/content/en/docs/Administration/mariadb-server.md @@ -0,0 +1,3 @@ +# MariaDB Server + + diff --git a/content/en/docs/Administration/modifying-a-role.md b/content/en/docs/Administration/modifying-a-role.md new file mode 100644 index 0000000000000000000000000000000000000000..af59a5a2887f91cb4a23bf7fe2dc47c307db4754 --- /dev/null +++ b/content/en/docs/Administration/modifying-a-role.md @@ -0,0 +1,44 @@ +# Modifying a Role + +## Modifying a Username + +Use the **ALTER ROLE** statement to modify an existing role name. + +``` +ALTER ROLE oldrolername RENAME TO newrolename; +``` + +In the preceding information: + +- _oldrolername_: original role name. +- _newrolename_: new role name. + +## Example of Modifying a User + +\#Change the role name **roleexample1** to **roleexapme2**. + +``` +# ALTER ROLE roleexample1 RENAME TO roleexample2; +``` + +## Modifying a User Password + +Use the **ALTER ROLE** statement to modify the login password of a role. + +``` +ALTER ROLE rolename PASSWORD 'password' +``` + +In the preceding information: + +- _rolename_: indicates a role name. +- _password_: password. + +## Example of Modifying the Password of a Role + +\#Modify the password of **roleexample1** to **456789**. + +``` +# ALTER ROLE roleexample1 WITH PASSWORD '456789'; +``` + diff --git a/content/en/docs/Administration/modifying-a-user-account.md b/content/en/docs/Administration/modifying-a-user-account.md new file mode 100644 index 0000000000000000000000000000000000000000..14c8c4d2273b29644dbb51f786971da956104324 --- /dev/null +++ b/content/en/docs/Administration/modifying-a-user-account.md @@ -0,0 +1,55 @@ +# Modifying a User Account + +## Changing a Password + +Common users can change their passwords using the **passwd** command. Only the admin is allowed to use the **passwd username** command to change passwords for other users. + +## Changing User's Login Shell + +Common users can use the **chsh** command to change their login shell. Only the admin is allowed to run the **chsh username** command to change login shell for other users. + +Users can also run the **usermod** command as the user **root** to modify the shell information. In the command, _new\_shell\_path_ indicates the target shell path, and _username_ indicates the user name to be modified. Change them based on the site requirements. + +``` +usermod -s new_shell_path username +``` + +For example, to change the shell of user\_example to csh, run the following command: + +``` +# usermod -s /bin/csh user_example +``` + +## Changing the Home Directory + +- To change the home directory, run the following command as the user **root**. In the command, _new\_home\_directory_ indicates the created target home directory, and _username_ indicates the user name to be changed. Change them based on the site requirements. + + ``` + usermod -d new_home_directory username + ``` + +- To move the content in the current home directory to a new one, run the usermod command with the -m option: + + ``` + usermod -d new_home_directory -m username + ``` + + +## Changing a UID + +To change the user ID, run the following command as the user **root**. In the command, _UID_ indicates the target user ID and _username_ indicates the user name. Change them based on the site requirements. + +``` +usermod -u UID username +``` + +The usermod command can change a user's UID in all files and directories under the user's home directory. However, for files outside the user's home directory, their owners can only be changed using the **chown** command. + +## Changing Account Expiry Date + +If the shadow password is used, run the following command as the user **root** to change the validity period of an account. In the command, _MM_, _DD_, and _YY_ indicate the month, day, and year, respectively, and _username_ indicates the user name. Change them based on the site requirements. + +``` +usermod -e MM/DD/YY username +``` + diff --git a/content/en/docs/Administration/modifying-attributes.md b/content/en/docs/Administration/modifying-attributes.md new file mode 100644 index 0000000000000000000000000000000000000000..adf2f429888d76b3092e2c65ebcd9d6ddc7fc06d --- /dev/null +++ b/content/en/docs/Administration/modifying-attributes.md @@ -0,0 +1,22 @@ +# Modifying Attributes + +Run the following command to check a specific attribute, for example, mtu: + +``` +# nmcli connection show id 'Wifi ' | grep mtu +802-11-wireless.mtu: auto +``` + +Run the following command to modify the attribute: + +``` +# nmcli connection modify id 'Wifi ' 802-11-wireless.mtu 1350 +``` + +Run the following command to confirm the modification: + +``` +# nmcli connection show id 'Wifi ' | grep mtu +802-11-wireless.mtu: 1350 +``` + diff --git a/content/en/docs/Administration/modifying-the-configuration-file.md b/content/en/docs/Administration/modifying-the-configuration-file.md new file mode 100644 index 0000000000000000000000000000000000000000..05e9f402e9d6184ffef27db1a785e714eb2caad6 --- /dev/null +++ b/content/en/docs/Administration/modifying-the-configuration-file.md @@ -0,0 +1,144 @@ +# Modifying the Configuration File + +The main configuration file of the DNF is /etc/dnf/dnf.conf. The **main** part in the file stores the global settings of the DNF. You can add one or more **repository** sections to the file to set the location of the software source to be installed. + +In addition, the /etc/yum.repos.d directory stores one or more repo source files, which define different repositories. + +You can configure a software source by either directly configuring the /etc/dnf/dnf.conf file or adding the .repo file to the /etc/yum.repos.d directory. + +## Modify the main Part + +The /etc/dnf/dnf.conf file contains the **main** part. The following is an example of the configuration file: + +``` +[main] +gpgcheck=0 +installonly_limit=3 +clean_requirements_on_remove=True +best=True +``` + +Common options are as follows: + +**Table 1** main parameter description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

cachedir

+

Cache directory for storing RPM packages and database files.

+

keepcache

+

The options are 1 and 0, indicating whether to cache the RPM packages and header files that have been successfully installed. The default value is 0, indicating that the RPM packages and header files are not cached.

+

debuglevel

+

Sets debugging information generated by the DNF. The value ranges from 0 to 10. A larger value indicates more detailed debugging information. The default value is 2. The value 0 indicates that the debug information is not displayed.

+

clean_requirements_on_remove

+

Deletes the dependency items that are no longer used during DNF removal. If the software package is installed through the DNF instead of the explicit user request, the software package can be deleted only through clean_requirements_on_remove, that is, the software package is introduced as a dependency item. The default value is True.

+

best

+

The system always attempts to install the latest version of the upgrade package. If the latest version cannot be installed, the system displays the cause and stops the installation. The default value is True.

+

obsoletes

+

The options are 1 and 0, indicating whether to allow the update of outdated RPM packages. The default value is 1, indicating that the update is allowed.

+

gpgcheck

+

The options are 1 and 0, indicating whether to perform GPG verification. The default value is 1, indicating that verification is required.

+

plugins

+

The options are 1 and 0, indicating that the DNF plug-in is enabled or disabled. The default value is 1, indicating that the DNF plug-in is enabled.

+

installonly_limit

+

Sets the number of packages that can be installed at the same time by running the installonlypkgs command. The default value is 3. You are advised not to decrease the value.

+
+ +## Modify the repository Part + +The repository part allows you to customize software source repositories. The name of each repository must be unique. Otherwise, conflicts may occur. The following is a minimum configuration example of the \[repository\] section: + +``` +[repository] +name=repository_name +baseurl=repository_url +``` + +Common options are as follows: + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>openEuler provides an online image source at [https://repo.openeuler.org/](https://repo.openeuler.org/). For example, if the openEuler 20.03 version is aarch64, the **baseurl** can be set to [https://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/](https://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/). + +**Table 2** repository parameter description + + + + + + + + + + + + + +

Parameter

+

Description

+

name=repository_name

+

Name string of a software repository.

+

baseurl=repository_url

+

Address of the software repository.

+
  • Network location using the HTTP protocol, for example, http://path/to/repo
  • Network location using the FTP protocol, for example, ftp://path/to/repo
  • Local path: for example, file:///path/to/local/repo
+
+ +## Displays the Current Configuration + +- To display the current configuration information, run the following command: + + ``` + dnf config-manager --dump + ``` + +- To display the configuration of a software source, query the repo id: + + ``` + dnf repolist + ``` + + Run the following command to display the software source configuration of the corresponding ID. In the command, _repository_ indicates the repository ID. + + ``` + dnf config-manager --dump repository + ``` + +- You can also use a global regular expression to display all matching configurations. + + ``` + dnf config-manager --dump glob_expression + ``` + + diff --git a/content/en/docs/Administration/modifying-users-31.md b/content/en/docs/Administration/modifying-users-31.md new file mode 100644 index 0000000000000000000000000000000000000000..318a9badf1e09cfb1b17f3f4e0537e8c8d529cc3 --- /dev/null +++ b/content/en/docs/Administration/modifying-users-31.md @@ -0,0 +1,55 @@ +# Modifying Users + +## Modifying a Username + +Run the **RENAME USER** statement to change one or more existing usernames. + +``` +RENAME USER 'oldusername'@'hostname' TO 'newusername'@'hostname'; +``` + +In the preceding information: + +- _oldusername_: original username. +- _newusername_: new username. +- _hostname_: host name. + +The **RENAME USER** statement is used to rename an existing account. If the original account does not exist in the system or the new account exists, an error will occur when the statement is executed. + +To use the **RENAME USER** statement, you must have the **UPDATE** permission on the database or the global **CREATE USER** permission. + +## Example of Modifying a User + +\# Change the username **userexample1** to **userexample2** and change the hostname to **locahost**. + +``` +> RENAME USER 'userexample1'@'localhost' TO 'userexample2'@'localhost'; +``` + +## Modifying a User Password + +Use the **SET PASSWORD** statement to modify the login password of a user. + +``` +SET PASSWORD FOR 'username'@'hostname' = 'newpassword'; +``` + +In the preceding information: + +- **FOR'**_username_**'@'**_hostname_**'**: specifies the username and hostname whose password is to be changed. This parameter is optional. +- _newpassword_: new password. + +If the **FOR** clause is not added to the **SET PASSWORD** statement, the password of the current user is changed. + +The **FOR** clause must be given in the format of **'**_username_**'@'**_hostname_**'**, where _username_ indicates the username of the account and _hostname_ indicates the hostname of the account. + +The account whose password is to be changed must exist in the system. Otherwise, an error occurs when the statement is executed. + +## Example of Changing a User Password + +\#Change the password of user **userexample** whose hostname is **locahost** to **0123456**. + +``` +> SET PASSWORD FOR 'userexample'@'localhost' = '0123456'; +``` + diff --git a/content/en/docs/Administration/modifying-users.md b/content/en/docs/Administration/modifying-users.md new file mode 100644 index 0000000000000000000000000000000000000000..8e5ff5398fc4bbecf9f731eeb8f35a64ace3bf1f --- /dev/null +++ b/content/en/docs/Administration/modifying-users.md @@ -0,0 +1,58 @@ +# Modifying Users + +## Modifying a Username + +Run the **RENAME USER** statement to change one or more existing usernames. + +``` +RENAME USER 'oldusername'@'hostname' TO 'newusername'@'hostname'; +``` + +In the preceding information: + +- _oldusername_: original username. +- _newusername_: new username. +- _hostname_: host name. + +The **RENAME USER** statement is used to rename an existing account. If the original account does not exist in the system or the new account exists, an error will occur when the statement is executed. + +To use the **RENAME USER** statement, you must have the UPDATE permission on the database or the global CREATE USER permission. + +## Example of Modifying a User + +\# Change the username **userexample1** to **userexample2** and change the hostname to **locahost**. + +``` +> RENAME USER 'userexample1'@'localhost' TO 'userexample2'@'localhost'; +``` + +## Modifying a User Password + +Use the **SET PASSWORD** statement to modify the login password of a user. + +``` +SET PASSWORD FOR 'username'@'hostname' = PASSWORD('newpassword'); +``` + +In the preceding information: + +- **FOR 'username'@'hostname'**: specifies the username and hostname whose password is to be changed. This parameter is optional. +- **PASSWORD\('newpassword'\)**: indicates that the **PASSWORD\(\)** function is used to set a new password. That is, the new password must be transferred to the **PASSWORD\(\)** function for encryption. + +>![](public_sys-resources/icon-caution.gif) **CAUTION:** +>The **PASSWORD\(\)** function is a unidirectional encryption function. Once encrypted, the original plaintext cannot be decrypted. + +If the **FOR** clause is not added to the **SET PASSWORD** statement, the password of the current user is changed. + +The **FOR** clause must be given in the format of **'**_username_**'@'**_hostname_**'**, where _username_ indicates the username of the account and _hostname_ indicates the hostname of the account. + +The account whose password is to be changed must exist in the system. Otherwise, an error occurs when the statement is executed. + +## Example of Changing a User Password + +\#Change the password of user **userexample** whose hostname is **locahost** to **0123456**. + +``` +> SET PASSWORD FOR 'userexample'@'localhost' = PASSWORD('0123456') ; +``` + diff --git a/content/en/docs/Administration/mounting-an-iso-file-to-create-a-repo-source.md b/content/en/docs/Administration/mounting-an-iso-file-to-create-a-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..203f818addb84e9981801bf3699721c5316b4101 --- /dev/null +++ b/content/en/docs/Administration/mounting-an-iso-file-to-create-a-repo-source.md @@ -0,0 +1,26 @@ +# Mounting an ISO File to Create a Repo Source + +Run the mount command to mount the image file. + +The following is an example: + +``` +mount /home/openEuler/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ +``` + +The mounted mnt directory is as follows: + +``` +. +│── boot.catalog +│── docs +│── EFI +│── images +│── Packages +│── repodata +│── TRANS.TBL +└── RPM-GPG-KEY-openEuler +``` + +In the preceding command, **Packages** indicates the directory where the RPM package is stored, **repodata** indicates the directory where the repo source metadata is stored, and **RPM-GPG-KEY-openEuler** indicates the public key for signing openEuler. + diff --git a/content/en/docs/Administration/mysql-server.md b/content/en/docs/Administration/mysql-server.md new file mode 100644 index 0000000000000000000000000000000000000000..dc8448ad2c435531eeca0dc6b600a59cc1df4b07 --- /dev/null +++ b/content/en/docs/Administration/mysql-server.md @@ -0,0 +1,4 @@ +# MySQL Server + + + diff --git a/content/en/docs/Administration/nginx-server.md b/content/en/docs/Administration/nginx-server.md new file mode 100644 index 0000000000000000000000000000000000000000..4d3cc4938c8b1b9fea8ecc60c688e6a01ac0fce1 --- /dev/null +++ b/content/en/docs/Administration/nginx-server.md @@ -0,0 +1,4 @@ +# Nginx Server + + + diff --git a/content/en/docs/Administration/obtaining-the-iso-image-file.md b/content/en/docs/Administration/obtaining-the-iso-image-file.md new file mode 100644 index 0000000000000000000000000000000000000000..f7f625a192023383a69fb261d47e029d431922f5 --- /dev/null +++ b/content/en/docs/Administration/obtaining-the-iso-image-file.md @@ -0,0 +1,8 @@ +# Obtaining the ISO Image File + +## Obtaining the Software Package + +Obtain the openEuler software package from the following website: + +[https://openeuler.org/zh/download.html](https://openeuler.org/zh/download.html) + diff --git a/content/en/docs/Administration/overview-1.md b/content/en/docs/Administration/overview-1.md new file mode 100644 index 0000000000000000000000000000000000000000..0be1c1b3d392dfea554362db154b2633f0f3f705 --- /dev/null +++ b/content/en/docs/Administration/overview-1.md @@ -0,0 +1,4 @@ +# Overview + +Create the **openEuler-20.03-LTS-aarch64-dvd.iso** image provided by openEuler as the repo source. The following uses Nginx as an example to describe how to deploy the repo source and provide the HTTP service. + diff --git a/content/en/docs/Administration/overview-2.md b/content/en/docs/Administration/overview-2.md new file mode 100644 index 0000000000000000000000000000000000000000..e841786e45f6f50a1509b55edd40983bd4f60252 --- /dev/null +++ b/content/en/docs/Administration/overview-2.md @@ -0,0 +1,6 @@ +# Overview + +World Wide Web \(Web\) is one of the most commonly used Internet protocols. At present, the web server in the Unix-Like system is mainly implemented through the Apache server software. To operate dynamic websites, LAMP \(Linux + Apache + MySQL + PHP\) is developed. Web services can be combined with multimedia such as text, graphics, images, and audio, and support information transmission through hyperlinks. + +The web server version in the openEuler system is Apache HTTP server 2.4, that is, httpd, which is an open-source web server developed by the Apache Software Foundation. + diff --git a/content/en/docs/Administration/overview-3.md b/content/en/docs/Administration/overview-3.md new file mode 100644 index 0000000000000000000000000000000000000000..f3ace12215790f77395c239b5c58efb07e79ba74 --- /dev/null +++ b/content/en/docs/Administration/overview-3.md @@ -0,0 +1,4 @@ +# Overview + +Nginx is a lightweight web server which also acts as a reverse proxy server and email \(IMAP/POP3\) proxy server. It features low memory usage and strong concurrency capability. Nginx supports FastCGI, SSL, virtual hosts, URL rewrite, Gzip, and extension of many third-party modules. + diff --git a/content/en/docs/Administration/overview.md b/content/en/docs/Administration/overview.md new file mode 100644 index 0000000000000000000000000000000000000000..033d13420454aa3e31767a73beba0ad8d9949754 --- /dev/null +++ b/content/en/docs/Administration/overview.md @@ -0,0 +1,13 @@ +# Overview + +Kunpeng Accelerator Engine \(KAE\) is a software acceleration library of openEuler, which provides hardware acceleration engine function on the Kunpeng 920 processor. The engine supports symmetric encryption, asymmetric encryption, and digital signature. It is ideal for accelerating SSL/TLS applications, and can significantly reduce processor consumption and improve processor efficiency. In addition, users can quickly migrate existing services through the standard OpenSSL interface. + +The KAE supports the following algorithms: + +- Digest algorithm SM3, which supports the asynchronous mode. +- Symmetric encryption algorithm SM4, which supports asynchronous, CTR, XTS, and CBC modes. + +- Symmetric encryption algorithm AES, which supports asynchronous, ECB, CTR, XTS, and CBC modes. +- Asymmetric algorithm RSA, which supports asynchronous mode, and key sizes 1024, 2048, 3072, and 4096. +- Key negotiation algorithm DH, which supports asynchronous mode, and key sizes 768, 1024, 1536, 2048, 3072, and 4096. + diff --git a/content/en/docs/Administration/performing-required-operations-after-installation.md b/content/en/docs/Administration/performing-required-operations-after-installation.md new file mode 100644 index 0000000000000000000000000000000000000000..80cb5f33b82304fbbecee4eca3f04e19bf6a5809 --- /dev/null +++ b/content/en/docs/Administration/performing-required-operations-after-installation.md @@ -0,0 +1,4 @@ +# Performing Required Operations After Installation + + + diff --git a/content/en/docs/Administration/persistency-configuration-of-the-ipv4-dhclient-daemon-process.md b/content/en/docs/Administration/persistency-configuration-of-the-ipv4-dhclient-daemon-process.md new file mode 100644 index 0000000000000000000000000000000000000000..d60d3682af41b8d5b4a9193e7a798bff775bc736 --- /dev/null +++ b/content/en/docs/Administration/persistency-configuration-of-the-ipv4-dhclient-daemon-process.md @@ -0,0 +1,33 @@ +# Persistency Configuration of the IPv4 dhclient Daemon Process + +## Overview + +When the NetworkManager service is used to manage network services, if the ifcfg- configuration file of an interface is configured to obtain an IP address in DHCP mode, the NetworkManager service starts the dhclient daemon process to obtain an IP address from the DHCP server. + +The dhclient provides the -1 option to determine whether the dhclient process persistently attempts to request an IP address or exits after the request times out before receiving a response from the DHCP server. For the IPv4 dhclient daemon process, you can set PERSISTENT\_DHCLIENT in the ifcfg- configuration file to determine whether to set the persistence of the IPv4 dhclient process. + +## Restrictions + +1. If the ongoing dhclient process is killed, the network service cannot automatically start it. Therefore, you need to ensure the reliability. +2. If PERSISTENT\_DHCLIENT is configured, ensure that the corresponding DHCP server exists. If no DHCP server is available when the network service is started and the dhclient process continuously attempts to send request packets but does not receive any response, the network service is suspended until the network service times out. The network service starts the IPv4 dhclient processes of multiple NICs in serial mode. If persistency is configured for a NIC but the DHCP server is not ready, the network service will be suspended when obtaining an IPv4 address for the NIC. As a result, the NIC cannot obtain an IPv4 or IPv6 address. + +The preceding restrictions apply to special scenarios. You need to ensure reliability. + +## Configuration Differences Between IPv4 DHCP and IPv6 DHCPv6 + +You can configure the ifcfg- parameter on an interface to enable IPv4 and IPv6 to dynamically obtain IP addresses using DHCP or DHCPv6. The configuration is as follows: + +``` +BOOTPROTO=none|bootp|dhcp +DHCPV6C=yes|no +PERSISTENT_DHCLIENT=yes|no|1|0 +``` + +- BOOTPROTO: **none** indicates that an IPv4 address is statically configured. bootp|dhcp enables DHCP dhclient to dynamically obtain an IPv4 address. +- DHCPV6C: **no** indicates that an IPv6 address is statically configured, and **yes** indicates that the DHCPv6 dhclient is enabled to dynamically obtain the IPv6 address. +- PERSISTENT\_DHCLIENT: **no|0** indicates that the IPv4 dhclient process is configured as nonpersistent. If the dhclient sends a request packet to the DHCP server but does not receive any response, the dhclient exits after a period of time and the exit value is 2. **yes|1** indicates that the IPv4 dhclient process is configured to be persistent. The dhclient process repeatedly sends request packets to the DHCP server. **If PERSISTENT\_DHCLIENT is not configured, dhclient of IPv4 is set to yes|1 by default.** + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The PERSISTENT\_DHCLIENT configuration takes effect only for IPv4 and does not take effect for IPv6-related dhclient -6 processes. By default, the persistence configuration is not performed for IPv6. + + diff --git a/content/en/docs/Administration/postgresql-server.md b/content/en/docs/Administration/postgresql-server.md new file mode 100644 index 0000000000000000000000000000000000000000..cd5df6922ec94c69f5407d7526efaf46fc45d9c0 --- /dev/null +++ b/content/en/docs/Administration/postgresql-server.md @@ -0,0 +1,4 @@ +# PostgreSQL Server + + + diff --git a/content/en/docs/Administration/preparing-for-installation.md b/content/en/docs/Administration/preparing-for-installation.md new file mode 100644 index 0000000000000000000000000000000000000000..a6dfbc31b91ac5830325c5640f490a4d248f47b9 --- /dev/null +++ b/content/en/docs/Administration/preparing-for-installation.md @@ -0,0 +1,46 @@ +# Preparing for Installation + +## Environment Requirements + +- The accelerator engine is enabled on TaiShan 200 servers. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- You need to import the accelerator license. For details, see section "License Management" in the [TaiShan Rack Server iBMC \(V500 or Later\) User Guide](https://support.huawei.com/enterprise/en/doc/EDOC1100121685/426cffd9?idPath=7919749|9856522|21782478|8060757). +>- If the accelerator is used in the physical machine scenario, the SMMU must be disabled. For details, see the [TaiShan 200 Server BIOS Parameter Reference](https://support.huawei.com/enterprise/en/doc/EDOC1100088647). + +- CPU: Kunpeng 920 +- OS: openEuler-20.03-LTS-aarch64-dvd.iso + +## KAE Software Description + +**Table 1** RPM software packages of the KAE + + + + + + + + + + + + + + + + +

Software Package

+

Description

+

kae_driver-version number-1.OS type.aarch64.rpm

+

Accelerator driver, including the uacce.ko, hisi_qm.ko, hisi_sec2.ko, and hisi_hpre.ko kernel modules.

+

Support: SM3, SM4, AES, RSA, and DH algorithms.

+

libwd-version number-1.OS type.aarch64.rpm

+

Coverage: libwd.so dynamic link library.

+

It provides interfaces for the KAE.

+

libkae-version number-1.OS type.aarch64.rpm

+

Dependency: libwd RPM package.

+

Coverage: libkae.so dynamic library.

+

Support: SM3, SM4, AES, RSA, and DH algorithms.

+
+ diff --git a/content/en/docs/Administration/process-management.md b/content/en/docs/Administration/process-management.md new file mode 100644 index 0000000000000000000000000000000000000000..2a188bbea51cf0491865eaf6820016b73bacec18 --- /dev/null +++ b/content/en/docs/Administration/process-management.md @@ -0,0 +1,5 @@ +# Process Management + +This topic explains how Linux kernel manages processes. It also provides examples to help you better understand common process control commands, at and cron services, as well as process query commands. + + diff --git a/content/en/docs/Administration/public_sys-resources/icon-caution.gif b/content/en/docs/Administration/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-caution.gif differ diff --git a/content/en/docs/Administration/public_sys-resources/icon-danger.gif b/content/en/docs/Administration/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-danger.gif differ diff --git a/content/en/docs/Administration/public_sys-resources/icon-note.gif b/content/en/docs/Administration/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-note.gif differ diff --git a/content/en/docs/Administration/public_sys-resources/icon-notice.gif b/content/en/docs/Administration/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27 Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-notice.gif differ diff --git a/content/en/docs/Administration/public_sys-resources/icon-tip.gif b/content/en/docs/Administration/public_sys-resources/icon-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7 Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-tip.gif differ diff --git a/content/en/docs/Administration/public_sys-resources/icon-warning.gif b/content/en/docs/Administration/public_sys-resources/icon-warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Administration/public_sys-resources/icon-warning.gif differ diff --git a/content/en/docs/Administration/querying-logs.md b/content/en/docs/Administration/querying-logs.md new file mode 100644 index 0000000000000000000000000000000000000000..1c4a582bac4a9fee06834659d1913cf698cda491 --- /dev/null +++ b/content/en/docs/Administration/querying-logs.md @@ -0,0 +1,39 @@ +# Querying Logs + +[Table 1](#table52821836) lists log information related to the accelerator engine. + +**Table 1** Log information + + + + + + + + + + + + + + + + +

Directory

+

File

+

Description

+

/var/log/

+

kae.log

+

By default, the log level of the OpenSSL engine log is error. To set the log level, perform the following procedure:

+
  1. Run export KAE_CONF_ENV=/var/log/.
  2. Create the kae.cnf file in /var/log/.
  3. In the kae.cnf file, configure the content as follows:

    [LogSection]

    +

    debug_level=error #Value: none, error, info, warning or debug

    +
+
NOTE:

In normal cases, you are advised not to enable the info or debug log level. Otherwise, the accelerator performance will deteriorate.

+
+

/var/log/

+

message/syslog

+
  • Kernel logs are stored in the /var/log/message directory.
+
NOTE:

Alternatively, you can run the dmesg > /var/log/dmesg.log command to collect driver and kernel logs.

+
+
+ diff --git a/content/en/docs/Administration/related-commands-of-dnf.md b/content/en/docs/Administration/related-commands-of-dnf.md new file mode 100644 index 0000000000000000000000000000000000000000..7e55c73ffdf8fc07710d61f03961ed2154a092dd --- /dev/null +++ b/content/en/docs/Administration/related-commands-of-dnf.md @@ -0,0 +1,71 @@ +# Related Commands of dnf + +The dnf command can automatically parse the dependency between packages during installation and upgrade. The common usage method is as follows: + +``` +dnf +``` + +Common commands are as follows: + +- Installation + + ``` + dnf install + ``` + +- Upgrade + + ``` + dnf update + ``` + +- Rollback + + ``` + dnf downgrade + ``` + +- Checking for update + + ``` + dnf check-update + ``` + +- Uninstallation + + ``` + dnf remove + ``` + +- Query + + ``` + dnf search + ``` + +- Local installation + + ``` + dnf localinstall + ``` + +- Viewing historical records + + ``` + dnf history + ``` + +- Clearing cache records + + ``` + dnf clean all + ``` + +- Updating cache + + ``` + dnf makecache + ``` + + diff --git a/content/en/docs/Administration/repo-priority.md b/content/en/docs/Administration/repo-priority.md new file mode 100644 index 0000000000000000000000000000000000000000..0f014d76003d0381b1a685e41bcb8a9f6c2d7c9a --- /dev/null +++ b/content/en/docs/Administration/repo-priority.md @@ -0,0 +1,18 @@ +# repo Priority + +If there are multiple repo sources, you can set the repo priority in the .repo file. If the priority is not set, the default priority is 99. If the same RPM package exists in the sources with the same priority, the latest version is installed. **1** indicates the highest priority and **99** indicates the lowest priority. For example, set the priority of **openEuler.repo** to **2**. + +``` +[base] +name=base +baseurl=http://192.168.1.2/ +enabled=1 +priority=2 +gpgcheck=1 +gpgkey=http://192.168.1.2/RPM-GPG-KEY-openEuler +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>_gpgcheck_ indicates whether to enable the GNU private guard \(GPG\) to check the validity and security of sources of RPM packages. **1** indicates GPG check is enabled. **0** indicates the GPG check is disabled. If this option is not specified, the GPG check is enabled by default. +>_gpgkey_ is the storage path of the signature public key. + diff --git a/content/en/docs/Administration/restoring-a-database-20.md b/content/en/docs/Administration/restoring-a-database-20.md new file mode 100644 index 0000000000000000000000000000000000000000..c3f47f539bb81a41fe5fa5ed510d76189fce0f67 --- /dev/null +++ b/content/en/docs/Administration/restoring-a-database-20.md @@ -0,0 +1,27 @@ +# Restoring a Database + +Run the **mysqldump** command to restore the database. + +Back up one or more tables: + +``` +mysql -h hostname -P portnumber -u username -ppassword databasename < infile +``` + +In the preceding information: + +- _hostname_: host name. +- _portnumber_: port number. +- _username_: name of a user. +- _password_: password. +- _databasename_: database name. +- _infile_: **outfile** parameter in the **mysqldump **command. + +## Example + +\#Restore a database. + +``` +# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 < db1.sql +``` + diff --git a/content/en/docs/Administration/restoring-a-database-41.md b/content/en/docs/Administration/restoring-a-database-41.md new file mode 100644 index 0000000000000000000000000000000000000000..60bedccb9b0c9c25847c1961096650c4d9764dff --- /dev/null +++ b/content/en/docs/Administration/restoring-a-database-41.md @@ -0,0 +1,27 @@ +# Restoring a Database + +Run the **mysqldump** command to restore the database. + +Back up one or more tables: + +``` +mysql -h hostname -P portnumber -u username -ppassword databasename < infile +``` + +In the preceding information: + +- _hostname_: host name. +- _portnumber_: port number. +- _username_: name of a user. +- _password_: password. +- _databasename_: database name. +- _infile_: **outfile** parameter in the **mysqldump **command. + +## Example + +\#Restore a database. + +``` +# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 < db1.sql +``` + diff --git a/content/en/docs/Administration/restoring-a-database.md b/content/en/docs/Administration/restoring-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..1995a769c11f933e52072a369e0d1b3fc8f3df7b --- /dev/null +++ b/content/en/docs/Administration/restoring-a-database.md @@ -0,0 +1,33 @@ +# Restoring a Database + +Run the **psql** command to restore the database. + +``` +psql [option]... [databasename [username]] < infile +``` + +In the preceding information: + +- _databasename_: database name. If this parameter is not specified, the environment variable **PGDATABASE** is used. If that environment variable is not specified, use the username that initiates the connection. +- _username_: name of a user. +- _infile_: **outfile** parameter in the **pg\_dump** command. +- _option_: parameter option of the **psql** command. Multiple parameters can be separated by spaces. The common parameters of the **psql** command are as follows: + - **-f **_filename_**, --file=**_filename_: specified output file. If this parameter is ignored, the standard output is used. + - **-d, --dbname=**_databasename_: database to be dumped. + - **-h, --host=**_hostname_: specifies the hostname. + - **-p, --port=**_portnumber_: port number. + - **-U, --username=**_username_: username of the connection. + - **-W, --password**: forces PostgreSQL to prompt for a password before connecting to a database. + + +The **psql** command cannot be used to automatically create the **databasename** database. Therefore, you need to create the **databasename** database before running the **psql** command to restore the database. + +## Example + +\#Import the **db1.sql** script file to the newdb database of the postgres user on the host **192.168.202.144** through port **3306**. + +``` +$ createdb newdb +$ psql -h 192.168.202.144 -p 3306 -U postgres -W -d newdb < db1.sql +``` + diff --git a/content/en/docs/Administration/restrictions.md b/content/en/docs/Administration/restrictions.md new file mode 100644 index 0000000000000000000000000000000000000000..7e2716c4515e47c90c4dd5edf38c4b3d1932d271 --- /dev/null +++ b/content/en/docs/Administration/restrictions.md @@ -0,0 +1,5 @@ +# Restrictions + +- chrony supports global addresses but not link-local addresses. +- Firefox supports the access to the global address through HTTP or HTTPS, but does not support the access to the link-local address. + diff --git a/content/en/docs/Administration/role-permissions.md b/content/en/docs/Administration/role-permissions.md new file mode 100644 index 0000000000000000000000000000000000000000..373c846739bec1fa9dac79346490514299fba6f6 --- /dev/null +++ b/content/en/docs/Administration/role-permissions.md @@ -0,0 +1,84 @@ +# Role Permissions + +You can use the **GRANT** statement to grant permissions to a role. + +Grant the table operation permission to a role. + +``` +GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] } ON [ TABLE ] tablename [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the sequence operation permission to a role. + +``` +GRANT { { USAGE | SELECT | UPDATE } [,...] | ALL [ PRIVILEGES ] } ON SEQUENCE sequencename [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the database operation permission to a role. + +``` +GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE databasename [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the function operation permission to a role. + +``` +GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the operation permission of the procedural language to a role. + +``` +GRANT { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE langname [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the schema operation permission to a role. + +``` +GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schemaname [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Grant the tablespace operation permission to a role. + +``` +GRANT { CREATE | ALL [ PRIVILEGES ] } ON TABLESPACE tablespacename [, ...] TO { rolename | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ] +``` + +Assign the member relationship of rolename1 to rolename2. + +``` +GRANT rolename1 [, ...] TO rolename2 [, ...] [ WITH ADMIN OPTION ] +``` + +In the preceding information: + +- **SELECT**, **INSERT**, **UPDATE**, **DELETE**, **REFERENCES**, **TRIGGER**, **USAGE**, **CREATE**, **CONNECT**, **TEMPORARY**, **TEMP**, **EXECUTE**, and **ALL \[**_PRIVILEGES_**\]** indicate user operation permissions. **ALL \[**_PRIVILEGES_**\]** indicates all permissions, the _PRIVILEGES_ keyword is optional in PostgreSQL, but it is required in strict SQL statements. +- **ON** clause: specifies the object on which the permission is granted. +- **tablename**: table name. +- **TO** clause: specifies the role to which the permission is granted. +- **rolename**, **rolename1**, and **rolename2**: role names. +- **groupname**: name of a role group. +- **PUBLIC**: indicates that the permission is granted to all roles, including users who may be created later. +- **WITH GRANT OPTION**: indicates that the recipient of a permission can grant the permission to others. This option cannot be assigned to PUBLIC. +- **sequencename**: sequence name. +- **databasename**: database name. +- **funcname \(\[\[argmode\] \[argname\] argtype \[, ...\]\]\)**: function name and its parameters. +- **langname**: procedural language name. +- **schemaname**: schema name. +- **tablespacename**: tablespace name. +- **WITH ADMIN OPTION**: A member can assign the member relationship of a role to other roles and cancel the member relationship of other roles. + +## Example + +\#Grant the CREATE permission on database1 to userexample. + +``` +# GRANT CREATE ON DATABASE database1 TO userexample; +``` + +\#Grant all permissions on table1 to all users. + +``` +# GRANT ALL PRIVILEGES ON TABLE table1 TO PUBLIC; +``` + diff --git a/content/en/docs/Administration/rsyslog-log-transmission-is-delayed-in-the-scenario-where-both-ipv4-and-ipv6-are-used.md b/content/en/docs/Administration/rsyslog-log-transmission-is-delayed-in-the-scenario-where-both-ipv4-and-ipv6-are-used.md new file mode 100644 index 0000000000000000000000000000000000000000..5ccd49bf8bfacbd3e0ef9750aa280077e2b2d217 --- /dev/null +++ b/content/en/docs/Administration/rsyslog-log-transmission-is-delayed-in-the-scenario-where-both-ipv4-and-ipv6-are-used.md @@ -0,0 +1,23 @@ +# Rsyslog Log Transmission Is Delayed in the Scenario Where Both IPv4 and IPv6 Are Used + +## Symptom + +When both IPv4 and IPv6 addresses are configured in the configuration file of the rsyslog client and the port configurations are the same, there is a possibility that log output is delayed when the server collects logs. + +## Possible Cause + +The delay is caused by the buffer queue mechanism of rsyslog. By default, rsyslog writes data to a file only when the number of buffer queues reaches a specified value. + +## Solution + +You can disable the buffer queue mechanism by configuring the Direct mode. Add the following information at the beginning of the new remote transmission configuration file in the /etc/rsyslog.d directory on the rsyslog remote transmission server: + +``` +$ActionQueueType Direct +$MainMsgQueueType Direct +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- In direct mode, the queue size is reduced by 1. Therefore, one log is reserved in the queue for the next log output. +>- The direct mode degrades the rsyslog performance of the server. + diff --git a/content/en/docs/Administration/running-mariadb-server.md b/content/en/docs/Administration/running-mariadb-server.md new file mode 100644 index 0000000000000000000000000000000000000000..7edea3e2ee675425bbaeacfd4c5c055e49c73bb4 --- /dev/null +++ b/content/en/docs/Administration/running-mariadb-server.md @@ -0,0 +1,28 @@ +# Running MariaDB Server + +1. Start the MariaDB server. + + ``` + #systemctl start mariadb + ``` + +2. Initialize the database. + + ``` + #/usr/bin/mysql_secure_installation + ``` + + During the command execution, you need to enter the password of the database user **root**. If no password is set, press **Enter**. Then, set the password as prompted. + +3. Log in to the database. + + ``` + # mysql -u root -p + ``` + + After the command is executed, the system prompts you to enter the password. The password is the one set in [2](#li197143190587). + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Run the **\\q** or **exit** command to exit the database. + + diff --git a/content/en/docs/Administration/running-mysql.md b/content/en/docs/Administration/running-mysql.md new file mode 100644 index 0000000000000000000000000000000000000000..c5131e253c208ecb022818142af9200992a5addb --- /dev/null +++ b/content/en/docs/Administration/running-mysql.md @@ -0,0 +1,148 @@ +# Running MySQL + +1. Modify the configuration file. + 1. Create the **my.cnf** file and change the file paths \(including the software installation path **basedir** and data path **datadir**\) based on the actual situation. + + ``` + #vi /etc/my.cnf + ``` + + Edit the **my.cnf** file as follows: + + ``` + [mysqld_safe] + log-error=/data/mysql/log/mysql.log + pid-file=/data/mysql/run/mysqld.pid + [mysqldump] + quick + [mysql] + no-auto-rehash + [client] + default-character-set=utf8 + [mysqld] + basedir=/usr/local/mysql + socket=/data/mysql/run/mysql.sock + tmpdir=/data/mysql/tmp + datadir=/data/mysql/data + default_authentication_plugin=mysql_native_password + port=3306 + user=mysql + ``` + + 2. Ensure that the **my.cnf** file is correctly modified. + + ``` + #cat /etc/my.cnf + ``` + + ![](figures/en-us_image_0231563132.png) + + >![](public_sys-resources/icon-caution.gif) **CAUTION:** + >In the configuration file, **basedir** specifies the software installation path. Change it based on actual situation. + + 3. Change the group and user of the **/etc/my.cnf** file to **mysql:mysql**. + + ``` + #chown mysql:mysql /etc/my.cnf + ``` + +2. Configure environment variables. + 1. Add the path of the MySQL binary files to the **PATH** parameter. + + ``` + #echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile + ``` + + >![](public_sys-resources/icon-caution.gif) **CAUTION:** + >In the command, **/usr/local/mysql/bin** is the absolute path of the **bin** files in the MySQL software installation directory. Change it based on actual situation. + + 2. Run the following command to make the environment variables take effect: + + ``` + #source /etc/profile + ``` + +3. Initialize the database. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The second line from the bottom contains the initial password, which will be used when you log in to the database. + + ``` + #mysqld --defaults-file=/etc/my.cnf --initialize + 2020-03-18T03:27:13.702385Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 34014 + 2020-03-18T03:27:24.112453Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iNat=)#V2tZu + 2020-03-18T03:27:28.576003Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server has completed + ``` + + If the command output contains "initializing of server has completed", the database has been initialized. In the command output, "iNat=\)\#V2tZu" in "A temporary password is generated for root@localhost: iNat=\)\#V2tZu" is the initial password. + +4. Start the database. + + >![](public_sys-resources/icon-caution.gif) **CAUTION:** + >Start MySQL as user **mysql** if it is the first time to start the database service. If you start MySQL as user **root**, a message will be displayed indicating that the **mysql.log** file is missing. If you start MySQL as user **mysql**, the **mysql.log** file will be generated in the **/data/mysql/log** directory. No error will be displayed if you start the database as user **root** again. + + 1. Modify the file permission. + + ``` + #chmod 777 /usr/local/mysql/support-files/mysql.server + ``` + + 2. Start MySQL. + + ``` + #cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql + #chkconfig mysql on + ``` + + Start MySQL as user **mysql**. + + ``` + #su - mysql + $service mysql start + ``` + +5. Log in to the database. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- Enter the initial password generated during database initialization \([3](#li15634560582)\). + >- If MySQL is installed by using an RPM package obtained from the official website, the **mysqld** file is located in the **/usr/sbin** directory. Ensure that the directory specified in the command is correct. + + ``` + $/usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock + ``` + + ![](figures/en-us_image_0231563134.png) + +6. Configure the database accounts and passwords. + 1. After logging in to the database, change the password of user **root** for logging in to the database. + + ``` + mysql>alter user 'root'@'localhost' identified by "123456"; + ``` + + 2. Create a user **root** for all the other hosts in the domain. + + ``` + mysql>create user 'root'@'%' identified by '123456'; + ``` + + 3. Grant permissions to the user **root**. + + ``` + mysql>grant all privileges on *.* to 'root'@'%'; + mysql>flush privileges; + ``` + + ![](figures/en-us_image_0231563135.png) + +7. Exit the database. + + Run the **\\q** or **exit** command to exit the database. + + ``` + mysql>exit + ``` + + ![](figures/en-us_image_0231563136.png) + + diff --git a/content/en/docs/Administration/running-postgresql.md b/content/en/docs/Administration/running-postgresql.md new file mode 100644 index 0000000000000000000000000000000000000000..b5ef5589cbc8b1b708ce0f5ef1e9e3e985c7df7e --- /dev/null +++ b/content/en/docs/Administration/running-postgresql.md @@ -0,0 +1,4 @@ +# Running PostgreSQL + + + diff --git a/content/en/docs/Administration/running-the-nmcli-command.md b/content/en/docs/Administration/running-the-nmcli-command.md new file mode 100644 index 0000000000000000000000000000000000000000..230892352aa823d4add51aa2e79420c95953590f --- /dev/null +++ b/content/en/docs/Administration/running-the-nmcli-command.md @@ -0,0 +1,41 @@ +# Running the nmcli Command + +- To create a bond named **mybond0**, run the following command: + + ``` + # nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup + ``` + +- To add a slave interface, run the following command: + + ``` + # nmcli con add type bond-slave ifname enp3s0 master mybond0 + ``` + + To add another slave interface, repeat the preceding command with the new interface name: + + ``` + # nmcli con add type bond-slave ifname enp4s0 master mybond0 + Connection 'bond-slave-enp4s0' (05e56afc-b953-41a9-b3f9-0791eb49f7d3) successfully added. + ``` + +- To enable a bond, run the following command to enable the slave interface first: + + ``` + # nmcli con up bond-slave-enp3s0 + Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14) + ``` + + ``` + # nmcli con up bond-slave-enp4s0 + Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15) + ``` + + Then, run the following command to enable the bond: + + ``` + # nmcli con up bond-mybond0 + Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16) + ``` + + diff --git a/content/en/docs/Administration/scheduling-a-process.md b/content/en/docs/Administration/scheduling-a-process.md new file mode 100644 index 0000000000000000000000000000000000000000..9f1f7951fac695354687dcdc4ef26fe44186662a --- /dev/null +++ b/content/en/docs/Administration/scheduling-a-process.md @@ -0,0 +1,5 @@ +# Scheduling a Process + +The time-consuming and resource-demanding part of maintenance work is often performed at late night. You can arrange relevant processes to get started at the scheduled time instead of staying up all night. Here, we will explain the process scheduling commands. + + diff --git a/content/en/docs/Administration/selecting-a-database-17.md b/content/en/docs/Administration/selecting-a-database-17.md new file mode 100644 index 0000000000000000000000000000000000000000..7496226c25073b085723472e9346e7b33acaa144 --- /dev/null +++ b/content/en/docs/Administration/selecting-a-database-17.md @@ -0,0 +1,18 @@ +# Selecting a Database + +Generally, you need to select a target database before creating or querying a table. Use the **USE** statement to select a database. + +``` +USE databasename; +``` + +In the preceding command, **databasename** indicates the database name. + +## Example + +\#Select the **databaseexample** database. + +``` +> USE databaseexample; +``` + diff --git a/content/en/docs/Administration/selecting-a-database-38.md b/content/en/docs/Administration/selecting-a-database-38.md new file mode 100644 index 0000000000000000000000000000000000000000..c5357983e971347b44c8406f4ad47d9bc8e33d4f --- /dev/null +++ b/content/en/docs/Administration/selecting-a-database-38.md @@ -0,0 +1,18 @@ +# Selecting a Database + +Generally, you need to select a target database before creating or querying a table. Use the **USE** statement to select a database. + +``` +USE databasename; +``` + +In the preceding command, _databasename_ indicates the database name. + +## Example + +\#Select the **databaseexample** database. + +``` +> USE databaseexample; +``` + diff --git a/content/en/docs/Administration/selecting-a-database.md b/content/en/docs/Administration/selecting-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..ebc820d066776b438c6728676b400c36389444b2 --- /dev/null +++ b/content/en/docs/Administration/selecting-a-database.md @@ -0,0 +1,18 @@ +# Selecting a Database + +Use the **\\c** statement to select a database. + +``` +\c databasename; +``` + +In the preceding command, **databasename** indicates the database name. + +## Example + +\#Select the **databaseexample** database. + +``` +# \c databaseexample; +``` + diff --git a/content/en/docs/Administration/service-management.md b/content/en/docs/Administration/service-management.md new file mode 100644 index 0000000000000000000000000000000000000000..2a529efdb421d07e13d755eec3e294a5c741d2a8 --- /dev/null +++ b/content/en/docs/Administration/service-management.md @@ -0,0 +1,6 @@ +# Service Management + +This topic describes how to manage your operating system and services using the systemd. + + + diff --git a/content/en/docs/Administration/setting-network-connections.md b/content/en/docs/Administration/setting-network-connections.md new file mode 100644 index 0000000000000000000000000000000000000000..b59ce3c6c4b7321c683f4db334cbac280a67fbda --- /dev/null +++ b/content/en/docs/Administration/setting-network-connections.md @@ -0,0 +1,32 @@ +# Setting Network Connections + +Run the following command to display all the available network connections: + +``` +# nmcli con show + + +NAME UUID TYPE DEVICE +enp4s0 5afce939-400e-42fd-91ee-55ff5b65deab ethernet enp4s0 +enp3s0 c88d7b69-f529-35ca-81ab-aa729ac542fd ethernet enp3s0 +virbr0 ba552da6-f014-49e3-91fa-ec9c388864fa bridge virbr0 +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>In the command output, **NAME** indicates the connection ID \(name\). + +After a network connection is added, the corresponding configuration file is generated and associated with the corresponding device. To check for available devices, run the following command: + +``` +# nmcli dev status + +DEVICE TYPE STATE CONNECTION +enp3s0 ethernet connected enp3s0 +enp4s0 ethernet connected enp4s0 +virbr0 bridge connected virbr0 +lo loopback unmanaged -- +virbr0-nic tun unmanaged -- +``` + + + diff --git a/content/en/docs/Administration/setting-the-date-and-time.md b/content/en/docs/Administration/setting-the-date-and-time.md new file mode 100644 index 0000000000000000000000000000000000000000..bdad169636929d011402aa8ed8248275247143d4 --- /dev/null +++ b/content/en/docs/Administration/setting-the-date-and-time.md @@ -0,0 +1,6 @@ +# Setting the Date and Time + +This topic describes how to set the system date, time, and time zone by using timedatectl, date, and hwclock commands. + + + diff --git a/content/en/docs/Administration/setting-the-keyboard-layout.md b/content/en/docs/Administration/setting-the-keyboard-layout.md new file mode 100644 index 0000000000000000000000000000000000000000..a1c881c734859cfeafd7568e35f7c7969a627278 --- /dev/null +++ b/content/en/docs/Administration/setting-the-keyboard-layout.md @@ -0,0 +1,55 @@ +# Setting the Keyboard Layout + +Keyboard layout settings are stored in the /etc/locale.conf file and can be modified by the localectl command. These settings are read at early boot by the systemd daemon. + +## Displaying the Current Settings + +To display the current keyboard layout settings, run the following command: + +``` +localectl status +``` + +Example command output: + +``` +$ localectl status + System Locale: LANG=zh_CN.UTF-8 + VC Keymap: cn + X11 Layout: cn +``` + +## Listing Available Keyboard Layouts + +To list all available keyboard layouts that can be configured on openEuler, run the following command: + +``` +localectl list-keymaps +``` + +For example, the command output of the Chinese keyboard layout is as follows: + +``` +$ localectl list-keymaps | grep cn +cn +``` + +## Setting the Keyboard Layout + +To set the keyboard layout, run the following command as the user **root**. In the command, _map_ indicates the keyboard layout to be set. Run the **localectl list-keymaps** command to obtain the value range. Change it based on the site requirements. + +``` +localectl set-keymap map +``` + +The keyboard layout will be equally applied to graphical user interfaces. + +Then you can verify if your setting was successful by checking the status: + +``` +$ localectl status + System Locale: LANG=zh_CN.UTF-8 + VC Keymap: cn + X11 Layout: us +``` + diff --git a/content/en/docs/Administration/setting-the-local-time.md b/content/en/docs/Administration/setting-the-local-time.md new file mode 100644 index 0000000000000000000000000000000000000000..34c452d032e2d468cf46e3db6f046a4648e4bf11 --- /dev/null +++ b/content/en/docs/Administration/setting-the-local-time.md @@ -0,0 +1,35 @@ +# Setting the Local Time + +## Overview + +In the openEuler system, vsftpd uses the Greenwich Mean Time \(GMT\) time by default, which may be different from the local time. For example, the GMT time is 8 hours later than the Beijing time. You need to change the GMT time to the local time. Otherwise, the server time and client time are inconsistent, which may cause errors during file upload and download. + +## Setting Method + +To set the vsftpd time to the local time, perform the following steps: + +1. Open the vsftpd.conf file and change the value of use\_localtime to **YES**. Run the following command: + + ``` + # vim /etc/vsftpd/vsftpd.conf + ``` + + Modify the file contents as follows: + + ``` + use_localtime=YES + ``` + +2. Restart the vsftpd service. + + ``` + # systemctl restart vsftpd + ``` + +3. Set the vsftpd service to start automatically upon power-on. + + ``` + # systemctl enable vsftpd + ``` + + diff --git a/content/en/docs/Administration/setting-the-mtu-of-an-interface-device.md b/content/en/docs/Administration/setting-the-mtu-of-an-interface-device.md new file mode 100644 index 0000000000000000000000000000000000000000..9e2e1d32cff168b711c9d488335f2910f52e7910 --- /dev/null +++ b/content/en/docs/Administration/setting-the-mtu-of-an-interface-device.md @@ -0,0 +1,54 @@ +# Setting the MTU of an Interface Device + +## Overview + +In an IPv6 scenario, the minimum MTU value of the entire routing path is used as the PMTU value of the current link. The source end determines whether to fragment packets based on the PMTU value. Other devices on the entire path do not need to fragment packets. This reduces the load of intermediate routing devices. The minimum value of IPv6 PMTU is 1280. + +## Setting the MTU of the Interface Device + +If the MTU of an interface configured with an IPv6 address is set to a value smaller than **1280** \(the minimum value of the IPv6 PMTU\), the IPv6 address of the interface will be deleted and cannot be added again. Therefore, in IPv6 scenarios, the MTU of the interface device must be greater than or equal to 1280. The details are as follows: + +``` +# ip addr show enp3s0 +3: enp3s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 52:54:00:62:xx:xx brd ff:ff:ff:ff:xx:xx + inet 10.41.125.236/16 brd 10.41.255.255 scope global noprefixroute dynamic enp3s0 + valid_lft 38663sec preferred_lft 38663sec + inet6 2001:222::2/64 scope global + valid_lft forever preferred_lft forever +``` + +``` +# ip link set dev enp3s0 mtu 1200 +# ip addr show enp3s0 +3: enp3s0: mtu 1200 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 52:54:00:62:xx:xx brd ff:ff:ff:ff:xx:xx + inet 10.41.125.236/16 brd 10.41.255.255 scope global noprefixroute dynamic enp3s0 + valid_lft 38642sec preferred_lft 38642sec +``` + +``` +# ip addr add 2001:222::2/64 dev enp3s0 +RTNETLINK answers: No buffer space available +``` + +``` +# ip link set dev enp3s0 mtu 1500 +# ip addr show enp3s0 +3: enp3s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 52:54:00:62:xx:xx brd ff:ff:ff:ff:xx:xx + inet 10.41.125.236/16 brd 10.41.255.255 scope global noprefixroute dynamic enp3s0 + valid_lft 38538sec preferred_lft 38538sec +``` + +``` +# ip addr add 2001:222::2/64 dev enp3s0 +# ip addr show enp3s0 +3: enp3s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 + link/ether 52:54:00:62:xx:xx brd ff:ff:ff:ff:xx:xx + inet 10.41.125.236/16 brd 10.41.255.255 scope global noprefixroute dynamic enp3s0 + valid_lft 38531sec preferred_lft 38531sec + inet6 2001:222::2/64 scope global + valid_lft forever preferred_lft forever +``` + diff --git a/content/en/docs/Administration/setting-the-system-locale.md b/content/en/docs/Administration/setting-the-system-locale.md new file mode 100644 index 0000000000000000000000000000000000000000..691cbe7b223d198676bd93478827a0e0a3308ebc --- /dev/null +++ b/content/en/docs/Administration/setting-the-system-locale.md @@ -0,0 +1,56 @@ +# Setting the System Locale + +System locale settings are stored in the /etc/locale.conf file and can be modified by the localectl command. These settings are read at system boot by the systemd daemon. + +## Displaying the Current Locale Status + +To display the current locale status, run the following command: + +``` +localectl status +``` + +Example command output: + +``` +$ localectl status + System Locale: LANG=zh_CN.UTF-8 + VC Keymap: cn + X11 Layout: cn +``` + +## Listing Available Locales + +To display available locales, run the following command: + +``` +localectl list-locales +``` + +You can check that by listing all Chinese locales with the following command: + +``` +$ localectl list-locales | grep zh +zh_CN.UTF-8 +``` + +## Setting the Locale + +To set the language environment, run the following command as the user **root**. In the command, _locale_ indicates the language type to be set. Run the **localectl list-locales** command to obtain the value range. Change the value based on the site requirements. + +``` +localectl set-locale LANG=locale +``` + +For example, if you want to use Simplified Chinese as the locale, run the following command as the user **root**: + +``` +# localectl set-locale LANG=zh_CN.UTF-8 +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>After the modification, log in again or run the following command to update the configuration file for the modification to take effect: +>``` +>source /etc/locale.conf +>``` + diff --git a/content/en/docs/Administration/setting-up-the-database-server.md b/content/en/docs/Administration/setting-up-the-database-server.md new file mode 100644 index 0000000000000000000000000000000000000000..2eb0755851eba46b433af4b4ba48b2e27d7c9a0e --- /dev/null +++ b/content/en/docs/Administration/setting-up-the-database-server.md @@ -0,0 +1,3 @@ +# Setting Up the Database Server + + diff --git a/content/en/docs/Administration/shutting-down-suspending-and-hibernating-the-operating-system.md b/content/en/docs/Administration/shutting-down-suspending-and-hibernating-the-operating-system.md new file mode 100644 index 0000000000000000000000000000000000000000..9e33ad830ef05d53fa39d99ed46514565afdbe04 --- /dev/null +++ b/content/en/docs/Administration/shutting-down-suspending-and-hibernating-the-operating-system.md @@ -0,0 +1,97 @@ +# Shutting Down, Suspending, and Hibernating the Operating System + +## systemctl Command + +The systemd uses the systemctl command instead of old Linux system management commands to shut down, restart, suspend, and hibernate the operating system. Although previous Linux system management commands are still available in systemd for compatibility reasons, you are advised to use **systemctl** when possible. The mapping relationship is shown in [Table 1](#en-us_topic_0151920964_t3daaaba6a03b4c36be9668efcdb61f3b). + +**Table 1** Mapping between old Linux system management commands and systemctl + + + + + + + + + + + + + + + + + + + + +

Linux Management Command

+

systemctl Command

+

Description

+

halt

+

systemctl halt

+

Shuts down the operating system.

+

poweroff

+

systemctl poweroff

+

Powers off the operating system.

+

reboot

+

systemctl reboot

+

Reboots the operating system.

+
+ +## Shutting Down the Operating System + +To shut down the system and power off the operating system, run the following command as the user **root**: + +``` +systemctl poweroff +``` + +To shut down the operating system without powering it off, run the following command as the user **root**: + +``` +systemctl halt +``` + +By default, running either of these commands causes systemd to send an informative message to all login users. To prevent systemd from sending this message, run this command with the **--no-wall** option. The command is as follows: + +``` +systemctl --no-wall poweroff +``` + +## Restarting the Operating System + +To restart the operating system, run the following command as the user **root**: + +``` +systemctl reboot +``` + +By default, running either of these commands causes systemd to send an informative message to all login users. To prevent systemd from sending this message, run this command with the **--no-wall** option. The command is as follows: + +``` +systemctl --no-wall reboot +``` + +## Suspending the Operating System + +To suspend the operating system, run the following command as the user **root**: + +``` +systemctl suspend +``` + +## Hibernating the Operating System + +To hibernate the operating system, run the following command as the user **root**: + +``` +systemctl hibernate +``` + +To suspend and hibernate the operating system, run the following command as the user **root**: + +``` +systemctl hybrid-sleep +``` + diff --git a/content/en/docs/Administration/software-description-21.md b/content/en/docs/Administration/software-description-21.md new file mode 100644 index 0000000000000000000000000000000000000000..f6709e6157dd62c4725e119ab12c5bd69825f9e5 --- /dev/null +++ b/content/en/docs/Administration/software-description-21.md @@ -0,0 +1,8 @@ +# Software Description + +MySQL is a relational database management system \(RDBMS\) developed by the Swedish company MySQL AB, which was bought by Sun Microsystems \(now Oracle\). It is one of the most popular Relational Database Management Systems \(RDBMSs\) in the industry, especially for web applications. + +A relational database stores data in different tables instead of in a large data warehouse to improve efficiency and flexibility. + +The Structured Query Language \(SQL\) used by MySQL is the most common standard language for accessing databases. MySQL uses dual-licensing distribution and is available in two editions: Community Edition and Commercial Edition. MySQL is optimal for small or medium-sized websites because of its small size, fast speed, low cost, and especially the open source code. + diff --git a/content/en/docs/Administration/software-description-6.md b/content/en/docs/Administration/software-description-6.md new file mode 100644 index 0000000000000000000000000000000000000000..43114947a6f493c81a0fd38bdf18f99334debc72 --- /dev/null +++ b/content/en/docs/Administration/software-description-6.md @@ -0,0 +1,27 @@ +# Software Description + +The MariaDB database management system is a branch of MySQL and is maintained by the open-source community. The MariaDB database management system uses the General Public License \(GPL\). MariaDB is designed to be fully compatible with MySQL, including APIs and command lines, so that it can easily replace MySQL. MariaDB also provides many new features. + +[Figure 1](#fig13492418164520) shows the MariaDB architecture. + +**Figure 1** MariaDB logical architecture +![](figures/mariadb-logical-architecture.png "mariadb-logical-architecture") + +When MariaDB receives a SQL statement, the execution process is as follows: + +1. When a client connects to MariaDB, the hostname, username, and password of the client are authenticated. The authentication function can be implemented as a plug-in. +2. If the login is successful, the client sends SQL commands to the server. The parser parses the SQL statements. +3. The server checks whether the client has the permission to obtain the required resources. +4. If the query has been stored in the query cache, the result is returned immediately. +5. The optimizer will find the fastest execution policy or plan. That is, the optimizer can determine which tables will be read, which indexes will be accessed, and which temporary tables will be used. A good policy can reduce a large number of disk access and sorting operations. +6. Storage engines read and write data and index files. Caches are used to accelerate these operations. Other features such as transactions and foreign keys are processed at the storage engine layer. + +Storage engines manage and control data at the physical layer. They manage data files, data, indexes, and caches, making data management and reading more efficient. Each table has a .frm file that contains table definitions. + +Each storage engine manages and stores data in different ways, and supports different features and performance. For example: + +- MyISAM: suitable for environments with more reads and fewer writes. It does not support transactions and supports full-text indexes. +- noDB: supports transactions, row locks, and foreign keys. +- MEMORY: stores data in the memory. +- CSV: stores data in CSV format. + diff --git a/content/en/docs/Administration/software-description.md b/content/en/docs/Administration/software-description.md new file mode 100644 index 0000000000000000000000000000000000000000..b7346bce14fba8f4d0b1650faae5083266d545f9 --- /dev/null +++ b/content/en/docs/Administration/software-description.md @@ -0,0 +1,82 @@ +# Software Description + +## Overview + +[Figure 1](#fig26022387391) shows the PostgreSQL architecture and [Table 1](#table62020913417) describes the main processes. + +**Figure 1** PostgreSQL architecture +![](figures/postgresql-architecture.png "postgresql-architecture") + +**Table 1** Main processes in PostgreSQL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Process Type

+

Process Name

+

Description

+

Main process

+

Postmaster

+

Postmaster process controls all database instances in general and is responsible for starting and stopping database instances.

+

Resident process

+

Postgres (resident process)

+

This process manages backend resident processes and is also called postmaster. By default, this process listens Unix domain sockets and the 5432 port of TCP/IP and waits for the front end to process the connections. You can change the listening port number in the postgresql.conf file of PostgreSQL.

+

Subprocess

+

Postgres (subprocess)

+

The subprocess determines whether to allow the connection according to the security policy defined by the pg_hba.conf file. According to the security policy, the subprocess rejects certain IP addresses and networks, allows only certain users to connect to the databases, or allows only certain databases to be connected.

+

Postgres receives the query from the front end, searches the database, and returns the results. Sometimes, it also updates the database. The updated data is recorded in transaction logs (WAL logs for PostgreSQL). This method is used when the system is powered off, the server breaks down, or the server is restarted. In addition, the logs can also be used for data recovery in other scenarios. In PostgreSQL 9.0 or later, WAL logs can be transferred to other PostgreSQL systems to replicate database in real-time.

+

Auxiliary processes

+

SysLogger (system log)

+

The main process starts the Syslogger auxiliary process only when logging_collection in the Postgres.conf file is set to on.

+

BgWriter (background write)

+

This process writes dirty pages from the shared memory to the drive. The purpose is to improve the performance of inserting, updating, and deleting data.

+

WALWriter (write-ahead log)

+

This process writes modification operations into drives before data is modified so that the data does not need to be persisted into files in subsequent real-time data updates.

+

PgArch (archive)

+

write-ahead logs (WALs) are recycled. The PgArch process backs up WALs before archiving them. After the entire database is backed up, the Point in Time Recovery (PITR) technology can be used to archive WALs. The database can be restored to any point after the full backup by using the full backup data and the subsequently archived WALs.

+

AutoVacuum (automatic cleanup)

+

In the PostgreSQL database, after a DELETE operation is performed on a table, old data is not immediately deleted. When new data is added, the system creates a data row instead of overwriting the old data. The old data is only marked as deleted and will be cleared only when no other concurrent transactions are reading the data. In this case, the data is cleared by the AutoVacuum process.

+

PgStat (statistics collection)

+

This process collects data statistics. It is used to estimate the cost during query optimization, including the number of insertions update, and deletion operations performed on a table or index, the number of drive block read and write operations, and the number of row read operations. pg_statistic stores the information collected by the PgStat.

+

CheckPoint (checkpoint)

+

A checkpoint is a transaction sequence point set by the system. It is used to ensure that log information before a checkpoint written into the drives.

+
+ diff --git a/content/en/docs/Administration/starting-nginx.md b/content/en/docs/Administration/starting-nginx.md new file mode 100644 index 0000000000000000000000000000000000000000..7e2e1d50a192ca19bae6215a415f9175374d932a --- /dev/null +++ b/content/en/docs/Administration/starting-nginx.md @@ -0,0 +1,40 @@ +# Starting Nginx + +1. Run the systemd command to start the Nginx service. + + ``` + systemctl enable nginx + systemctl start nginx + ``` + +2. You can run the following command to check whether the Nginx is started successfully: + + ``` + systemctl status nginx + ``` + + - [Figure 1](#en-us_topic_0151920971_fd25e3f1d664b4087ae26631719990a71) indicates that the Nginx service is started successfully. + + **Figure 1** The Nginx service is successfully started. + ![](figures/the-nginx-service-is-successfully-started.png "the-nginx-service-is-successfully-started") + + - If the Nginx service fails to be started, view the error information. + + ``` + systemctl status nginx.service --full + ``` + + **Figure 2** Nginx startup failure + ![](figures/nginx-startup-failure.png "nginx-startup-failure") + + As shown in [Figure 2](#en-us_topic_0151920971_f1f9f3d086e454b9cba29a7cae96a4c54), the Nginx service fails to be created because the /var/spool/nginx/tmp/client\_body directory fails to be created. You need to manually create the directory. Similar problems are solved as follows: + + ``` + mkdir -p /var/spool/nginx/tmp/client_body + mkdir -p /var/spool/nginx/tmp/proxy + mkdir -p /var/spool/nginx/tmp/fastcgi + mkdir -p /usr/share/nginx/uwsgi_temp + mkdir -p /usr/share/nginx/scgi_temp + ``` + + diff --git a/content/en/docs/Administration/starting-the-database.md b/content/en/docs/Administration/starting-the-database.md new file mode 100644 index 0000000000000000000000000000000000000000..57115a103528eb2122909817b818f72d8c1282ed --- /dev/null +++ b/content/en/docs/Administration/starting-the-database.md @@ -0,0 +1,19 @@ +# Starting the Database + +1. Enable the PostgreSQL database. + + ``` + $/usr/bin/pg_ctl -D /data/ -l /data/logfile start + ``` + +2. Check whether the PostgreSQL database process is started properly. + + ``` + $ps -ef | grep postgres + ``` + + If the following information is displayed, the PostgreSQL processes have been started. + + ![](figures/postgres.png) + + diff --git a/content/en/docs/Administration/stateful-ipv6-address-autoconfiguration.md b/content/en/docs/Administration/stateful-ipv6-address-autoconfiguration.md new file mode 100644 index 0000000000000000000000000000000000000000..54692a4bfdb5ae2951070604f7d35bb5fe4ee5f9 --- /dev/null +++ b/content/en/docs/Administration/stateful-ipv6-address-autoconfiguration.md @@ -0,0 +1,78 @@ +# Stateful IPv6 Address Autoconfiguration + +## Overview + +Both IPv6 and IPv4 addresses can be obtained through DHCP. There are configuration methods for IPv6 address: stateless autoconfiguration and stateful autoconfiguration. + +- Stateless autoconfiguration + + The DHCP server is not required for management. The device obtains the network prefix according to the router advertisement \(RA\), or the prefix of a link-local address is fixed to fe80::. The interface ID is automatically obtained based on the value of IPV6\_ADDR\_GEN\_MODE in the ifcfg file. + + 1. If the value of IPv6\_ADDR\_GEN\_MODE is stable-privacy, the device determines a random interface ID based on the device and network environment. + 2. If the value of IPv6\_ADDR\_GEN\_MODE is EUI64, the device determines the interface ID based on the device MAC address. + +- Stateful autoconfiguration: The DHCP server manages and leases IPv6 addresses from the DHCPv6 server base on the DHCPv6 protocol. + + In stateful autoconfiguration, the DHCPv6 server can classify clients based on the vendor class configured on the clients and assign IPv6 addresses in different address segments to different types of clients. In IPv4 scenarios, the client can use the -V option of the dhclient command to set the vendor-class-identifier field. The DHCP server classifies clients based on the vendor-class-identifier field in the configuration file. In IPv6 scenarios, if the same method is used to classify clients, the classification does not take effect. + + ``` + dhclient -6 -V + ``` + + This is because DHCPv6 differs greatly from DHCP. The vendor-class-option in DHCPv6 replaces the vendor-class-identifier in DHCP. However, the -V option of dhclient cannot be set to vendor-class-option. + + +## Setting the vendor class for dhclient in Stateful IPv6 Address Autoconfiguration + +- On the client, add the setting of vendor class by using the configuration file. + + Client configuration file \(/etc/dhcp/dhclient6.conf\): The file location can be customized. You need to specify the configuration file using the dhclient -cf option. + + ``` + option dhcp6.vendor-class code 16 = {integer 32, integer 16, string}; + interface "enp3s0" { + send dhcp6.vendor-class ; + } + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- : a 32-digit integer, indicating the enterprise ID. The enterprise is registered through the IANA. + >- : a 16-digit integer, indicating the length of the vendor class string. + >- : character string of the vendor class to be set, for example, HWHW. + + On the client: + + ``` + dhclient -6 -cf /etc/dhcp/dhclient6.conf + ``` + + +- The DHCPv6 server configuration file \(/etc/dhcp/dhcpd6.conf\) needs to be specified by the dhcpd -cf option. + + ``` + option dhcp6.vendor-class code 16 = {integer 32, integer 16, string}; + subnet6 fc00:4:12:ffff::/64 { + class "hw" { + match if substring ( option dhcp6.vendor-class, 6, 10 ) = "HWHW"; + } + pool6 { + allow members of "hw"; + range6 fc00:4:12:ffff::ff10 fc00:4:12:ffff::ff20; + } + pool6 { + allow unknown clients; + range6 fc00:4:12:ffff::100 fc00:4:12:ffff::120; + } + } + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >In substring \(option dhcp6.vendor-class, 6, 10\), the start position of the substring is 6, because the substring contains four bytes of and two bytes of . The end position of the substring is 6+. In this example, the vendor class string is HWHW, and the length of the string is 4. Therefore, the end position of the substring is 6 + 4 = 10. You can specify and as required. + + On the server: + + ``` + dhcpd -6 -cf /etc/dhcp/dhcpd6.conf + ``` + + diff --git a/content/en/docs/Administration/stopping-the-database.md b/content/en/docs/Administration/stopping-the-database.md new file mode 100644 index 0000000000000000000000000000000000000000..8f86c16f2b35dc469939d8e00343f9483bb25f8b --- /dev/null +++ b/content/en/docs/Administration/stopping-the-database.md @@ -0,0 +1,9 @@ +# Stopping the Database + +1. Stop the PostgreSQL database. + + ``` + $/usr/bin/pg_ctl -D /data/ -l /data/logfile stop + ``` + + diff --git a/content/en/docs/Administration/suspending-resuming-a-process.md b/content/en/docs/Administration/suspending-resuming-a-process.md new file mode 100644 index 0000000000000000000000000000000000000000..2cd7317ae9ca2660b81aa442c4ab5e555980827e --- /dev/null +++ b/content/en/docs/Administration/suspending-resuming-a-process.md @@ -0,0 +1,6 @@ +# Suspending/Resuming a Process + +A process can be suspended or resumed by job control, and the process will continue to work from the suspended point after being resumed. To suspend a foreground process, press Ctrl+Z. After you press Ctrl+Z, the cat command is suspended together with the foreground process you wish to suspend. You can use the jobs command instead to display a list of shell jobs, including their job names, IDs, and status. + +To resume a process in foreground or background, run the fg or bg command, respectively. The process then starts from where it paused previously. + diff --git a/content/en/docs/Administration/taking-a-long-time-to-add-or-delete-an-ipv6-address-for-a-bond-interface-with-multiple-ipv6-addresse.md b/content/en/docs/Administration/taking-a-long-time-to-add-or-delete-an-ipv6-address-for-a-bond-interface-with-multiple-ipv6-addresse.md new file mode 100644 index 0000000000000000000000000000000000000000..49ce0fcc5da0a3ec7e31d7ade856ab8a29324917 --- /dev/null +++ b/content/en/docs/Administration/taking-a-long-time-to-add-or-delete-an-ipv6-address-for-a-bond-interface-with-multiple-ipv6-addresse.md @@ -0,0 +1,20 @@ +# Taking a Long Time to Add or Delete an IPv6 Address for a Bond Interface with Multiple IPv6 Addresses + +## Symptom + +When users run the following command to add or delete \(including flush\) an IPv6 address, the waiting time increases linearly along with the number of IPv6 addresses configured on a bond interface. **X** is the least significant 16 bits that dynamically change. For example, it takes about five minutes to add 3000 IPv6 address to or delete them from a bond interface that already has four physical NICs using a single thread, while for a common physical NIC, it takes less than 10 seconds. + +``` +ip a add/del 192:168::18:X/64 dev DEVICE +``` + +## Possible Cause + +When an IPv6 address is added to a bond interface, the IPv6 multicast address is generated and synchronized to all physical NICs. The time required increases with the number of IPv6 addresses. As a result, it takes a too long time. + +## Solution + +The IPv6 multicast address is generated by combining the least significant 24 bits of the IPv6 address and 33-33-ff. If there are too many multicast addresses, it takes a long time to add or delete the address. If there are a few multicast addresses, the time required is not affected. + +It is recommended that you set the least significant 24 bits of the IPv6 address to be the same as the most significant 24 bits of the IPv6 address. In this way, a single NIC can communicate with external devices using only one IP address in a network segment. + diff --git a/content/en/docs/Administration/terms-of-use.md b/content/en/docs/Administration/terms-of-use.md new file mode 100644 index 0000000000000000000000000000000000000000..c5aebb396f93ec21e0df31a26bfa04fb2ac3669c --- /dev/null +++ b/content/en/docs/Administration/terms-of-use.md @@ -0,0 +1,14 @@ +# Terms of Use + +**Copyright © Huawei Technologies Co., Ltd. 2020. All rights reserved.** + +Your replication, use, modification, and distribution of this document are governed by the Creative Commons License Attribution-ShareAlike 4.0 International Public License \(CC BY-SA 4.0\). You can visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) to view a human-readable summary of \(and not a substitute for\) CC BY-SA 4.0. For the complete CC BY-SA 4.0, visit [https://creativecommons.org/licenses/by-sa/4.0/legalcode](https://creativecommons.org/licenses/by-sa/4.0/legalcode). + +**Trademarks and Permissions** + +openEuler is a trademark or registered trademark of Huawei Technologies Co., Ltd. All other trademarks and registered trademarks mentioned in this document are the property of their respective holders. + +**Disclaimer** + +This document is used only as a guide. Unless otherwise specified by applicable laws or agreed by both parties in written form, all statements, information, and recommendations in this document are provided "AS IS" without warranties, guarantees or representations of any kind, including but not limited to non-infringement, timeliness, and specific purposes. + diff --git a/content/en/docs/Administration/testing-the-openssl-accelerator-engine.md b/content/en/docs/Administration/testing-the-openssl-accelerator-engine.md new file mode 100644 index 0000000000000000000000000000000000000000..f49a6c54dffff6fa7c468709578b5f33f402c41c --- /dev/null +++ b/content/en/docs/Administration/testing-the-openssl-accelerator-engine.md @@ -0,0 +1,133 @@ +# Testing the OpenSSL Accelerator Engine + +You can run the following commands to test some accelerator functions. + +- Use the OpenSSL software algorithm to test the RSA performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed rsa2048 + ... + sign verify sign/s verify/s + rsa 2048 bits 0.001384s 0.000035s 724.1 28365.8. + ``` + +- Use the KAE to test the RSA performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -engine kae rsa2048 + .... + sign verify sign/s verify/s + rsa 2048 bits 0.000355s 0.000022s 2819.0 45478.4 + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>\#After KAE acceleration, the signature performance is improved from 724.1 sign/s to 2819 sign/s. + +- Use the OpenSSL software algorithm to test the asynchronous RSA performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -async_jobs 36 rsa2048 + .... + sign verify sign/s verify/s + rsa 2048 bits 0.001318s 0.000032s 735.7 28555 + ``` + +- Use the KAE to test the asynchronous RSA performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -engine kae -elapsed -async_jobs 36 rsa2048 + .... + sign verify sign/s verify/s + rsa 2048 bits 0.000018s 0.000009s 54384.1 105317.0 + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>\#After KAE acceleration, the asynchronous RSA signature performance is improved from 735.7 sign/s to 54384.1 sign/s. + +- Use the OpenSSL software algorithm to test the performance of the SM4 CBC mode. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -evp sm4-cbc + You have chosen to measure elapsed time instead of user CPU time. + .... + Doing sm4-cbc for 3s on 10240 size blocks: 2196 sm4-cbc's in 3.00s .... + type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes + sm4-cbc 82312.53k 85196.80k 85284.18k 85000.85k 85284.18k 85261.26k + ``` + +- Use the KAE to test the SM4 CBC mode performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -engine kae -evp sm4-cbc + engine "kae" set. + You have chosen to measure elapsed time instead of user CPU time. + ... + Doing sm4-cbc for 3s on 1048576 size blocks: 11409 sm4-cbc's in 3.00s + ... + type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes + sm4-cbc 383317.33k 389427.20k 395313.15k 392954.73k 394264.58k 394264.58k + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>After KAE acceleration, the SM4 CBC mode performance is improved from 82312.53 kbit/s to 383317.33 kbit/s when the input data block size is 8 MB. + +- Use the OpenSSL software algorithm to test the SM3 mode performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -evp sm3 + You have chosen to measure elapsed time instead of user CPU time. + Doing sm3 for 3s on 102400 size blocks: 1536 sm3's in 3.00s + .... + type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes + sm3 50568.53k 52428.80k 52428.80k 52428.80k 52428.80k 52428.80k + ``` + +- Use the KAE to test the SM3 mode performance. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -engine kae -evp sm3 + engine "kae" set. + You have chosen to measure elapsed time instead of user CPU time. + Doing sm3 for 3s on 102400 size blocks: 19540 sm3's in 3.00s + .... + type 51200 bytes 102400 bytes 1048576 bytes 2097152 bytes 4194304 bytes 8388608 bytes + sm3 648243.20k 666965.33k 677030.57k 678778.20k 676681.05k 668292.44k + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>After KAE acceleration, the SM3 algorithm performance is improved from 52428.80 kbit/s to 668292.44 kbit/s when the input data block size is 8 MB. + +- Use the OpenSSL software algorithm to test the asynchronous performance of the AES algorithm in CBC mode. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -evp aes-128-cbc -async_jobs 4 + You have chosen to measure elapsed time instead of user CPU time. + Doing aes-128-cbc for 3s on 51200 size blocks: 65773 aes-128-cbc's in 3.00s + Doing aes-128-cbc for 3s on 102400 size blocks: 32910 aes-128-cbc's in 3.00s + .... + type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes + aes-128-cbc 1122525.87k 1123328.00k 1120578.22k 1121277.27k 1119879.17k 1115684.86k + ``` + +- Use the KEA engine to test the asynchronous performance of the AES algorithm in CBC mode. + + ``` + linux-rmw4:/usr/local/bin # ./openssl speed -elapsed -evp aes-128-cbc -async_jobs 4 -engine kae + engine "kae" set. + You have chosen to measure elapsed time instead of user CPU time. + Doing aes-128-cbc for 3s on 51200 size blocks: 219553 aes-128-cbc's in 3.00s + Doing aes-128-cbc for 3s on 102400 size blocks: 117093 aes-128-cbc's in 3.00s + .... + type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes + aes-128-cbc 3747037.87k 3996774.40k 1189085.18k 1196774.74k 1196979.11k 1199570.94k + ``` + + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- The AES algorithm supports only asynchronous usage when the data length is 256 KB or less. +>- After KAE acceleration, the AES algorithm performance is improved from 1123328.00 kbit/s to 3996774.40 kbit/s when the input data block size is 100 KB. + diff --git a/content/en/docs/Administration/the-ipv6-address-is-lost-after-the-nic-is-down.md b/content/en/docs/Administration/the-ipv6-address-is-lost-after-the-nic-is-down.md new file mode 100644 index 0000000000000000000000000000000000000000..01f876a242119cc6dc446ef4da3ca3c46e7c023b --- /dev/null +++ b/content/en/docs/Administration/the-ipv6-address-is-lost-after-the-nic-is-down.md @@ -0,0 +1,10 @@ +# The IPv6 Address Is Lost After the NIC Is Down. + +## Symptom + +Run the ip link down+up NIC or ifconfig down+up NIC command to disable the NIC and then enable it to go online. Check the IP address configured on the NIC. It is found that the IPv4 address is not lost but the configured IPv6 address is lost. + +## Possible Cause + +According to the processing logic in the kernel, if the NIC is set to the down state, all IPv4 and IPv6 addresses will be cleared. After the NIC is set to the up state, the IPv4 address is automatically restored, and the automatically configured IPv6 link-local address on the NIC is also restored. However, other IPv6 addresses are lost by default. To retain these IPv6 addresses, run the **sysctl -w net.ipv6.conf.<_NIC name_\>.keep\_addr\_on\_down=1** command. + diff --git a/content/en/docs/Administration/the-iscsi-initiator-utils-does-not-support-the-fe80-ipv6-address.md b/content/en/docs/Administration/the-iscsi-initiator-utils-does-not-support-the-fe80-ipv6-address.md new file mode 100644 index 0000000000000000000000000000000000000000..850b2696b1b9c39f7f435c4d42402550f1c2b7ba --- /dev/null +++ b/content/en/docs/Administration/the-iscsi-initiator-utils-does-not-support-the-fe80-ipv6-address.md @@ -0,0 +1,14 @@ +# The iscsi-initiator-utils Does Not Support the fe80 IPv6 Address. + +## Symptom + +When a client uses an IPv6 address to log in to the iSCSI server, run the iscsiadm -m node -p ipv6address -l command. If the global address is used, replace ipv6address in the command example with the global address. However, the link-local address \(IPv6 address starting with fe80\) cannot be used because the current mechanism of iscsi-initiator-utils does not support the link-local address to log in to the iSCSI server. + +## Possible Cause + +If you log in to the system using the iscsiadm -m node -p fe80::xxxx -l format, a login timeout error is returned. This is because you must specify an interface when using the link-local address. Otherwise, the iscsi\_io\_tcp\_connect function fails to invoke the connect function, and the standard error code 22 is generated. + +If you use the iscsiadm -m node -p fe80::xxxx%enp3s0 -l format for login, the iscsi\_addr\_match function will compare the address fe80::xxxx%enp3s0 with the address fe80::xxxx in the node information returned by the server. The comparison result does not match, causing the login failure. + +Therefore, **the current mechanism of iscsi-initiator-utils does not support login to the iSCSI server using a link-local address.** + diff --git a/content/en/docs/Administration/troubleshooting.md b/content/en/docs/Administration/troubleshooting.md new file mode 100644 index 0000000000000000000000000000000000000000..bc2c1ee9bab3b24ac43ac72e59b97d1787068224 --- /dev/null +++ b/content/en/docs/Administration/troubleshooting.md @@ -0,0 +1,4 @@ +# Troubleshooting + + + diff --git a/content/en/docs/Administration/uninstalling-mariadb.md b/content/en/docs/Administration/uninstalling-mariadb.md new file mode 100644 index 0000000000000000000000000000000000000000..07c69a5145df49e4eb39eb6c8c6c3d8266a24106 --- /dev/null +++ b/content/en/docs/Administration/uninstalling-mariadb.md @@ -0,0 +1,16 @@ +# Uninstalling MariaDB + +1. Stop the database process. + + ``` + #ps -ef | grep mysql + #kill -9 PID + ``` + +2. Run the **dnf remove mariadb-server** command to uninstall MariaDB. + + ``` + #dnf remove mariadb-server + ``` + + diff --git a/content/en/docs/Administration/uninstalling-mysql.md b/content/en/docs/Administration/uninstalling-mysql.md new file mode 100644 index 0000000000000000000000000000000000000000..df6abaee619414d174c33af37512f2139a8a30bb --- /dev/null +++ b/content/en/docs/Administration/uninstalling-mysql.md @@ -0,0 +1,16 @@ +# Uninstalling MySQL + +1. Stop the database process. + + ``` + #ps -ef | grep mysql + #kill -9 PID + ``` + +2. Run the **dnf remove mysql** command to uninstall MySQL. + + ``` + #dnf remove mysql + ``` + + diff --git a/content/en/docs/Administration/uninstalling-postgresql.md b/content/en/docs/Administration/uninstalling-postgresql.md new file mode 100644 index 0000000000000000000000000000000000000000..10666ed813a8cc85fbcd204e6534246d3049afbd --- /dev/null +++ b/content/en/docs/Administration/uninstalling-postgresql.md @@ -0,0 +1,15 @@ +# Uninstalling PostgreSQL + +1. Stop the database as the postgres user. + + ``` + $/usr/bin/pg_ctl -D /data/ -l /data/logfile stop + ``` + +2. Run the **dnf remove postgresql-server** command as the user **root** to uninstall the PostgreSQL database. + + ``` + #dnf remove postgresql-server + ``` + + diff --git a/content/en/docs/Administration/uninstalling-the-accelerator-software-packages.md b/content/en/docs/Administration/uninstalling-the-accelerator-software-packages.md new file mode 100644 index 0000000000000000000000000000000000000000..5cf8e1e567f1698604243664ff53ea909dc05ee2 --- /dev/null +++ b/content/en/docs/Administration/uninstalling-the-accelerator-software-packages.md @@ -0,0 +1,36 @@ +# Uninstalling the Accelerator Software Packages + +## Scenario + +You do not need the accelerator engine software or you want to install new accelerator engine software. + +## Procedure + +1. Use SSH to log in to the Linux CLI as user **root**. +2. Restart the system or run commands to manually uninstall the accelerator drivers loaded to the kernel, and check whether the drivers are successfully uninstalled. + + ``` + # lsmod | grep uacce + uacce 36864 3 hisi_sec2,hisi_qm,hisi_hpre + # rmmod hisi_hpre + # rmmod hisi_sec2 + # rmmod hisi_qm + # rmmod uacce + # lsmod | grep uacce + # + ``` + +3. Run the **rpm -e** command to uninstall the accelerator engine software packages. The following is an example: + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Due to the dependency relationships, the **libkae** package must be uninstalled before the **libwd** package. + + ![](figures/en-us_image_0231143196.png) + + ![](figures/en-us_image_0231143197.png) + +4. Run the **rpm -qa |grep** command to check whether the uninstallation is successful. + + ![](figures/en-us_image_0231143198.png) + + diff --git a/content/en/docs/Administration/updating-the-repo-source.md b/content/en/docs/Administration/updating-the-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..9c21383ba5c3206953bea74dc5a9bedc16f4a7e0 --- /dev/null +++ b/content/en/docs/Administration/updating-the-repo-source.md @@ -0,0 +1,15 @@ +# Updating the Repo Source + +You can update the repo source in either of the following ways: + +- Use the ISO file of the new version to update the existing repo source. The method is the same as that for creating a repo source. That is, mount the image or copy the image to the local directory. +- Add rpm packages to the Packages directory of the repo source and update the repo source. You can run the createrepo command to update the repo source. + + ``` + dnf install createrepo + createrepo --update --workers=10 /srv/repo + ``` + + In this command, --update indicates the update, and --workers indicates the number of threads, which can be customized. + + diff --git a/content/en/docs/Administration/upgrading-the-accelerator-software-packages.md b/content/en/docs/Administration/upgrading-the-accelerator-software-packages.md new file mode 100644 index 0000000000000000000000000000000000000000..37bdce37b29120e816b843fee1bb4065315a37e6 --- /dev/null +++ b/content/en/docs/Administration/upgrading-the-accelerator-software-packages.md @@ -0,0 +1,46 @@ +# Upgrading the Accelerator Software Packages + +## Scenario + +You can run the **rpm -Uvh** command to upgrade the accelerator software. + +## Procedure + +1. Download the latest accelerator engine software packages from the openEuler community. +2. Use SSH to log in to the Linux CLI as user **root**. +3. Save the downloaded software packages to a directory. +4. In the directory, run the **rpm -Uvh** command to upgrade the accelerator driver package and engine library package. The following is an example: + + The command and output are as follows: + + ![](figures/en-us_image_0231143189.png) + + ![](figures/en-us_image_0231143191.png) + +5. Run the **rpm -qa** command to check whether the upgrade is successful. Ensure that the queried version is the latest version. + + ![](figures/en-us_image_0231143193.png) + + ![](figures/en-us_image_0231143195.png) + +6. Restart the system or run the following commands to manually uninstall the drivers of the earlier version, load the drivers of the latest version, and check whether the new drivers are successfully loaded. + + ``` + Uninstall the existing drivers. + # lsmod | grep uacce + uacce 262144 3 hisi_hpre,hisi_sec2,hisi_qm + # + # rmmod hisi_hpre + # rmmod hisi_sec2 + # rmmod hisi_qm + # rmmod uacce + # lsmod | grep uacce + # + Load the new drivers.# modprobe uacce + # modprobe hisi_qm# modprobe hisi_sec2 #Loads the hisi_sec2 driver to the kernel based on the configuration file in /etc/modprobe.d/hisi_sec2.conf. + # modprobe hisi_hpre #Loads the hisi_hpre driver to the kernel based on the configuration file in /etc/modprobe.d/hisi_hpre.conf. + # lsmod | grep uacce + uacce 36864 3 hisi_sec2,hisi_qm,hisi_hpre + ``` + + diff --git a/content/en/docs/Administration/user-management.md b/content/en/docs/Administration/user-management.md new file mode 100644 index 0000000000000000000000000000000000000000..ca131d480fac68e89734ebe4b1371a107fd8eec9 --- /dev/null +++ b/content/en/docs/Administration/user-management.md @@ -0,0 +1,8 @@ +# User Management + +In Linux, each common user has an account, including the user name, password, and home directory. There are also special users created for specific purposes, and the most important special user is the admin account whose default user name is root. In addition, Linux provides user groups so that each user belongs to at least one group, facilitating permission management. + +The control of users and user groups is a core element of openEuler security management. This topic introduces the user and group management commands and explains how to assign privileges to common users in graphical user interface and on command lines. + + + diff --git a/content/en/docs/Administration/using-commands.md b/content/en/docs/Administration/using-commands.md new file mode 100644 index 0000000000000000000000000000000000000000..17bcdfc5dd328d7995d94346aa76b001821c3367 --- /dev/null +++ b/content/en/docs/Administration/using-commands.md @@ -0,0 +1,3 @@ +# Using Commands + + diff --git a/content/en/docs/Administration/using-the-at-command-to-run-processes-at-the-scheduled-time.md b/content/en/docs/Administration/using-the-at-command-to-run-processes-at-the-scheduled-time.md new file mode 100644 index 0000000000000000000000000000000000000000..bc228c142a2ba36c2ab517e6f8588b1ef339db28 --- /dev/null +++ b/content/en/docs/Administration/using-the-at-command-to-run-processes-at-the-scheduled-time.md @@ -0,0 +1,56 @@ +# Using the at Command to Run Processes at the Scheduled Time + +## Function + +The at command is used to run a batch of processes \(a series of commands\) at the scheduled time or time+date. + +Syntax of the at command: + +``` +at [-V] [-q queue] [-f filename] [-mldbv] time +at -c job [job...] +``` + +## Time Format + +The scheduled time can be in any of the following formats: + +- hh:mm today: If hh:mm is earlier than the current time, the selected commands will be run at hh:mm the next day. +- midnight, noon, teatime \(typically at 16:00\), or the like +- 12-hour format followed by am or pm +- Time + date \(month day, mm/dd/yy, or dd.mm.yy\) The scheduled date must follow the scheduled time. + +The scheduled time can also be relative time, which is suitable for scheduling commands that are going to be executed soon. For example, now+_N_ minutes, hours, days, or weeks. _N_ is time, which may be a few days or hours. Further, the scheduled time can be words like today, tomorrow, or the like. Here are some examples of the scheduled time. + +Imagine the current time is 12:30 June 7 2019 and you want to run a command at 4:30 pm. The scheduled time in the at command can be any of the following: + +``` + at 4:30pm + at 16:30 + at 16:30 today + at now+4 hours + at now+ 240 minutes + at 16:30 7.6.19 + at 16:30 6/7/19 + at 16:30 Jun 7 +``` + +Although you can select any of the preceding examples according to your preference, absolute time in 24-hour format, such as at 16:30 6/7/19, is recommended. + +## Privileges + +Only commands from standard input or from the file specified by the -f option can be scheduled by the at command to be executed. If the su command is executed to switch the operating system from user A to user B and then the at command is executed at the shell prompt of user B, the at command execution result is sent to user B. whereas emails \(if any\) are sent to user A. + +For example, to run the slocate -u command at 10 am on June 8, 2019, perform the following steps: + +``` +# at 10:00 6/8/19 +at> slocate -u +at> +[1]+ Stopped at 10:00 6/8/19 +``` + +When the at\> prompt appears, type **slocate -u** and press Enter. Repeat substep 2 to add other commands that need to be run at 10 am on 8 June 2015. Then, press Ctrl+d to exit the at command. + +The administrator is authorized to run the at command unconditionally. For other users, their privilege to run the at command is defined in /etc/at.allow and /etc/at.deny files. + diff --git a/content/en/docs/Administration/using-the-cron-service-to-run-commands-periodically.md b/content/en/docs/Administration/using-the-cron-service-to-run-commands-periodically.md new file mode 100644 index 0000000000000000000000000000000000000000..bedd15bcfd4a63675a23f45ecb2d3e2edb1bc7c7 --- /dev/null +++ b/content/en/docs/Administration/using-the-cron-service-to-run-commands-periodically.md @@ -0,0 +1,125 @@ +# Using the cron Service to Run Commands Periodically + +The at command can run commands at the scheduled time but only once. It means that after the running command is specified, the system completes the task at the specified time. If you need to run commands repeatedly, the cron service is a good helper. + +## Cron Service + +The **cron** service searches the **/var/spool/cron** directory for **crontab** files named by the user name in the /etc/passwd file and loads the search results into memory to execute the commands in the **crontab** files. Each user has a crontab file, with the file name being the same as the user name. For example, the **crontab** file of the **globus** user is **/var/spool/cron/globus**. + +The **cron** service also reads the cron configuration file **/etc/crontab** every minute, which can be edited in various formats. If no crontab files are found, the **cron** service enters sleep mode and releases system resources. One minute later, the **cron** service is awoken to repeat the search work and command execution. Therefore, the background process occupies few resources and is wakened up every minute to check whether there are commands to be executed. + +Command execution results are then mailed to users specified by the environment variable MAILTO in the /etc/crontab file. The **cron** service, once started, does not require manual intervention except when you need to replace periodic commands with new ones. + +## crontab Command + +The crontab command is used to install, edit, remove, list, and perform other operations on crontab files. Each user has its own crontab files and can add commands to be executed to the files. + +Here are common crontab command options: + +- crontab -u //Set the **cron** service of a user. This option is required only when the **crontab** command is run by the **root** user. +- crontab -l //List details of the **cron** service of a user. +- crontab -r //Remove the **cron** service of a user. +- crontab -e //Edit the **cron** service of a user. + +For example, to list cron service settings of the user **root**, run the following command: + +``` +crontab -u root -l +``` + +## crontab Files + +Enter the commands to be executed and time in crontab files. Each line in the files contains six fields. The first five fields are the time when the specified command is executed, and the last field is the command to be executed. Fields are separated by spaces or tabs. The format is as follows: + +``` +minute hour day-of-month month-of-year day-of-week commands +``` + +Each field is described as follows: + +**Table 1** Parameter description + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

minute

+

The minute of the hour at which commands will be executed. Value range: 0–59.

+

hour

+

The hour of the day at which periodic commands will be executed. Value range: 0–23.

+

day-of-month

+

The day of month at which periodic commands will be executed. Value range: 1–31.

+

month-of-year

+

The month of year at which periodic commands will be executed. Value range: 1–12.

+

day-of-week

+

The day of week at which periodic commands will be executed. Value range: 0–6.

+

commands

+

Periodic commands.

+
+ +The fields cannot be left unspecified. In addition to numerical values, the following special symbols are allowed: Asterisk \(\*\): a wildcard value. Forward slash \(/\): followed by a numeral N to indicate that commands will be executed at a regular interval of N. Hyphen \(-\): used with a range.Comma \(,\): used to separate discrete numbers. A complete path to the commands shall be provided. + +For example, to allow the operating system to add sleepy to the /tmp/test.txt file every two hours from 18 pm to 22 pm, add the following line in a crontab file: + +``` +* 18-22/2 * * * echo "sleepy" >> /tmp/test.txt +``` + +Each time the cron service settings of a user are edited, the cron service generates in the /var/spool/cron directory a crontab file named after the user. The crontab file can be edited only using the crontab -e command. Alternatively, the user can create a file and run the crontab _filename_ command to import its cron settings into the new file. + +For example, to create a crontab file for the globus user, perform the following steps: The procedure is as follows: + +1. Create a file using any text editor. Add the commands that need to be executed periodically and the command execution interval to the new file. In this example, the new file is **\~/globus.cron**. +2. Run the following command to install the new file as the crontab file of the globus user: run the following command: + + ``` + crontab globus. ~/globus.cron + ``` + + +After the new file is installed, you will find a file named globus in the **/var/spool/cron** directory. This file is the required crontab file. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Do not restart the cron service after a crontab file is modified, because the cron service, once started, reads the crontab file every minute to check whether there are commands that need to be executed periodically. You do not need to restart the **cron** service after modifying the **crontab** file. + +## /etc/crontab File + +The **cron** service reads all files in the **/var/spool/cron** directory and the **crontab** file in the **/etc/crontab** directory every minute. Therefore, you can use the **cron** service by configuring the **crontab** file. A crontab file contains user-specific commands, whereas the **/etc/crontab** file contains system-wide commands. Example /etc/crontab file + +``` +SHELL=/bin/sh +PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin +MAILTO=root //If an error occurs or data is output, the data is sent to the account by email. +HOME=/ +# run-parts +01 * * * * root run-parts /etc/cron.hourly //Run scripts in the /etc/cron.hourly directory once an hour. +02 4 * * * root run-parts /etc/cron.daily //Run scripts in the /etc/cron.daily directory once a day. +22 4 * * 0 root run-parts /etc/cron.weekly //Run scripts in the /etc/cron.weekly directory once a week. +42 4 1 * * root run-parts /etc/cron.monthly //Run scripts in the /etc/cron.monthly directory once a month. +``` + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the **run-parts** parameter is deleted, a script name instead of a directory name is executed. + diff --git a/content/en/docs/Administration/using-the-date-command.md b/content/en/docs/Administration/using-the-date-command.md new file mode 100644 index 0000000000000000000000000000000000000000..bbfbe7e358aff060859bb26b34d689bc583f98bf --- /dev/null +++ b/content/en/docs/Administration/using-the-date-command.md @@ -0,0 +1,137 @@ +# Using the date Command + +## Displaying the Current Date and Time + +To display the current date and time, run the following command: + +``` +date +``` + +By default, the **date** command displays the local time. To display the time in Coordinated Universal Time \(UTC\), run the command with the --utc or -u command line option: + +``` +date --utc +``` + +You can also customize the format of the displayed information by providing the + "format" option on the command line: + +``` +date +"format" +``` + +**Table 1** Formatting options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Format Option

+

Description

+

%H

+

The hour in the HH format (for example, 17)

+

%M

+

The minute in the MM format (for example, 37)

+

%S

+

The second in the SS format (for example, 25)

+

%d

+

The day of the month in the DD format (for example, 15)

+

%m

+

The month in the MM format (for example, 07)

+

%Y

+

The year in the YYYY format (for example, 2019)

+

%Z

+

The time zone abbreviation (for example, CEST)

+

%F

+

The full date in the YYYY-MM-DD format (for example, 2019-7-15). This option is equal to %Y-%m-%d.

+

%T

+

The full time in the HH:MM:SS format (for example, 18:30:25). This option is equal to %H:%M:%S.

+
+ +Example commands and outputs: + +- To display the current date and time: + + ``` + $ date + Sat Aug 17 17:26:34 CST 2019 + ``` + +- To display the current date and time in UTC: + + ``` + $ date --utc + Sat Aug 17 09:26:18 UTC 2019 + ``` + +- To customize the output of the date command: + + ``` + $ date +"%Y-%m-%d %H:%M" + 2019-08-17 17:24 + ``` + + +## Changing the Current Time + +To change the current time, run the date command with the --set or -s option as the root user: Run the following command as the user **root**. In the command, _HH_ indicates the hour, _MM_ indicates the minute, and _SS_ indicates the second. Change them based on the site requirements. + +``` +date --set HH:MM:SS +``` + +By default, the date command sets the local time. To set the system clock in UTC instead, run the command with the --utc or -u command line option: + +``` +date --set HH:MM:SS --utc +``` + +For example, to change the current time to 23:26:00, run the following command as the user **root**: + +``` +# date --set 23:26:00 +``` + +## Changing the Current Date + +To change the current date, run the command with the --set or -s command line option. Run the following command as the user **root**. In the command, _YYYY_ indicates the year, _MM_ indicates the month, and _DD_ indicates the day. Change them based on the site requirements. + +``` +date --set YYYY-MM-DD +``` + +For example, to change the current date to November 2, 2019, run the following command as the user **root**: + +``` +# date --set 2019-11-02 +``` + diff --git a/content/en/docs/Administration/using-the-dnf-to-manage-software-packages.md b/content/en/docs/Administration/using-the-dnf-to-manage-software-packages.md new file mode 100644 index 0000000000000000000000000000000000000000..46f0924558a5f219990c07844f532e2dda1e5b43 --- /dev/null +++ b/content/en/docs/Administration/using-the-dnf-to-manage-software-packages.md @@ -0,0 +1,9 @@ +# Using the DNF to Manage Software Packages + +DNF is a Linux software package management tool used to manage RPM software packages. The DNF can query software package information, obtain software packages from a specified software library, automatically process dependencies to install or uninstall software packages, and update the system to the latest available version. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- DNF is fully compatible with YUM and provides YUM-compatible command lines and APIs for extensions and plug-ins. +>- You must have the administrator rights to use the DNF. All commands in this chapter must be executed by the administrator. + + diff --git a/content/en/docs/Administration/using-the-hwclock-command.md b/content/en/docs/Administration/using-the-hwclock-command.md new file mode 100644 index 0000000000000000000000000000000000000000..768811a900faa492f88bf55cac9143f376a3907f --- /dev/null +++ b/content/en/docs/Administration/using-the-hwclock-command.md @@ -0,0 +1,42 @@ +# Using the hwclock Command + +You can run the hwclock command to set the real time clock \(RTC\). + +## Real-Time Clock and System Clock + +Linux divides clocks into the following types: + +- System clock: clock of the current Linux kernel. +- Hardware clock RTC: hardware clock of the mainboard powered by the battery. This clock can be set in the **Standard BIOS Feature** option of the BIOS. + +When Linux starts, it reads the RTC and sets the system clock time based on the RTC time. + +## Displaying the Current Date and Time + +To display the current RTC date and time, run the following command as the user **root**: + +``` +hwclock +``` + +Example command output: + +``` +# hwclock +2019-08-26 10:18:42.528948+08:00 +``` + +## Setting the Date and Time + +Run the following command as the user **root** to change the date and time of the current hardware. In the command, _dd_ indicates the day, _mm_ indicates the month, _yyyy_ indicates the year, _HH_ indicates the hour, and _MM_ indicates the minute. Change them based on the site requirements. + +``` +hwclock --set --date "dd mm yyyy HH:MM" +``` + +For example, to change the current time to 21:17 on October 21, 2019, run the following command: + +``` +# hwclock --set --date "21 Oct 2019 21:17" --utc +``` + diff --git a/content/en/docs/Administration/using-the-ip-command.md b/content/en/docs/Administration/using-the-ip-command.md new file mode 100644 index 0000000000000000000000000000000000000000..7118bb5b421e945ce8eb301bcf8e0b9cda37e800 --- /dev/null +++ b/content/en/docs/Administration/using-the-ip-command.md @@ -0,0 +1,7 @@ +# Using the ip Command + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The network configuration configured using the **ip** command takes effect immediately, but the configuration will be lost after the system restarts. + + + diff --git a/content/en/docs/Administration/using-the-kae-in-the-openssl-configuration-file-openssl-cnf.md b/content/en/docs/Administration/using-the-kae-in-the-openssl-configuration-file-openssl-cnf.md new file mode 100644 index 0000000000000000000000000000000000000000..ae2d928cb643566d8fd72377150773ab8421ee8f --- /dev/null +++ b/content/en/docs/Administration/using-the-kae-in-the-openssl-configuration-file-openssl-cnf.md @@ -0,0 +1,126 @@ +# Using the KAE in the OpenSSL Configuration File openssl.cnf + +Create the **openssl.cnf** file and add the following configuration information to the file: + +``` +openssl_conf=openssl_def +[openssl_def] +engines=engine_section +[engine_section] +kae=kae_section +[kae_section] +engine_id=kae +dynamic_path=/usr/local/lib/engines-1.1/kae.so +KAE_CMD_ENABLE_ASYNC=1 #The value 0 indicates that the asynchronous function is disabled. The value 1 indicates that the asynchronous function is enabled. The asynchronous function is enabled by default. +default_algorithms=ALL +init=1 +``` + +Export the environment variable **OPENSSL\_CONF**. + +``` +export OPENSSL_CONF=/home/app/openssl.cnf #Path for storing the openssl.cnf file +``` + +The following is an example of the OpenSSL configuration file: + +``` +#include +``` + +``` +#include +``` + +``` + +``` + +``` +/* OpenSSL headers */ +``` + +``` +#include +``` + +``` +#include +``` + +``` +#include +``` + +``` +#include +``` + +``` + +``` + +``` +int main(int argc, char **argv) +``` + +``` +{ +``` + +``` + /* Initializing OpenSSL */ +``` + +``` + SSL_load_error_strings(); +``` + +``` + ERR_load_BIO_strings(); +``` + +``` +#Load openssl configure +``` + +``` +OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); OpenSSL_add_all_algorithms(); +``` + +``` + +``` + +``` + /*You can use ENGINE_by_id Function to get the handle of the Huawei Accelerator Engine*/ +``` + +``` + ENGINE *e = ENGINE_by_id("kae"); +``` + +``` + /*The user code*/ +``` + +``` + ...... +``` + +``` + +``` + +``` +; +``` + +``` + ENGINE_free(e); +``` + +``` +; +``` + diff --git a/content/en/docs/Administration/using-the-kae.md b/content/en/docs/Administration/using-the-kae.md new file mode 100644 index 0000000000000000000000000000000000000000..f564a7f9bcc85dbbfd25de8e45a594ca07c8d14e --- /dev/null +++ b/content/en/docs/Administration/using-the-kae.md @@ -0,0 +1,3 @@ +# Using the KAE + + diff --git a/content/en/docs/Administration/using-the-nmcli-command.md b/content/en/docs/Administration/using-the-nmcli-command.md new file mode 100644 index 0000000000000000000000000000000000000000..a30d0321f0e2af85e5b0d676ea8149cd2b2b5d77 --- /dev/null +++ b/content/en/docs/Administration/using-the-nmcli-command.md @@ -0,0 +1,6 @@ +# Using the nmcli Command + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The network configuration configured by running the **nmcli** command takes effect immediately and will not be lost after the system restarts. + + diff --git a/content/en/docs/Administration/using-the-repo-source.md b/content/en/docs/Administration/using-the-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..78a44e34fbeb8fb4f3b242ea300eaa67606893b7 --- /dev/null +++ b/content/en/docs/Administration/using-the-repo-source.md @@ -0,0 +1,5 @@ +# Using the repo Source + +The repo source can be configured as a yum source. Yellow dog Updater,Modified \(yum for short\) is a shell front-end software package manager. Based on the Redhat package manager \(RPM\), YUM can automatically download the rpm package from the specified server, install the package, and process dependent relationship. It supports one-off installation for all dependent software packages. + + diff --git a/content/en/docs/Administration/using-the-timedatectl-command.md b/content/en/docs/Administration/using-the-timedatectl-command.md new file mode 100644 index 0000000000000000000000000000000000000000..0edb13ee0a0d7b4ed274afd0db15110b448854f8 --- /dev/null +++ b/content/en/docs/Administration/using-the-timedatectl-command.md @@ -0,0 +1,121 @@ +# Using the timedatectl Command + +## Displaying the Current Date and Time + +To display the current date and time, run the following command: + +``` +timedatectl +``` + +Example command output: + +``` +$ timedatectl + Local time: Mon 2019-09-30 04:05:00 EDT + Universal time: Mon 2019-09-30 08:05:00 UTC + RTC time: Mon 2019-09-30 08:05:00 + Time zone: America/New_York (EDT, -0400) +System clock synchronized: no + NTP service: inactive + RTC in local TZ: no +``` + +## Synchronizing the System Clock with a Remote Server + +Your system clock can be automatically synchronized with a remote server using the Network Time Protocol \(NTP\). Run the following command as the user **root** to enable or disable NTP. The value of _boolean_ is **yes** or **no**, indicating that the NTP is enabled or disabled for automatic system clock synchronization. Change the value based on the site requirements. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>If the remote NTP server is enabled to automatically synchronize the system clock, you cannot manually change the date and time. If you need to manually change the date or time, ensure that automatic NTP system clock synchronization is disabled. You can run the **timedatectl set-ntp no** command to disable the NTP service. + +``` +timedatectl set-ntp boolean +``` + +For example, to enable automatic remote time synchronization, run the following command: + +``` +# timedatectl set-ntp yes +``` + +## Changing the Current Date + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Before changing the date, ensure that automatic NTP system clock synchronization has been disabled. + +Run the following command as the user **root** to change the current date. In the command, _YYYY_ indicates the year, _MM_ indicates the month, and _DD_ indicates the day. Change them based on the site requirements. + +``` +timedatectl set-time YYYY-MM-DD +``` + +For example, to change the current date to August 14, 2019, run the following command as the user **root**: + +``` +# timedatectl set-time '2019-08-14' +``` + +## Changing the Current Time + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Before changing the time, ensure that automatic NTP system clock synchronization has been disabled. + +To change the current time, run the following command as the user **root**. In the command, _HH_ indicates the hour, _MM_ indicates the minute, and _SS_ indicates the second. Change them based on the site requirements. + +``` +timedatectl set-time HH:MM:SS +``` + +For example, to change the current time to 15:57:24, run the following command: + +``` +# timedatectl set-time 15:57:24 +``` + +## Changing the Time Zone + +To list all available time zones, run the following command: + +``` +timedatectl list-timezones +``` + +To change the current time zone, run the following command as the user **root**. In the command, _time\_zone_ indicates the time zone to be set. Change it based on the site requirements. + +``` +timedatectl set-timezone time_zone +``` + +Imagine you want to identify which time zone is closest to your present location while you are in Asia. You can check that by listing all available time zones in Asia with the following command: + +``` +# timedatectl list-timezones | grep Asia +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Baghdad +Asia/Bahrain +...... + +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Thimphu +Asia/Tokyo +``` + +To change the time zone to Asia/Shanghai, run the following command: + +``` +# timedatectl set-timezone Asia/Shanghai +``` + diff --git a/content/en/docs/Administration/using-vsftpd.md b/content/en/docs/Administration/using-vsftpd.md new file mode 100644 index 0000000000000000000000000000000000000000..65fb94d6e4bf7bf2fa64c6f0b043ef86f17b808f --- /dev/null +++ b/content/en/docs/Administration/using-vsftpd.md @@ -0,0 +1,47 @@ +# Using vsftpd + +## Installing vsftpd + +To use the vsftpd service, you need to install the vsftpd software. If the yum source has been configured, run the following command as the root user to install the vsftpd service: + +``` +# dnf install vsftpd +``` + +## Service Management + +To start, stop, or restart the vsftpd service, run the corresponding command as the root user. + +- Starting vsftpd services + + ``` + # systemctl start vsftpd + ``` + + You can run the netstat command to check whether communication port 21 is enabled. If the following information is displayed, the vsftpd service has been enabled. + + ``` + # netstat -tulnp | grep 21 + tcp6 0 0 :::21 :::* LISTEN 19716/vsftpd + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >If the netstat command does not exist, run the following command to install the netstat command and then run the netstat command: + >``` + >dnf install net-tools + >``` + +- Stopping the vsftpd services + + ``` + # systemctl stop vsftpd + ``` + + +- Restarting the vsftpd service + + ``` + # systemctl restart vsftpd + ``` + + diff --git a/content/en/docs/Administration/verifying-whether-the-ftp-service-is-successfully-set-up.md b/content/en/docs/Administration/verifying-whether-the-ftp-service-is-successfully-set-up.md new file mode 100644 index 0000000000000000000000000000000000000000..730015a4ef6aea8254110d79eaed02fa05d86c3e --- /dev/null +++ b/content/en/docs/Administration/verifying-whether-the-ftp-service-is-successfully-set-up.md @@ -0,0 +1,21 @@ +# Verifying Whether the FTP Service Is Successfully Set Up + +You can use the FTP client provided by openEuler for verification. The command and output are as follows. Enter the user name \(an existing user in the system\) and password as prompted. If the message "Login successful" is displayed, the FTP server is successfully set up. + +``` +# dnf install ftp +# ftp localhost +Trying 127.0.0.1... +Connected to localhost (127.0.0.1). +220-Welcome to this FTP server! +220 +Name (localhost:root): USERNAME +331 Please specify the password. +Password: +230 Login successful. +Remote system type is UNIX. +Using binary mode to transfer files. +ftp> bye +221 Goodbye. +``` + diff --git a/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up-5.md b/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up-5.md new file mode 100644 index 0000000000000000000000000000000000000000..58dcc2bc8c62a2c00abd61bc7472b9c4c74a357f --- /dev/null +++ b/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up-5.md @@ -0,0 +1,75 @@ +# Verifying Whether the Web Service Is Successfully Set Up + +After the web server is set up, perform the following operations to check whether the web server is set up successfully: + +1. Run the following command to check the IP address of the server: + + ``` + # ifconfig + ``` + + If the following information is displayed, the IP address of the server is **192.168.1.60**. + + ``` + enp3s0: flags=4163 mtu 1500 + inet 192.168.1.60 netmask 255.255.255.0 broadcast 192.168.1.255 + inet6 fe80::5054:ff:fe95:499f prefixlen 64 scopeid 0x20 + ether 52:54:00:95:49:9f txqueuelen 1000 (Ethernet) + RX packets 150713207 bytes 49333673733 (45.9 GiB) + RX errors 0 dropped 43 overruns 0 frame 0 + TX packets 2246438 bytes 203186675 (193.7 MiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + enp4s0: flags=4163 mtu 1500 + ether 52:54:00:7d:80:9e txqueuelen 1000 (Ethernet) + RX packets 149937274 bytes 44652889185 (41.5 GiB) + RX errors 0 dropped 1102561 overruns 0 frame 0 + TX packets 0 bytes 0 (0.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + lo: flags=73 mtu 65536 + inet 127.0.0.1 netmask 255.0.0.0 + inet6 ::1 prefixlen 128 scopeid 0x10 + loop txqueuelen 1000 (Local Loopback) + RX packets 37096 bytes 3447369 (3.2 MiB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 37096 bytes 3447369 (3.2 MiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + ``` + +2. Configure the firewall. + + ``` + # firewall-cmd --add-service=http --permanent + success + # firewall-cmd --reload + success + ``` + +3. Verify whether the web server is successfully set up. You can select the Linux or Windows operating system for verification. + - Using the Linux OS + + Run the following command to check whether the web page can be accessed. If the service is successfully set up, the web page can be accessed. + + ``` + curl http://192.168.1.60 + ``` + + Run the following command to check whether the command output is **0**. If the command output is **0**, the Nginx server is successfully set up. + + ``` + echo $? + ``` + + - Using the Windows OS + + Open the browser and enter the following address in the address box. If the web page can be accessed, the Nginx server is successfully set up. + + http://_192.168.1.60_ + + If the port number is changed, enter the address in the following format: + + http://_192.168.1.60: port number_ + + + diff --git a/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up.md b/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up.md new file mode 100644 index 0000000000000000000000000000000000000000..900b9e93a40bd7d2c0aeca28b8dad9c74c42ac5d --- /dev/null +++ b/content/en/docs/Administration/verifying-whether-the-web-service-is-successfully-set-up.md @@ -0,0 +1,75 @@ +# Verifying Whether the Web Service Is Successfully Set Up + +After the web server is set up, perform the following operations to check whether the web server is set up successfully: + +1. Run the following command to check the IP address of the server: + + ``` + # ifconfig + ``` + + If the following information is displayed, the IP address of the server is 192.168.1.60. + + ``` + enp3s0: flags=4163 mtu 1500 + inet 192.168.1.60 netmask 255.255.255.0 broadcast 192.168.1.255 + inet6 fe80::5054:ff:fe95:499f prefixlen 64 scopeid 0x20 + ether 52:54:00:95:49:9f txqueuelen 1000 (Ethernet) + RX packets 150713207 bytes 49333673733 (45.9 GiB) + RX errors 0 dropped 43 overruns 0 frame 0 + TX packets 2246438 bytes 203186675 (193.7 MiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + enp4s0: flags=4163 mtu 1500 + ether 52:54:00:7d:80:9e txqueuelen 1000 (Ethernet) + RX packets 149937274 bytes 44652889185 (41.5 GiB) + RX errors 0 dropped 1102561 overruns 0 frame 0 + TX packets 0 bytes 0 (0.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + + lo: flags=73 mtu 65536 + inet 127.0.0.1 netmask 255.0.0.0 + inet6 ::1 prefixlen 128 scopeid 0x10 + loop txqueuelen 1000 (Local Loopback) + RX packets 37096 bytes 3447369 (3.2 MiB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 37096 bytes 3447369 (3.2 MiB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + ``` + +2. Configure the firewall. + + ``` + # firewall-cmd --add-service=http --permanent + success + # firewall-cmd --reload + success + ``` + +3. Verify whether the web server is successfully set up. You can select the Linux or Windows operating system for verification. + - Using the Linux OS + + Run the following command to check whether the web page can be accessed. If the service is successfully set up, the web page can be accessed. + + ``` + curl https://192.168.1.60 + ``` + + Run the following command to check whether the command output is 0. If the command output is 0, the httpd server is successfully set up. + + ``` + echo $? + ``` + + - Using the Windows OS + + Open the browser and enter the following address in the address box. If the web page can be accessed, the httpd server is successfully set up. + + https://_192.168.1.60_ + + If the port number is changed, enter the address in the following format: + + https://_192.168.1.60: port number_ + + + diff --git a/content/en/docs/Administration/viewing-a-database-16.md b/content/en/docs/Administration/viewing-a-database-16.md new file mode 100644 index 0000000000000000000000000000000000000000..5206def2b76849af915160ba6fa8ffca23f5123f --- /dev/null +++ b/content/en/docs/Administration/viewing-a-database-16.md @@ -0,0 +1,16 @@ +# Viewing a Database + +Run the **SHOW DATABASES** statement to view a database. + +``` +SHOW DATABASES; +``` + +## Example + +\#View all databases. + +``` +> SHOW DATABASES; +``` + diff --git a/content/en/docs/Administration/viewing-a-database-37.md b/content/en/docs/Administration/viewing-a-database-37.md new file mode 100644 index 0000000000000000000000000000000000000000..ad5fa888dcac5b18f4c3302d9be2103bb23831f3 --- /dev/null +++ b/content/en/docs/Administration/viewing-a-database-37.md @@ -0,0 +1,16 @@ +# Viewing a Database + +Run the **SHOW DATABASES** statement to view a database. + +``` +SHOW DATABASES; +``` + +## Example + +\#View all databases. + +``` +> SHOW DATABASES; +``` + diff --git a/content/en/docs/Administration/viewing-a-database.md b/content/en/docs/Administration/viewing-a-database.md new file mode 100644 index 0000000000000000000000000000000000000000..f7f5c4709bb39bd7a9a9f21fedaefb0dc581640c --- /dev/null +++ b/content/en/docs/Administration/viewing-a-database.md @@ -0,0 +1,16 @@ +# Viewing a Database + +Use the **\\l** statement to view the database. + +``` +\l; +``` + +## Example + +\#View all databases. + +``` +# \l; +``` + diff --git a/content/en/docs/Administration/viewing-processes.md b/content/en/docs/Administration/viewing-processes.md new file mode 100644 index 0000000000000000000000000000000000000000..c23f81db5500b807cbfbe2d8a9683d0edcd079c8 --- /dev/null +++ b/content/en/docs/Administration/viewing-processes.md @@ -0,0 +1,140 @@ +# Viewing Processes + +Linux is a multi-task system and needs to get process information during process management. To manage processes, you first need to know the number of processes and their statuses. Multiple commands are available to view processes. + +## who Command + +The who command is used to display system user information. For example, before running the talk command to establish instant communication with another user, you need to run the who command to determine whether the target user is online. As another example, the system administrator can run the who command to learn what each login user is doing at the current time. The who command is widely seen in system administration since it is easy to use and can return a comprehensive set of accurate user information. + +The following is an example output of the who command, where system users and their status are displayed: The use of the **who** command is as follows: + +``` +# who +admin tty1 Jul 28 15:55 +admin pts/0 Aug 5 15:46 (192.168.0.110) +admin pts/2 Jul 29 19:52 (192.168.0.110) +root pts/3 Jul 30 12:07 (192.168.0.110) +root pts/4 Jul 31 10:29 (192.168.0.144) +root pts/5 Jul 31 14:52 (192.168.0.11) +root pts/6 Aug 6 10:12 (192.168.0.234) +root pts/8 Aug 6 11:34 (192.168.0.234) +``` + +## ps Command + +The **ps** command is the most basic and powerful command to view process information. The ps command is used to display process information, including which processes are running, terminated, resource-hungry, or stay as zombies. + +A common scenario is using the ps command to monitor background processes, which do not interact with your screen, keyboard, and other I/O devices. [Table 1](#en-us_topic_0151921029_t34619d964a3d41ad8694189ec383359c) lists the common ps command options. + +**Table 1** Common ps command options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Option

+

Description

+

-e

+

Displays all processes.

+

-f

+

Full output format.

+

-h

+

Hides column headings in the listing of process information.

+

-l

+

Long output format.

+

-w

+

Wide output format.

+

-a

+

Lists all processes on a terminal, including those of other users.

+

-r

+

Lists only running processes.

+

-x

+

Lists all processes without controlling terminals.

+
+ +For example, to list all processes on a terminal, run the following command: + +``` +# ps -a + PID TTY TIME CMD +12175 pts/6 00:00:00 bash +24526 pts/0 00:00:00 vsftpd +29478 pts/5 00:00:00 ps +32461 pts/0 1-01:58:33 sh +``` + +## top Command + +Both the top and the ps commands can display a list of currently running processes, but the top command allows you to update the displayed list of processes repeatedly with the press of a button. If the top command is executed in foreground, it exclusively occupies foreground until it is terminated. The top command provides real-time visibility into system processor status. You can sort the list of CPU tasks by CPU usage, memory usage, or task execution time. Extensive customization of the display, such as choice of columns or sorting method, can be achieved using interactive commands or the customization file. + +[Figure 1](#en-us_topic_0151921029_f289234fcdbac453796200d80e9889cd1) provides an example output of the top command. + +**Figure 1** Example command output +![](figures/example-command-output.png "example-command-output") + +## kill Command + +The **kill** command is used to terminate a process regardless of whether the process is running in foreground or background. It differs from the combo key **Ctrl+c**, which can terminate only foreground processes. The kill command is used to terminate a process regardless of whether the process is running in foreground or background. The reason for terminating a background process can be heavy use of CPU resources or deadlock. + +The kill command sends a signal to terminate running processes. By default, the TERM signal is used. The TERM signal terminates all processes incapable of capturing the TERM signal. To terminate a process capable of capturing the TERM signal, use the KILL signal \(signal ID: 9\) instead. + +Two types of syntax of the kill command: + +``` +kill [-s signal | -p] [-a] PID… +kill -l [signal] +``` + +The process ID is retrieved from the ps command. The **-s** option indicates the signal sent to specified program. The signal details can be viewed by running the **kill -l** command. The **-p** option indicates the specified process IDs. + +For example, to terminate the process with ID 1409, run the following command: + +``` +# kill -9 1409 +``` + +Example output of the kill command with the -l option + +``` +# kill -l + 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP + 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 +11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM +16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP +21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ +26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR +31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 +38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 +43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 +48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 +53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 +58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 +63) SIGRTMAX-1 64) SIGRTMAX +``` + diff --git a/content/en/docs/Administration/viewing-roles.md b/content/en/docs/Administration/viewing-roles.md new file mode 100644 index 0000000000000000000000000000000000000000..2b59d792c3f9aed9d34f137aee9a724ec2e32aa5 --- /dev/null +++ b/content/en/docs/Administration/viewing-roles.md @@ -0,0 +1,28 @@ +# Viewing Roles + +You can run the **SELECT** statement or the PostgreSQL meta-command **\\du** to view the role. + +``` +SELECT rolename FROM pg_roles; +``` + +``` +\du +``` + +In the preceding command, _rolename_ indicates the role name. + +## Example + +\#View the **roleexample1** role. + +``` +postgres=# SELECT roleexample1 from pg_roles; +``` + +\#View the existing roles. + +``` +postgres=# \du +``` + diff --git a/content/en/docs/Administration/viewing-system-information.md b/content/en/docs/Administration/viewing-system-information.md new file mode 100644 index 0000000000000000000000000000000000000000..95b924b9203b200b4bb5fbc397288fed795dbae1 --- /dev/null +++ b/content/en/docs/Administration/viewing-system-information.md @@ -0,0 +1,42 @@ +# Viewing System Information + +- Run the following command to view the system information: + + ``` + cat /etc/os-release + ``` + + For example, the command and output are as follows: + + ``` + # cat /etc/os-release + NAME="openEuler" + VERSION="20.03 (LTS)" + ID="openEuler" + VERSION_ID="20.03" + PRETTY_NAME="openEuler 20.03 (LTS)" + ANSI_COLOR="0;31" + ``` + + +- View system resource information. + + Run the following command to view the CPU information: + + ``` + lscpu + ``` + + Run the following command to view the memory information: + + ``` + free + ``` + + Run the following command to view the disk information: + + ``` + fdisk -l + ``` + + diff --git a/content/en/docs/Administration/viewing-users-30.md b/content/en/docs/Administration/viewing-users-30.md new file mode 100644 index 0000000000000000000000000000000000000000..e532f1871f12c30c22cf2fd03669ce025afa2dc6 --- /dev/null +++ b/content/en/docs/Administration/viewing-users-30.md @@ -0,0 +1,39 @@ +# Viewing Users + +Run the **SHOW GRANTS** or **SELECT** statement to view one or more users. + +View a specific user: + +``` +SHOW GRANTS [FOR 'username'@'hostname']; +``` + +``` +SELECT USER,HOST,PASSWORD FROM mysql.user WHERE USER='username'; +``` + +View all users: + +``` +SELECT USER,HOST FROM mysql.user; +``` + +In the preceding information: + +- _username_: name of a user. +- _hostname_: host name. + +## Example + +\#View the user **userexample1**. + +``` +> SHOW GRANTS FOR 'userexample1'@'localhost'; +``` + +\#View all users in the MySQL database. + +``` +> SELECT USER,HOST FROM mysql.user; +``` + diff --git a/content/en/docs/Administration/viewing-users.md b/content/en/docs/Administration/viewing-users.md new file mode 100644 index 0000000000000000000000000000000000000000..3eba51d18e781cc1ca8277bf4727fb89f6d7b672 --- /dev/null +++ b/content/en/docs/Administration/viewing-users.md @@ -0,0 +1,39 @@ +# Viewing Users + +Run the **SHOW GRANTS** or **SELECT** statement to view one or more users. + +View a specific user: + +``` +SHOW GRANTS [FOR 'username'@'hostname']; +``` + +``` +SELECT USER,HOST,PASSWORD FROM mysql.user WHERE USER='username'; +``` + +View all users: + +``` +SELECT USER,HOST,PASSWORD FROM mysql.user; +``` + +In the preceding information: + +- _username_: name of a user. +- _hostname_: host name. + +## Example + +\#View the user userexample1. + +``` +> SHOW GRANTS FOR 'userexample1'@'localhost'; +``` + +\#View all users in the MySQL database. + +``` +> SELECT USER,HOST,PASSWORD FROM mysql.user; +``` + diff --git a/content/en/docs/Administration/vsftpd-configuration-files.md b/content/en/docs/Administration/vsftpd-configuration-files.md new file mode 100644 index 0000000000000000000000000000000000000000..d43d46424279cc4ba5619b22caf6ae3c953ff16c --- /dev/null +++ b/content/en/docs/Administration/vsftpd-configuration-files.md @@ -0,0 +1,59 @@ +# vsftpd Configuration Files + +You can modify the vsftpd configuration file to control user permissions. [Table 1](#table1541615718372) describes the vsftpd configuration files. You can modify the configuration files as required. You can run the man command to view more parameter meanings. + +**Table 1** vsftpd configuration files + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Configuration File

+

Description

+

/etc/vsftpd/vsftpd.conf

+

Main configuration file of the vsftpd process. The configuration format is Parameter=Parameter value. The parameter and parameter value cannot be empty.

+

You can run the following command to view details about the vsftpd.conf file:

+

man 5 vsftpd.conf

+

/etc/pam.d/vsftpd

+

Pluggable authentication modules (PAMs) are used for identity authentication and restrict some user operations.

+

/etc/vsftpd/ftpusers

+

List of users who are not allowed to use the vsftpd. By default, the system account is also in this file. Therefore, the system account cannot use vsftpd by default.

+

/etc/vsftpd/user_list

+

List of users who are allowed or not allowed to log in to the vsftpd server. Whether the file takes effect depends on the following parameters in the main configuration file vsftpd.conf:

+

userlist_enable: indicates whether to enable the userlist mechanism. The value YES indicates that the userlist mechanism is enabled. In this case, the userlist_deny configuration is valid. The value NO indicates that the userlist mechanism is disabled.

+

userlist_deny: indicates whether to forbid users in the user list to log in. YES indicates that users in the user list are forbidden to log in. NO indicates that users in the command are allowed to log in.

+

For example, if userlist_enable is set to YES and userlist_deny is set to NO, all users in the user list cannot log in.

+

/etc/vsftpd/chroot_list

+

Whether to restrict the user list in the home directory. By default, this file does not exist. You need to create it manually. It is the value of chroot_list_file in the vsftpd.conf file.

+

The function of this parameter is determined by the following parameters in the vsftpd.conf file:

+
  • chroot_local_user: indicates whether to restrict all users to the home directory. The value YES indicates that all users are restricted to the home directory, and the value NO indicates that all users are not restricted to the home directory.
  • chroot_list_enable: indicates whether to enable the list of restricted users. The value YES indicates that the list is enabled, and the value NO indicates that the list is disabled.
+

For example, if chroot_local_user is set to YES, chroot_list_enable is set to YES, and chroot_list_file is set to /etc/vsftpd/chroot_list, all users are restricted to their home directories, and users in chroot_list are not restricted.

+

/usr/sbin/vsftpd

+

Unique execution file of vsftpd.

+

/var/ftp/

+

Default root directory for anonymous users to log in. The root directory is related to the home directory of the ftp user.

+
+ diff --git a/content/en/docs/Administration/why-is-the-memory-usage-of-the-libvirtd-service-queried-by-running-the-systemctl-and-top-commands-di.md b/content/en/docs/Administration/why-is-the-memory-usage-of-the-libvirtd-service-queried-by-running-the-systemctl-and-top-commands-di.md new file mode 100644 index 0000000000000000000000000000000000000000..008a11dff5be2332401021068d5fc93c470d4196 --- /dev/null +++ b/content/en/docs/Administration/why-is-the-memory-usage-of-the-libvirtd-service-queried-by-running-the-systemctl-and-top-commands-di.md @@ -0,0 +1,25 @@ +# Why Is the Memory Usage of the libvirtd Service Queried by Running the systemctl and top Commands Different? + +## Symptom + +The output of the **systemctl** and **systemd-cgtop** commands shows that the libvirtd service occupies more than 1.5 GB memory, but the output of the **top** command shows that the libvirtd service occupies about 70 MB memory. + +## Possible Cause + +The memory displayed in the services \(including systemctl and systemd-cgtop\) managed by systemd can be obtained from **memory.usage\_in\_bytes** in Cgroup. Running the **top** command is to query the memory information in the **/proc** directory. The query results are different because the statistical method varies. + +Generally, the memory used by service processes has the following types: + +- anon\_rss: anonymous pages in user mode address spaces, for example, memory allocated by calling the malloc function or the mmap function with configured **MAP\_ANONYMOUS**. When the system memory is insufficient, this type of memory can be swapped by the kernel. +- file\_rss: mapped pages in user mode address spaces, including map file \(such as mmap of a specified file\) and map tmpfs \(such as IPC shared memory\). When the system memory is insufficient, the kernel can reclaim these pages. Data may need to be synchronized between the kernel and map file before reclamation. +- file\_cache: file cache \(page in page cache of disk file\), which is generated when a file is read or written. When the system memory is insufficient, the kernel can reclaim these pages. Data may need to be synchronized between the kernel and map file before reclamation. +- buffer pages: belongs to page cache, for example, cache generated when block device files are read. + +anon\_rss and file\_rss belong to the resident set size \(RSS\) of processes, and file\_cache and buffer pages belong to page cache. In brief: + +RSS in the output of the **top** command = anon\_rss + file\_rss; Shared memory \(SHR\) = file\_rss + +**memory.usage\_in\_bytes** in Cgroup = cache + RSS + swap + +In conclusion, the definition of memory usage obtained by running the **systemd** command is different from that obtained by running the **top** command. Therefore, the query results are different. + diff --git a/content/en/docs/ApplicationDev/about-this-document.md b/content/en/docs/ApplicationDev/about-this-document.md new file mode 100644 index 0000000000000000000000000000000000000000..5bf23ecd91c8579567128e5ad2b19b8c23f2fa4b --- /dev/null +++ b/content/en/docs/ApplicationDev/about-this-document.md @@ -0,0 +1,93 @@ +# About This Document + +## Overview + +This document describes the following four parts to guide users to use openEuler and develop code based on openEuler. + +- Install and use the GCC compiler in the openEuler operating system \(OS\), and complete the development, compilation, and execution of simple code. +- In the openEuler OS, use the JDK built-in tool to compile and execute code. +- Install IntelliJ IDEA in the openEuler OS for Java development. +- Create an RPM package locally or using the Open Build Service \(OBS\). + +## Intended Audience + +This document is intended for all users who use the openEuler OS for code development. You are expected to have the following experience or capabilities: + +- Have basic knowledge of the Linux OS. +- Know how to use Linux command lines. + +## Symbol Conventions + +The symbols that may be found in this document are defined as follows. + + + + + + + + + + + + + +

Symbol

+

Description

+

+

Indicates a potentially hazardous situation which, if not avoided, could result in equipment damage, data loss, performance deterioration, or unanticipated results.

+

NOTICE is used to address practices not related to personal injury.

+

+

Supplements the important information in the main text.

+

NOTE is used to address information not related to personal injury, equipment damage, and environment deterioration.

+
+ +## Command Conventions + +**Table 1** Command conventions + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Format

+

Description

+

Boldface

+

Command keywords, which remain unchanged in the commands, are in boldface.

+

Italic

+

Command parameters, which are replaced with actual values in the commands, are in italic.

+

[ ]

+

Items in square brackets are optional.

+

{ x | y | ... }

+

Optional items are grouped in braces and separated by vertical bars. One item is selected.

+

[ x | y | ... ]

+

Optional items are grouped in brackets and separated by vertical bars. One item is selected or no item is selected.

+

{ x | y | ... }*

+

Optional items are grouped in brackets and separated by vertical bars. A minimum of one or a maximum of all can be selected.

+

[ x | y | ... ]*

+

Optional items are grouped in brackets and separated by vertical bars. One or more items are selected or no item is selected.

+
+ diff --git a/content/en/docs/ApplicationDev/adding-a-software-package-10.md b/content/en/docs/ApplicationDev/adding-a-software-package-10.md new file mode 100644 index 0000000000000000000000000000000000000000..da1392758edb92d6bdd66df2abf2fe23fec01964 --- /dev/null +++ b/content/en/docs/ApplicationDev/adding-a-software-package-10.md @@ -0,0 +1,56 @@ +# Adding a Software Package + +To use the OSC tool of OBS to add a new software package, perform the following steps: + +**Creating a Project** + +1. Create a project based on the dependency of the new software package and a proper project. For example, to create a project based on **zlib** of the **openEuler:Mainline** project, run the following command \(**zlib** is any software package in the project\): + + ``` + # osc branch openEuler:Mainline zlib + ``` + +2. Delete unnecessary software packages added during project creation. For example, to delete the **zlib** software package, run the following command: + + ``` + # cd home:testUser:branches:openEuler:Mainline + # osc rm zlib + # osc commit -m "commit log" + ``` + +3. Create a software package in your own project. For example, to add the **my-first-obs-package** software package, run the following command: + + ``` + # mkdir my-first-obs-package + # cd my-first-obs-package + ``` + + +**Building an RPM Package** + +1. Add the prepared source file and .spec file to the software package directory. +2. Modify the source code and .spec file, and upload all files of the corresponding software package to the OBS server. The following is a command example. The information after the **-m** parameter is the commission record. + + ``` + # cd home:testUser:branches:openEuler:Mainline + # osc add my-first-obs-package + # osc ci -m "commit log" + ``` + +3. Run the following command to obtain the repository name and architecture of the current project: + + ``` + # osc repos home:testUser:branches:openEuler:Mainline + ``` + +4. After the modification is committed, OBS automatically compiles the software package. You can run the following command to view the compilation logs of the corresponding repository. In the command, _standard\_aarch64_ and _aarch64_ indicate the repository name and architecture obtained in the command output. + + ``` + # cd home:testUser:branches:openEuler:Mainline/my-first-obs-package + # osc buildlog standard_aarch64 aarch64 + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >You can also open the created project on the web client to view the build logs. + + diff --git a/content/en/docs/ApplicationDev/adding-a-software-package.md b/content/en/docs/ApplicationDev/adding-a-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..f79993f840f5b5136e46d5a9199c35a416ec8c44 --- /dev/null +++ b/content/en/docs/ApplicationDev/adding-a-software-package.md @@ -0,0 +1,37 @@ +# Adding a Software Package + +To add a new software package on the OBS web page, perform the following steps: + +1. Log in to the OBS console. +2. Select a project based on the dependency of the new software package. That is, click **All Projects** and select the corresponding project, for example, **openEuler:Mainline**. +3. Click a software package in the project. The software package details page is displayed. +4. Click **Branch package**. On the confirmation page that is displayed, click **Accept**. +5. Click **Delete package** to delete the software package in the new subproject, as shown in [Figure 1](#fig18306181103615). + + **Figure 1** Deleting a software package from a subproject + ![](figures/deleting-a-software-package-from-a-subproject.png "deleting-a-software-package-from-a-subproject") + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The purpose of creating a project by using existing software is to inherit the dependency such as the environment. Therefore, you need to delete these files. + +6. Click **Create Package**. On the page that is displayed, enter the software package name, title, and description, and click **Create** to create a software package, as shown in [Figure 2](#fig6762111693811) and [Figure 3](#fig18351153518389). + + **Figure 2** **Create Package** page + ![](figures/create-package-page.png "create-package-page") + + **Figure 3** Creating a software package + ![](figures/creating-a-software-package.png "creating-a-software-package") + +7. Click **Add file** to upload the .spec file and the file to be compiled \(specified in the .spec file\), as shown in [Figure 4](#fig1475845284011). + + **Figure 4** **Add file** page + ![](figures/add-file-page.png "add-file-page") + +8. After the file is uploaded, OBS automatically starts to build the RPM software package. Wait until the build is complete and view the build status in the status bar on the right. + - **succeeded**: The build is successful. You can click **succeeded** to view the build logs. + - **failed**: The build failed. Click **failed** to view error logs, locate the fault, and rebuild again. + - **unresolvable**: The build is not performed. The possible cause is that the dependency is missing. + - **disabled**: The build is manually closed or is queuing for build. + - **excluded**: The build is prohibited. The possible cause is that the .spec file is missing or the compilation of the target architecture is prohibited in the .spec file. + + diff --git a/content/en/docs/ApplicationDev/application-development.md b/content/en/docs/ApplicationDev/application-development.md new file mode 100644 index 0000000000000000000000000000000000000000..2232745b25efcc425e0ff6b7030b81c5fadb14cf --- /dev/null +++ b/content/en/docs/ApplicationDev/application-development.md @@ -0,0 +1 @@ +This document describes the common tools used for application development and guides users to develop applications based on openEuler. \ No newline at end of file diff --git a/content/en/docs/ApplicationDev/basics-2.md b/content/en/docs/ApplicationDev/basics-2.md new file mode 100644 index 0000000000000000000000000000000000000000..2012a0516a531e33cd0bad7080d1f8d8902a7d6b --- /dev/null +++ b/content/en/docs/ApplicationDev/basics-2.md @@ -0,0 +1,3 @@ +# Basics + + diff --git a/content/en/docs/ApplicationDev/basics-6.md b/content/en/docs/ApplicationDev/basics-6.md new file mode 100644 index 0000000000000000000000000000000000000000..a8ceb975ce211619b977be0aed6268dfe6dc8ca3 --- /dev/null +++ b/content/en/docs/ApplicationDev/basics-6.md @@ -0,0 +1,4 @@ +# Basics + + + diff --git a/content/en/docs/ApplicationDev/basics.md b/content/en/docs/ApplicationDev/basics.md new file mode 100644 index 0000000000000000000000000000000000000000..914c9e826fd134d9da8e83a12c7505312a2011ca --- /dev/null +++ b/content/en/docs/ApplicationDev/basics.md @@ -0,0 +1,4 @@ +# Basics + + + diff --git a/content/en/docs/ApplicationDev/building-a-software-package-using-osc.md b/content/en/docs/ApplicationDev/building-a-software-package-using-osc.md new file mode 100644 index 0000000000000000000000000000000000000000..3f328f5ee04a3b0945112342b25ead7fd758ef2a --- /dev/null +++ b/content/en/docs/ApplicationDev/building-a-software-package-using-osc.md @@ -0,0 +1,6 @@ +# Building a Software Package Using OSC + +This section describes how to use the OBS command line tool OSC to create a project and build an RPM software package. + + + diff --git a/content/en/docs/ApplicationDev/building-an-existing-software-package-9.md b/content/en/docs/ApplicationDev/building-an-existing-software-package-9.md new file mode 100644 index 0000000000000000000000000000000000000000..651213b7e304774d3026508b8b14f8477b054d74 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-existing-software-package-9.md @@ -0,0 +1,82 @@ +# Building an Existing Software Package + +**Creating a Project** + +1. You can copy an existing project to create a subproject of your own. For example, to copy the **zlib** software package in the **openEuler:Mainline** project to the new branch, run the following command: + + ``` + # osc branch openEuler:Mainline zlib + ``` + + If the following information is displayed, a new branch project **home:testUser:branches:openEuler:Mainline** is created for user **testUser**. + + ``` + A working copy of the branched package can be checked out with: + osc co home:testUser:branches:openEuler:Mainline/zlib + ``` + +2. Download the configuration file \(for example, **\_service**\) of the software package to be modified to the local directory. In the preceding command, _testUser_ indicates the account name configured in the **\~/.oscrc** configuration file. Change it based on the actual requirements. + + ``` + # osc co home:testUser:branches:openEuler:Mainline/zlib + ``` + + Information similar to the following is displayed: + + ``` + A home:testUser:branches:openEuler:Mainline + A home:testUser:branches:openEuler:Mainline/zlib + A home:testUser:branches:openEuler:Mainline/zlib/_service + ``` + +3. Go to the local subproject directory and synchronize the remote code of the software package to the local host. + + ``` + # cd home:testUser:branches:openEuler:Mainline/zlib + # osc up -S + ``` + + Information similar to the following is displayed: + + ``` + A _service:tar_scm_kernel_repo:0001-Neon-Optimized-hash-chain-rebase.patch + A _service:tar_scm_kernel_repo:0002-Porting-optimized-longest_match.patch + A _service:tar_scm_kernel_repo:0003-arm64-specific-build-patch.patch + A _service:tar_scm_kernel_repo:zlib-1.2.11-optimized-s390.patch + A _service:tar_scm_kernel_repo:zlib-1.2.11.tar.xz + A _service:tar_scm_kernel_repo:zlib-1.2.5-minizip-fixuncrypt.patch + A _service:tar_scm_kernel_repo:zlib.spec + ``` + + +**Building an RPM Package** + +1. Rename the source file and add the renamed source file to the temporary storage of OBS. + + ``` + # rm -f _service;for file in `ls | grep -v .osc`;do new_file=${file##*:};mv $file $new_file;done + # osc addremove * + ``` + +2. Modify the source code and .spec file, and synchronize all modifications of the corresponding software package to the OBS server. The following is a command example. The information after the **-m** parameter is the commission record. + + ``` + # osc ci -m "commit log" + ``` + +3. Run the following command to obtain the repository name and architecture of the current project: + + ``` + # osc repos home:testUser:branches:openEuler:Mainline + ``` + +4. After the modification is committed, OBS automatically compiles the software package. You can run the following command to view the compilation logs of the corresponding repository. In the command, _standard\_aarch64_ and _aarch64_ indicate the repository name and architecture obtained in the command output. + + ``` + # osc buildlog standard_aarch64 aarch64 + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >You can also open the created project on the web client to view the build logs. + + diff --git a/content/en/docs/ApplicationDev/building-an-existing-software-package.md b/content/en/docs/ApplicationDev/building-an-existing-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..2cd85096a7937e5d41383b58d02103baefacb1f1 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-existing-software-package.md @@ -0,0 +1,48 @@ +# Building an Existing Software Package + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- If you use OBS for the first time, register an individual account on the OBS web page. +>- With this method, you must copy the modified code and commit it to the code directory before performing the following operations. The code directory is specified in the **\_service** file. + +To modify the source code of the existing software and build the modified source file into an RPM software package on the OBS web client, perform the following steps: + +1. Log in to OBS at [http://openeuler-build.huawei.com/](http://openeuler-build.huawei.com/). +2. Click **All Projects**. The **All Projects** page is displayed. +3. Click the project to be modified. The project details page is displayed. For example, click **openEuler:Mainline**. +4. On the project details page, search for the software package to be modified and click the software package name. The software package details page is displayed. +5. Click **Branch package**. In the displayed dialog box, click **Accept**, as shown in [Figure 1](#fig77646143214). + + **Figure 1** **Branch Confirmation** page + ![](figures/branch-confirmation-page.png "branch-confirmation-page") + +6. Click the **\_service** file to go to the editing page, modify the file content, and click **Save**. An example of the **\_service** file content is as follows. **userCodeURL** and **userCommitID** indicate the user code path and commission version number or branch, respectively. + + ``` + + + git + userCodeURL + userCommitID + + + bz2 + *.tar + + + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Click **Save** to save the **\_service** file. OBS downloads the source code from the specified URL to the software directory of the corresponding OBS project based on the **\_service** file description and replaces the original file. For example, the **kernel** directory of the **openEuler:Mainline** project in the preceding example. + +7. After the files are copied and replaced, OBS automatically starts to build the RPM software package. Wait until the build is complete and view the build status in the status bar on the right. + - **succeeded**: The build is successful. You can click **succeeded** to view the build logs, as shown in [Figure 2](#fig10319114217337). + + **Figure 2** **Succeeded** page + ![](figures/succeeded-page.png "succeeded-page") + + - **failed**: The build failed. Click **failed** to view error logs, locate the fault, and rebuild again. + - **unresolvable**: The build is not performed. The possible cause is that the dependency is missing. + - **disabled**: The build is manually closed or is queuing for build. + - **excluded**: The build is prohibited. The possible cause is that the .spec file is missing or the compilation of the target architecture is prohibited in the .spec file. + + diff --git a/content/en/docs/ApplicationDev/building-an-rpm-package-8.md b/content/en/docs/ApplicationDev/building-an-rpm-package-8.md new file mode 100644 index 0000000000000000000000000000000000000000..123ffc9f95feb89454162ee47323f79ed9683299 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-rpm-package-8.md @@ -0,0 +1,22 @@ +# Building an RPM Package + +Run the following command in the directory where the .spec file is located to build the source code, binary files, and software packages that contain debugging information: + +``` +# rpmbuild -ba hello.spec +``` + +Run the following command to view the execution result: + +``` +# tree ~/rpmbuild/*RPMS + +/home/testUser/rpmbuild/RPMS +└── aarch64 + ├── hello-2.10-1.aarch64.rpm + ├── hello-debuginfo-2.10-1.aarch64.rpm + └── hello-debugsource-2.10-1.aarch64.rpm +/home/testUser/rpmbuild/SRPMS +└── hello-2.10-1.src.rpm +``` + diff --git a/content/en/docs/ApplicationDev/building-an-rpm-package-locally.md b/content/en/docs/ApplicationDev/building-an-rpm-package-locally.md new file mode 100644 index 0000000000000000000000000000000000000000..2a13212598a84cfd9c816984174902ac81922972 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-rpm-package-locally.md @@ -0,0 +1,6 @@ +# Building an RPM Package Locally + +This section uses an example to describe how to build an RPM software package locally. + + + diff --git a/content/en/docs/ApplicationDev/building-an-rpm-package-using-the-obs.md b/content/en/docs/ApplicationDev/building-an-rpm-package-using-the-obs.md new file mode 100644 index 0000000000000000000000000000000000000000..c98dabbd85e5174b05a8a3a226a6e9195b23052a --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-rpm-package-using-the-obs.md @@ -0,0 +1,9 @@ +# Building an RPM Package Using the OBS + +This section describes how to build RPM software packages using the OBS on the web page or with OSC. There are two methods: + +- Modifying an existing software package: Modify the source code of an existing software package and build the modified source code into an RPM software package. +- Adding a software package: A new software source file is developed from scratch, and the newly developed source file is used to build an RPM software package. + + + diff --git a/content/en/docs/ApplicationDev/building-an-rpm-package.md b/content/en/docs/ApplicationDev/building-an-rpm-package.md new file mode 100644 index 0000000000000000000000000000000000000000..4f2789343ff6f9b1ed2632689e486c32d7501fb4 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-rpm-package.md @@ -0,0 +1,6 @@ +# Building an RPM Package + +This section describes how to build an RPM software package on a local PC or using OBS. For details, see [https://gitee.com/openeuler/community/blob/master/zh/contributors/packaging.md](https://gitee.com/openeuler/community/blob/master/zh/contributors/packaging.md). + + + diff --git a/content/en/docs/ApplicationDev/building-an-rpm-software-package-online.md b/content/en/docs/ApplicationDev/building-an-rpm-software-package-online.md new file mode 100644 index 0000000000000000000000000000000000000000..ef8ee2d13f77da3145c00cc7541b725a9cdc0150 --- /dev/null +++ b/content/en/docs/ApplicationDev/building-an-rpm-software-package-online.md @@ -0,0 +1,6 @@ +# Building an RPM Software Package Online + +This section describes how to build an RPM software package online on OBS. + + + diff --git a/content/en/docs/ApplicationDev/class-library.md b/content/en/docs/ApplicationDev/class-library.md new file mode 100644 index 0000000000000000000000000000000000000000..74271b894987de4615808c0eb184c4f5a63c2cc0 --- /dev/null +++ b/content/en/docs/ApplicationDev/class-library.md @@ -0,0 +1,51 @@ +# Class Library + +The Java class library is implemented as a package, which is a collection of classes and interfaces. The Java compiler generates a bytecode file for each class, and the file name is the same as the class name. Therefore, conflicts may occur between classes with the same name. In the Java language, a group of classes and interfaces are encapsulated in a package. Class namespaces can be effectively managed by package. Classes in different packages do not conflict even if they have the same name. This solves the problem of conflicts between classes with the same name and facilitates the management of a large number of classes and interfaces. It also ensures the security of classes and interfaces. + +In addition to many packages provided by Java, developers can customize packages by collecting compiled classes and interfaces into a package for future use. + +Before using a custom package, you need to declare the package. + +## Package Declaration + +The declaration format of a package is package pkg1\[.pkg2\[.pkg3...\]\]. + +To declare a package, you must create a directory. The subdirectory name must be the same as the package name. Then declare the package at the beginning of the class file that needs to be placed in the package, indicating that all classes of the file belong to the package. The dot \(.\) in the package declaration indicates the directory hierarchy. If the source program file does not contain the package statement, the package is specified as an anonymous package. An anonymous package does not have a path. Generally, Java still stores the classes in the source file in the current working directory \(that is, the directory where the Java source files are stored\). + +The package declaration statement must be added to the beginning of the source program file and cannot be preceded by comments or spaces. If you use the same package declaration statement in different source program files, you can include the classes in different source program files in the same package. + +## Package Reference + +In Java, there are two methods to use the common classes in the package provided by Java or the classes in the custom package. + +- Add the package name before the name of the class to be referenced. + + For example, name.A obj=new name.A \(\) + + **name** indicates the package name, **A** indicates the class name, and **obj** indicates the object. This string indicates that class **A** in the **name** package is used to define an object **obj** in the program. + + Example: Create a test object of the Test class in the example package. + + ``` + example.Test test = new example.Test(); + ``` + +- Use **import** at the beginning of the file to import the classes in the package. + + The format of the **import** statement is import pkg1\[.pkg2\[.pkg3...\]\].\(classname | \*\). + + **pkg1\[.pkg2\[.pkg3...\]\]** indicates the package level, and **classname** indicates the class to be imported. If you want to import multiple classes from a package, you can use the wildcard \(\*\) instead. + + Example: Import the **Test** class in the **example** package. + + ``` + import example.Test; + ``` + + Example: Import the entire **example** package. + + ``` + import example.*; + ``` + + diff --git a/content/en/docs/ApplicationDev/common-jdk-options.md b/content/en/docs/ApplicationDev/common-jdk-options.md new file mode 100644 index 0000000000000000000000000000000000000000..4cefe2a0c358e87d084c66c7c19589cb138cd516 --- /dev/null +++ b/content/en/docs/ApplicationDev/common-jdk-options.md @@ -0,0 +1,253 @@ +# Common JDK Options + +## Javac Compilation Options + +The command format for javac compilation is as follows: **javac** \[_options_\] \[_sourcefiles_\] \[_classes_\] \[@_argfiles_\] + +In the preceding information: + +_options_: command options. + +_sourcefiles_: one or more source files to be compiled. + +_classes_: one or more classes to be processed as comments. + +@_argfiles_: one or more files that list options and source files. The **-J** option is not allowed in these files. + +Javac is a Java compiler. It has many _options_, but most of them are not commonly used. [Table 1](#table1342946175212) describes the common options values. + +**Table 1** Common javac options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

options Value

+

Description

+

Example

+

-d path

+

Path for storing the generated class files.

+

By default, the class files generated after compilation are in the same path as the source file. You can use the -d option to export the class files to the specified path.

+

# Use the -d option to export all class files to the bin directory.

+

javac /src/*.java -d /bin

+

-s path

+

Path for storing the generated source files.

+

-

+

-cp path or -classpath path

+

Searches for the class files required for compilation and specifies the location of the class files.

+

# In the Demo, the getLine() method in the GetStringDemo class needs to be invoked. The .class file compiled by the GetStringDemo class is stored in the bin directory.

+

javac -cp bin Demo.java -d bin

+

-verbose

+

Outputs information about the operations being performed by the compiler, such as loaded class information and compiled source file information.

+

# Display information about the operations that are being performed by the compiler.

+

javac -verbose -cp bin Demo.java

+

-source sourceversion

+

Specifies the location of the input source files to be searched for.

+

-

+

-sourcepath path

+

Searches for source files (Java files) required for compilation and specifies the location of the source files to be searched for, for example, JAR, ZIP, or other directories that contain Java files.

+

-

+

-target targetversion

+

Generates class files of a specific JVM version. The value can be 1.1, 1.2, 1.3, 1.4, 1.5 (or 5), 1.6 (or 6), 1.7 (or 7), or 1.8 (or 8). The default value of targetversion is related to sourceversion of the -source option. The options of sourceversion are as follows:

+
  • 1.2, corresponding to target version 1.4
  • 1.3, corresponding to target version 1.4
  • 1.5, 1.6, 1.7, and unspecified, corresponding to target version 1.8
  • For other values, the values of targetversion and sourceversion are the same.
+

-

+
+ +## Java Running Options + +The Java running format is as follows: + +Running class file: **java** \[_options_\] _classesname_ \[args\] + +Running Java file: **java** \[_options_\] -jar _filename_ \[args\] + +In the preceding information: + +_options_: command options, which are separated by spaces. + +_classname_: name of the running .class file. + +_filename_: name of the running .jar file. + +args: parameters transferred to the main\(\) function. The parameters are separated by spaces. + +Java is a tool for running Java applications. It has many _options_, but most of them are not commonly used. [Table 2](#table371918587238) describes the common options. + +**Table 2** Common Java running options + + + + + + + + + + + + + + + + +

options Value

+

Description

+

Example

+

-cp path or -classpath path

+

Specifies the location of the file to be run and the class path to be used, including the .jar, .zip, and class file directories.

+

If there are multiple paths, separate them with colons (:).

+

-

+

-verbose

+

Outputs information about the operations being performed by the compiler, such as loaded class information and compiled source file information.

+

# Display information about the operations that are being performed by the compiler.

+

java -verbose -cp bin Demo.java

+
+ +## JAR Options + +The JAR command format is as follows: **jar** \{c | t | x | u\}\[vfm0M\] \[_jarfile_\] \[_manifest_\] \[-C _dir_\] _file_... + +[Table 3](#table3691718114817) describes the parameters in the **jar** command. + +**Table 3** JAR parameter description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Example

+

c

+

Creates a JAR package.

+

# Compress the hello.class files in the current directory into Hello.jar. The compression process is not displayed. If the Hello.jar files do not exist, create them. Otherwise, clear the directory.

+

jar cf Hello.jar hello.class

+

t

+

Lists the contents of a JAR package.

+

# List the files contained in Hello.jar.

+

jar tf Hello.jar

+

x

+

Decompresses a JAR package.

+

# Decompress Hello.jar to the current directory. No information is displayed.

+

jar xf Hello.jar

+

u

+

Updates the existing JAR package, for example, add files to the JAR package.

+

-

+

v

+

Generates a detailed report and prints it to the standard output.

+

# Compress the hello.class files in the current directory into Hello.jar and display the compression process. If the Hello.jar files do not exist, create them. Otherwise, clear the directory.

+

jar cvf Hello.jar hello.class

+

f

+

Specifies the name of a JAR package. This parameter is mandatory.

+

-

+

m

+

Specifies the manifest file to be contained.

+

-

+

0

+

If this parameter is not set, the generated JAR package is larger but faster than that generated when this parameter is not set.

+

-

+

M

+

If the manifest file of all items is not generated, this parameter will be ignored.

+

# Compress the hello.class files in the current directory into Hello.jar and display the compression process. If the Hello.jar files do not exist, create them. Otherwise, clear the directory. However, the manifest file is not generated when Hello.jar is created.

+

jar cvfM Hello.jar hello.class

+

jarfile

+

JAR package, which is an auxiliary parameter of the f parameter.

+

-

+

manifest

+

Manifest file in .mf format, which is an auxiliary parameter of the m parameter.

+

-

+

-C dir

+

Runs the jar command in the specified dir. This command can be used only with parameters c and t.

+

-

+

file

+

Specifies the file or path list. All files in the file or path (including those in the recursive path) are compressed into the JAR package or the JAR package is decompressed to the path.

+

# Compress all class files in the current directory into Hello.jar and display the compression process. If the Hello.jar files do not exist, create them. Otherwise, clear the directory.

+

jar cvf Hello.jar *.class

+
+ diff --git a/content/en/docs/ApplicationDev/compilation-options.md b/content/en/docs/ApplicationDev/compilation-options.md new file mode 100644 index 0000000000000000000000000000000000000000..50c4a9dde35392b764f0a6979ea4dabb1c8ea6a2 --- /dev/null +++ b/content/en/docs/ApplicationDev/compilation-options.md @@ -0,0 +1,113 @@ +# Compilation Options + +GCC compilation command format: **gcc** \[_options_\] \[_filenames_\] + +In the preceding information: + +_options_: compilation options. + +_filenames_: file name. + +GCC is a powerful compiler. It has many _options_, but most of them are not commonly used. [Table 1](#table1342946175212) describes the common _options_. + +**Table 1** Common GCC compilation options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

options Value

+

Description

+

Example

+

-c

+

Compiles and assembles specified source files to generate target files without linking them. It is usually used to compile subprogram files.

+

# Use the -c option to compile the source files test1.c and test2.c.

+

gcc -c test1.c test2.c

+

-S

+

Compiles the specified source file to generate an assembly language file with the .s suffix but without assembling it.

+

# Use the compiler to preprocess circle.c, translate it into assembly language, and store the result in circle.s.

+

gcc -S circle.c

+

-E

+

Preprocesses specified source files without compiling them.

+

By default, the output of the preprocessor is imported to a standard output stream, such as a display. You can use the -o option to import it to an output file.

+

# Export the preprocessing result to the circle.i file.

+

gcc -E circle.c -o circle.i

+

-o file

+

Generates a specified output file when an executable file is generated. The name must be different from that of the source file. If this option is not given, GCC generates the preset executable file a.out.

+

# Use the source file as the input file and the executable file as the output file. That is, compile the entire program.

+

gcc main.c func.c -o app.out

+

-g

+

Contains standard debugging information in executable programs.

+

-

+

-L libary_path

+

Adds the library_path to the library file search path list.

+

-

+

-Ilibrary

+

Searches for the specified function library during linking.

+

When GCC is used to compile and link programs, GCC links libc.a or libc.so by default. However, other libraries (such as non-standard libraries and third-party libraries) need to be manually added.

+

# Use the -l option to link the math library.

+

gcc main.c -o main.out -lm

+
NOTE:

The file name of the math library is libm.a. The prefix lib and suffix .a are standard, and m is the basic name. GCC automatically adds these prefixes and suffixes to the basic name following the -l option. In this example, the basic name is m.

+
+

-I head_path

+

Adds the head_path to the search path list of the header file.

+

-

+

-static

+

Performs static compilation and links static libraries. Do not link dynamic libraries.

+

-

+

-shared

+

Default option, which can be omitted.

+
  • A dynamic library file can be generated.
  • During dynamic compilation, the dynamic library is preferentially linked. The static library with the same name is linked only when there is no dynamic library.
+

-

+

-fPIC (or -fpic)

+

Generates location-independent target code that uses a relative address. Generally, the -static option is used to generate a dynamic library file from the PIC target file.

+

-

+
+ diff --git a/content/en/docs/ApplicationDev/compilation-process.md b/content/en/docs/ApplicationDev/compilation-process.md new file mode 100644 index 0000000000000000000000000000000000000000..e0a3b897437eb8877af17a3a4fe49d2216661a80 --- /dev/null +++ b/content/en/docs/ApplicationDev/compilation-process.md @@ -0,0 +1,11 @@ +# Compilation Process + +Using GCC to generate executable files from source code files requires preprocessing, compilation, assembly, and linking. + +1. Preprocessing: Preprocess the source program \(such as a .c file\) to generate an .i file. +2. Compilation: Compile the preprocessed .i file into an assembly language to generate an .s file. +3. Assemble: Assemble the assembly language file to generate the target file .o. +4. Linking: Link the .o files of each module to generate an executable program file. + +The .i, .s, and .o files are intermediate or temporary files. If the GCC is used to compile programs in C language at a time, these files will be deleted. + diff --git a/content/en/docs/ApplicationDev/compiling-a-java-program-with-a-package.md b/content/en/docs/ApplicationDev/compiling-a-java-program-with-a-package.md new file mode 100644 index 0000000000000000000000000000000000000000..8e2eba705483fceef6a08e72fd5d0c17b2061ce8 --- /dev/null +++ b/content/en/docs/ApplicationDev/compiling-a-java-program-with-a-package.md @@ -0,0 +1,95 @@ +# Compiling a Java Program with a Package + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. Create the **/home/code/Test/my/example**, **/home/code/Hello/world/developers**, and **/home/code/Hi/openos/openeuler** subdirectories in the directory to store source files. + + ``` + cd /home/code + + mkdir -p Test/my/example + mkdir -p Hello/world/developers + mkdir -p Hi/openos/openeuler + ``` + +2. Run the **cd** command to go to the **/home/code/Test/my/example** directory and create **Test.java**. + + ``` + cd /home/code/Test/my/example + vi Test.java + ``` + + The following is an example of the Test.java code: + + ``` + package my.example; + import world.developers.Hello; + import openos.openeuler.Hi; + public class Test { + public static void main(String[] args) { + Hello me = new Hello(); + me.hello(); + Hi you = new Hi(); + you.hi(); + } + } + ``` + +3. Run the **cd** command to go to the **/home/code/Hello/world/developers** directory and create **Hello.java**. + + ``` + cd /home/code/Hello/world/developers + vi Hello.java + ``` + + The following is an example of the Hello.java code: + + ``` + package world.developers; + public class Hello { + public void hello(){ + System.out.println("Hello, openEuler."); + } + } + ``` + +4. Run the **cd** command to go to the **/home/code/Hi/openos/openeuler** directory and create **Hi.java**. + + ``` + cd /home/code/Hi/openos/openeuler + vi Hi.java + ``` + + The following is an example of the Hi.java code: + + ``` + package openos.openeuler; + public class Hi { + public void hi(){ + System.out.println("Hi, the global developers."); + } + } + ``` + +5. Run the **cd** command to go to the **/home/code** directory and use javac to compile the source file. + + ``` + cd /home/code + javac -classpath Hello:Hi Test/my/example/Test.java + ``` + + After the command is executed, the **Test.class**, **Hello.class**, and **Hi.class** files are generated in the **/home/code/Test/my/example**, **/home/code/Hello/world/developers**, and **/home/code/Hi/openos/openeuler** directories. + +6. Run the **cd** command to go to the **/home/code** directory and run the **Test** program using Java. + + ``` + cd /home/code + java -classpath Test:Hello:Hi my/example/Test + ``` + + The command output is as follows: + + ``` + Hello, openEuler. + Hi, the global developers. + ``` + + diff --git a/content/en/docs/ApplicationDev/compiling-a-java-program-without-a-package.md b/content/en/docs/ApplicationDev/compiling-a-java-program-without-a-package.md new file mode 100644 index 0000000000000000000000000000000000000000..e98337436fef0e4b754cf1efac00856f5efb588b --- /dev/null +++ b/content/en/docs/ApplicationDev/compiling-a-java-program-without-a-package.md @@ -0,0 +1,40 @@ +# Compiling a Java Program Without a Package + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. The command is as follows: + + ``` + # cd /home/code + ``` + +2. Compile the Hello World program and save it as **HelloWorld.java**. The following uses the Hello World program as an example. The command is as follows: + + ``` + # vi HelloWorld.java + ``` + + Code example: + + ``` + public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World"); + } + } + ``` + +3. Run the following command to compile the code in the code directory: + + ``` + # javac HelloWorld.java + ``` + + If no error is reported, the execution is successful. + +4. After the compilation is complete, the HelloWorld.class file is generated. You can run the **java** command to view the result. The following is an example: + + ``` + # java HelloWorld + Hello World + ``` + + diff --git a/content/en/docs/ApplicationDev/configuring-a-repo-source.md b/content/en/docs/ApplicationDev/configuring-a-repo-source.md new file mode 100644 index 0000000000000000000000000000000000000000..a0331dcbccd25214bafeac64be35b2a76e8e426a --- /dev/null +++ b/content/en/docs/ApplicationDev/configuring-a-repo-source.md @@ -0,0 +1,156 @@ +# Configuring a Repo Source + +You can configure a repo source by directly obtaining the repo source file or by mounting an ISO file. + +## Configuring a Repo Source by Directly Obtaining the Repo Source File + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>openEuler provides multiple repo source files. This section uses the OS repo source file of the AArch64 architecture as an example. + +1. Go to the yum source directory. + + ``` + cd /etc/yum.repos.d + ``` + +2. Create and edit the **local.repo** file. Configure the repo source file as the yum source. + + ``` + vi local.repo + ``` + + Edit the **local.repo** file as follows: + + \[basiclocal\] + + name=basiclocal + + baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/ + + enabled=1 + + gpgcheck=0 + + +## Configuring a Repo Source by Mounting an ISO File + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>This section uses the **openEuler-20.03-LTS-aarch64-dvd.iso** image file and **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** verification file as examples. Modify them based on the actual requirements. + +1. Download the ISO image. + - Download an ISO image using a cross-platform file transfer tool. + 1. Log in to the openEuler community at [https://openeuler.org](https://openeuler.org). + 2. Click **Download**. + 3. Click the link provided after **Download ISO**. The download list is displayed. + 4. Select the version to be downloaded, for example, openEuler 20.03 LTS. Then, click **openEuler-20.03-LTS**. The download list is displayed. + 5. Click **ISO**. The ISO download list is displayed. + - **aarch64**: ISO image file of the AArch64 architecture + - **x86\_64**: ISO image file of the x86\_64 architecture + - **source**: ISO image file of the openEuler source code + + 6. Click **aarch64**. + 7. Click **openEuler-20.03-LTS-aarch64-dvd.iso** to download the openEuler release package to the local host. + 8. Click **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** to download the openEuler verification file to the local host. + 9. Log in to the openEuler OS and create a directory for storing the release package and verification file, for example, **/home/iso**. + + ``` + mkdir /home/iso + ``` + + 10. Use a cross-platform file transfer tool \(such as WinSCP\) to upload the local openEuler release package and verification file to the target openEuler OS. + + - Run the **wget** command to download the ISO image. + 1. Log in to the openEuler community at [https://openeuler.org](https://openeuler.org). + 2. Click **Download**. + 3. Click the link provided after **Download ISO**. The download list is displayed. + 4. Select the version to be downloaded, for example, openEuler 20.03 LTS. Then, click **openEuler-20.03-LTS**. The download list is displayed. + 5. Click **ISO**. The ISO download list is displayed. + - **aarch64**: ISO image file of the AArch64 architecture + - **x86\_64**: ISO image file of the x86\_64 architecture + - **source**: ISO image file of the openEuler source code + + 6. Click **aarch64**. + 7. Right-click **openEuler-20.03-LTS-aarch64-dvd.iso** and choose **Copy URL** from the shortcut menu to copy the address of the openEuler release package. + 8. Right-click **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** and choose **Copy URL** from the shortcut menu to copy the address of the openEuler verification file. + 9. Log in to the openEuler OS, create a directory \(for example, **/home/iso**\) for storing the release package and verification file, and switch to the directory. + + ``` + mkdir /home/iso + cd /home/iso + ``` + + 10. Run the **wget** command to remotely download the release package and verification file. In the command, **ipaddriso** and **ipaddrisosum** are the addresses copied in [1.g](#li62369349505) and [1.h](#li9236203405015). + + ``` + wget ipaddriso + wget ipaddrisosum + ``` + + +2. Release Package Integrity Check + 1. Obtain the verification value in the verification file. + + ``` + cat openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum + ``` + + 2. Calculate the SHA256 verification value of the openEuler release package. + + ``` + sha256sum openEuler-20.03-LTS-aarch64-dvd.iso + ``` + + After the command is run, the verification value is displayed. + + 3. Check whether the values calculated in step 1 and step 2 are consistent. + + If the verification values are consistent, the .iso file is not damaged. If they are inconsistent, the file is damaged and you need to obtain the file again. + +3. Mount the ISO image file and configure it as a repo source. + + Run the **mount** command to mount the image file. + + The following is an example: + + ``` + # mount /home/iso/openEuler-20.03-LTS-aarch64-dvd.iso /mnt/ + ``` + + The mounted **mnt** directory is as follows: + + ``` + . + │── boot.catalog + │── docs + │── EFI + │── images + │── Packages + │── repodata + │── TRANS.TBL + └── RPM-GPG-KEY-openEuler + ``` + + In the preceding command, **Packages** indicates the directory where the RPM package is stored, **repodata** indicates the directory where the repo source metadata is stored, and **RPM-GPG-KEY-openEuler** indicates the public key for signing openEuler. + + The mounted directory can be configured as the yum source. Create the \*\*\*.repo configuration file \(with the extension .repo\) in the **/etc/yum.repos.d/** directory. + + The following is an example: + + Create the openEuler.repo file in the **/etc/yum.repos.d** directory and use the local image mounting directory as the yum source. The content of the openEuler.repo file is as follows: + + ``` + [base] + name=base + baseurl=file:///mnt + enabled=1 + gpgcheck=1 + gpgkey=file:///mnt/RPM-GPG-KEY-openEuler + ``` + + **** + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- **gpgcheck** indicates whether to enable the GNU privacy guard \(GPG\) to check the validity and security of the source of RPM packages. **1** indicates that the GPG check is enabled. **0** indicates that the GPG check is disabled. If this option is not specified, the GPG check is enabled by default. + >- **gpgkey** is the storage path of the signed public key. + + diff --git a/content/en/docs/ApplicationDev/configuring-the-development-environment.md b/content/en/docs/ApplicationDev/configuring-the-development-environment.md new file mode 100644 index 0000000000000000000000000000000000000000..7723e984ba0dcfcabc414ab42c7d94ae10e0536f --- /dev/null +++ b/content/en/docs/ApplicationDev/configuring-the-development-environment.md @@ -0,0 +1,97 @@ +# Configuring the Development Environment + +- If physical machines \(PMs\) are used, the minimum hardware requirements of the development environment are described in [Table 1](#table154419352610). + + **Table 1** Minimum hardware specifications + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Minimum Hardware Specification

+

Description

+

Architecture

+
  • AArch64
  • x86_64
+
  • 64-bit Arm architecture
  • 64-bit Intel x86 architecture
+

CPU

+
  • Huawei Kunpeng 920 series
  • Intel ® Xeon® processor
+

-

+

Memory

+

≥ 4 GB (8 GB or higher recommended for better user experience)

+

-

+

Hard disk

+

≥ 120 GB (for better user experience)

+

IDE, SATA, SAS interfaces are supported.

+
+ +- If virtual machines \(VMs\) are used, the minimum virtualization space required for the development environment is described in [Table 2](#table780410493819). + + **Table 2** Minimum virtualization space + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Minimum Virtualization Space

+

Description

+

Architecture

+
  • AArch64
  • x86_64
+

-

+

CPU

+

Two CPUs

+

-

+

Memory

+

≥ 4 GB (8 GB or higher recommended for better user experience)

+

-

+

Hard disk

+

≥ 32 GB (120 GB or higher recommended for better user experience)

+

-

+
+ + +## OS Requirements + +The openEuler OS is required. + +For details about how to install the openEuler OS, see the _openEuler 20.03 LTS Installation Guide_. On the **SOFTWARE SELECTION** page, select **Development Tools** in the **Add-Ons for Selected Environment** area. + diff --git a/content/en/docs/ApplicationDev/creating-a-hello-world-rpm-package.md b/content/en/docs/ApplicationDev/creating-a-hello-world-rpm-package.md new file mode 100644 index 0000000000000000000000000000000000000000..aa254397fe145f649102941d5b6be07302766fda --- /dev/null +++ b/content/en/docs/ApplicationDev/creating-a-hello-world-rpm-package.md @@ -0,0 +1,6 @@ +# Creating a Hello World RPM Package + +The following uses the packaging process of the GNU Hello World project as an example. The package contains the most common peripheral components related to the typical Free and Open Source Software \(FOSS\) project, including the configuration, compilation, and installation environments, documents, and internationalization \(i18n\) information. + + + diff --git a/content/en/docs/ApplicationDev/downloading-and-installing-the-gtk-library.md b/content/en/docs/ApplicationDev/downloading-and-installing-the-gtk-library.md new file mode 100644 index 0000000000000000000000000000000000000000..1941d22d670fe4e3739a7b56d419d44d45050171 --- /dev/null +++ b/content/en/docs/ApplicationDev/downloading-and-installing-the-gtk-library.md @@ -0,0 +1,14 @@ +# Downloading and Installing the GTK Library + +Ensure that you have the **root** permission and run the following command: + +``` +# dnf list installed | grep gtk +``` + +If **gtk2** or **gtk3** is displayed, the GTK library has been installed. In this case, skip this step. Otherwise, run the following command to automatically download and install the GTK library: + +``` +# dnf -y install gtk2 libXtst libXrender xauth +``` + diff --git a/content/en/docs/ApplicationDev/downloading-and-running-intellij-idea.md b/content/en/docs/ApplicationDev/downloading-and-running-intellij-idea.md new file mode 100644 index 0000000000000000000000000000000000000000..244f5671a6cb521d86ab6c320040a440c7adb2c2 --- /dev/null +++ b/content/en/docs/ApplicationDev/downloading-and-running-intellij-idea.md @@ -0,0 +1,15 @@ +# Downloading and Running IntelliJ IDEA + +After the preceding environment configuration is complete, you can download and run the IntelliJ IDEA. The latest version of IntelliJ IDEA is incompatible with openEuler in some functions. You are advised to click [here](https://www.jetbrains.com/idea/download/other.html) and download the Linux package of the 2018 version. Move the downloaded package to the directory where you want to install the software and decompress the package. + +``` +# tar xf ideaIC-2018.3.tar.gz +``` + +Decompress the package, switch to the IntelliJ IDEA directory, and run the IntelliJ IDEA. + +``` +# cd ./idea-IC-183.4284.148 +# bin/idea.sh & +``` + diff --git a/content/en/docs/ApplicationDev/dynamic-link-library.md b/content/en/docs/ApplicationDev/dynamic-link-library.md new file mode 100644 index 0000000000000000000000000000000000000000..eb675fd6437959a03684626afa18eae112a745f4 --- /dev/null +++ b/content/en/docs/ApplicationDev/dynamic-link-library.md @@ -0,0 +1,44 @@ +# Dynamic Link Library + +You can use the **-shared** and **-fPIC** options to create a dynamic link library \(DLL\) with the source file, assembly file, or target file. The **-fPIC** option is used in the compilation phase. This option is used when the target file is generated, so as to generate location-independent code. + +Example 1: Generate a DLL from the source file. + +``` +gcc -fPIC -shared test.c -o libtest.so +``` + +Example 2: Generate a DLL from the target file. + +``` +gcc -fPIC -c test.c -o test.o +gcc -shared test.o -o libtest.so +``` + +To link a DLL to an executable file, you need to list the name of the DLL in the command line. + +Example: Compile **main.c** and **libtest.so** into **app.out**. When **app.out** is running, the link library **libtest.so** is dynamically loaded. + +``` +gcc main.c libtest.so -o app.out +``` + +In this mode, the **libtest.so** file in the current directory is used. + +If you choose to search for a DLL, to ensure that the DLL can be linked when the program is running, you must implement by using one of the following methods: + +- Save the DLL to a standard directory, for example, **/usr/lib**. +- Add the DLL path **libaryDIR** to the environment variable **LD\_LIBRARY\_PATH**. + + export LD\_LIBRARY\_PATH=libraryDIR:$LD\_LIBRARY\_PATH + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >**LD\_LIBRARY\_PATH** is an environment variable of the DLL. If the DLL is not in the default directories \(**/lib** and **/usr/lib**\), you need to specify the environment variable **LD\_LIBRARY\_PATH**. + +- Add the DLL path **libaryDIR** to **/etc/ld.so.conf** and run **ldconfig**, or use the DLL path **libaryDIR** as a parameter to run **ldconfig**. + +``` +gcc main.c -L libraryDIR -ltest -o app.out +export LD_LIBRARY_PATH=libraryDIR:$LD_LIBRARY_PATH +``` + diff --git a/content/en/docs/ApplicationDev/editing-the-spec-file.md b/content/en/docs/ApplicationDev/editing-the-spec-file.md new file mode 100644 index 0000000000000000000000000000000000000000..dfcc24bda30a819f1a5a82900758c62205275791 --- /dev/null +++ b/content/en/docs/ApplicationDev/editing-the-spec-file.md @@ -0,0 +1,73 @@ +# Editing the SPEC File + +Run the following command to create the .spec file: + +``` +# vi hello.spec +``` + +Write the corresponding content to the file and save the file. The following is an example of the file content. Modify the corresponding fields based on the actual requirements. + +``` +Name: hello +Version: 2.10 +Release: 1%{?dist} +Summary: The "Hello World" program from GNU +Summary(zh_CN): GNU Hello World program +License: GPLv3+ +URL: http://ftp.gnu.org/gnu/hello +Source0: http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gz + +BuildRequires: gettext +Requires(post): info +Requires(preun): info + +%description +The "Hello World" program, done with all bells and whistles of a proper FOSS +project, including configuration, build, internationalization, help files, etc. + +%description -l zh_CN +The Hello World program contains all parts required by the FOSS project, including configuration, build, i18n, and help files. + +%prep +%setup -q + +%build +%configure +make %{?_smp_mflags} + +%install +make install DESTDIR=%{buildroot} +%find_lang %{name} +rm -f %{buildroot}/%{_infodir}/dir + +%post +/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || : + +%preun +if [ $1 = 0 ] ; then +/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || : +fi + +%files -f %{name}.lang +%doc AUTHORS ChangeLog NEWS README THANKS TODO +%license COPYING +%{_mandir}/man1/hello.1.* +%{_infodir}/hello.info.* +%{_bindir}/hello + +%changelog +* Thu Dec 26 2019 Your Name - 2.10-1 +- Update to 2.10 +* Sat Dec 3 2016 Your Name - 2.9-1 +- Update to 2.9 +``` + +- The **Name** tag indicates the software name, the **Version** tag indicates the version number, and the **Release** tag indicates the release number. +- The **Summary** tag is a brief description. The first letter of the tag must be capitalized to prevent the rpmlint tool \(packaging check tool\) from generating alarms. +- The **License** tag describes the protocol version of the software package. The packager is responsible for checking the license status of the software, which can be implemented by checking the source code or license file or communicating with the author. +- The **Group** tag is used to classify software packages by **/usr/share/doc/rpm-/GROUPS**. Currently, this tag has been discarded. However, the VIM template still has this tag. You can delete it. However, adding this tag does not affect the system. The **%changelog** tag should contain the log of changes made for each release, especially the description of the upstream security/vulnerability patches. The **%changelog** tag should contain the version string to avoid the rpmlint tool from generating alarms. +- If multiple lines are involved, such as %changelog or %description, start from the next line of the instruction and end with a blank line. +- Some unnecessary lines \(such as BuildRequires and Requires\) can be commented out with a number sign \(\#\) at the beginning of the lines. +- The default values of **%prep**, **%build**, **%install**, and **%file** are retained. + diff --git a/content/en/docs/ApplicationDev/en-us_bookmap_0229243731.md b/content/en/docs/ApplicationDev/en-us_bookmap_0229243731.md new file mode 100644 index 0000000000000000000000000000000000000000..fffffa3534f09fa30fb58e267f5bfd47bdb30d39 --- /dev/null +++ b/content/en/docs/ApplicationDev/en-us_bookmap_0229243731.md @@ -0,0 +1,89 @@ +# Application Development Guide + +- [Terms of Use](terms-of-use.md) +- [About This Document ](about-this-document.md) +- [Preparation](preparation.md) + - [Configuring the Development Environment](configuring-the-development-environment.md) + - [Configuring a Repo Source](configuring-a-repo-source.md) + - [Installing the Software Package](installing-the-software-package.md) + - [Installing the JDK Software Package](installing-the-jdk-software-package.md) + - [Installing the rpm-build Software Package](installing-the-rpm-build-software-package.md) + + - [Using the IDE for Java Development](using-the-ide-for-java-development.md) + - [Overview](overview.md) + - [Logging In to the Server Using MobaXterm](logging-in-to-the-server-using-mobaxterm.md) + - [Setting the JDK Environment](setting-the-jdk-environment.md) + - [Downloading and Installing the GTK Library](downloading-and-installing-the-gtk-library.md) + - [Setting X11 Forwarding](setting-x11-forwarding.md) + - [Downloading and Running IntelliJ IDEA](downloading-and-running-intellij-idea.md) + + +- [Using GCC for Compilation](using-gcc-for-compilation.md) + - [Overview](overview-0.md) + - [Basics](basics.md) + - [File Type](file-type.md) + - [Compilation Process](compilation-process.md) + - [Compilation Options](compilation-options.md) + - [Multi-file Compilation](multi-file-compilation.md) + + - [Libraries](libraries.md) + - [Dynamic Link Library](dynamic-link-library.md) + - [Static Link Library](static-link-library.md) + + - [Examples](examples.md) + - [Example for Using GCC to Compile C Programs](example-for-using-gcc-to-compile-c-programs.md) + - [Example for Creating and Using a DLL Using GCC](example-for-creating-and-using-a-dll-using-gcc.md) + - [Example for Creating and Using an SLL Using GCC](example-for-creating-and-using-an-sll-using-gcc.md) + + +- [Using Make for Compilation](using-make-for-compilation.md) + - [Overview](overview-1.md) + - [Basics](basics-2.md) + - [File Type](file-type-3.md) + - [make Work Process](make-work-process.md) + - [make Options](make-options.md) + + - [Makefiles](makefiles.md) + - [Examples](examples-4.md) + - [Example of Using Makefile to Implement Compilation](example-of-using-makefile-to-implement-compilation.md) + + +- [Using JDK for Compilation](using-jdk-for-compilation.md) + - [Overview](overview-5.md) + - [Basics](basics-6.md) + - [File Type and Tool](file-type-and-tool.md) + - [Java Program Generation Process](java-program-generation-process.md) + - [Common JDK Options](common-jdk-options.md) + + - [Class Library](class-library.md) + - [Examples](examples-7.md) + - [Compiling a Java Program Without a Package](compiling-a-java-program-without-a-package.md) + - [Compiling a Java Program with a Package](compiling-a-java-program-with-a-package.md) + + +- [Building an RPM Package](building-an-rpm-package.md) + - [Packaging Description](packaging-description.md) + - [Building an RPM Package Locally](building-an-rpm-package-locally.md) + - [Setting Up the Development Environment](setting-up-the-development-environment.md) + - [Creating a Hello World RPM Package](creating-a-hello-world-rpm-package.md) + - [Obtaining the Source Code](obtaining-the-source-code.md) + - [Editing the SPEC File](editing-the-spec-file.md) + - [Building an RPM Package](building-an-rpm-package-8.md) + + + - [Building an RPM Package Using the OBS](building-an-rpm-package-using-the-obs.md) + - [OBS Overview](obs-overview.md) + - [Building an RPM Software Package Online](building-an-rpm-software-package-online.md) + - [Building an Existing Software Package](building-an-existing-software-package.md) + - [Adding a Software Package](adding-a-software-package.md) + - [Obtaining the Software Package](obtaining-the-software-package.md) + + - [Building a Software Package Using OSC](building-a-software-package-using-osc.md) + - [Installing and Configuring the OSC](installing-and-configuring-the-osc.md) + - [Building an Existing Software Package](building-an-existing-software-package-9.md) + - [Adding a Software Package](adding-a-software-package-10.md) + - [Obtaining the Software Package](obtaining-the-software-package-11.md) + + + + diff --git a/content/en/docs/ApplicationDev/example-for-creating-and-using-a-dll-using-gcc.md b/content/en/docs/ApplicationDev/example-for-creating-and-using-a-dll-using-gcc.md new file mode 100644 index 0000000000000000000000000000000000000000..9b647ae64416bcccbc46afa5cb21afe4725fc0f4 --- /dev/null +++ b/content/en/docs/ApplicationDev/example-for-creating-and-using-a-dll-using-gcc.md @@ -0,0 +1,113 @@ +# Example for Creating and Using a DLL Using GCC + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. Create the **src**, **lib**, and **include** subdirectories in the directory to store the source file, DLL file, and header file, respectively. + + ``` + cd /home/code + mkdir src + mkdir lib + mkdir include + ``` + +2. Run the **cd** command to go to the **/home/code/src** directory and create two functions **add.c** and **sub.c** to implement addition and subtraction, respectively. + + ``` + cd /home/code/src + vi add.c + vi sub.c + ``` + + The following is an example of the **add.c** code: + + ``` + #include "math.h" + int add(int a, int b) + { + return a+b; + } + ``` + + The following is an example of the **sub.c** code: + + ``` + #include "math.h" + int sub(int a, int b) + { + return a-b; + } + ``` + +3. Compile the source files add.c and sub.c into the DLL libmath.so, and store the DLL in the **/home/code/lib** directory. + + ``` + gcc -fPIC -shared add.c sub.c -o /home/code/lib/libmath.so + ``` + +4. Go to the **/home/code/include** directory, create a header file **math.h**, and declare the header file of the function. + + ``` + cd /home/code/include + vi math.h + ``` + + The following is an example of the **math.h** code: + + ``` + #ifndef __MATH_H_ + #define __MATH_H_ + int add(int a, int b); + int sub(int a, int b); + #endif + ``` + +5. Run the **cd** command to go to the **/home/code/src** directory and create a **main.c** function that invokes add\(\) and sub\(\). + + ``` + cd /home/code/src + vi main.c + ``` + + The following is an example of the **math.c** code: + + ``` + #include + #include "math.h" + int main() + { + int a, b; + printf("Please input a and b:\n"); + scanf("%d %d", &a, &b); + printf("The add: %d\n", add(a,b)); + printf("The sub: %d\n", sub(a,b)); + return 0; + } + ``` + +6. Compile **main.c** and **libmath.so** into **math.out**. + + ``` + gcc main.c -I /home/code/include -L /home/code/lib -lmath -o math.out + ``` + +7. Add the path of the DLL to the environment variable. + + ``` + export LD_LIBRARY_PATH=/home/code/lib:$LD_LIBRARY_PATH + ``` + +8. Run the following command to execute **math.out**: + + ``` + ./math.out + ``` + + The command output is as follows: + + ``` + Please input a and b: + 9 2 + The add: 11 + The sub: 7 + ``` + + diff --git a/content/en/docs/ApplicationDev/example-for-creating-and-using-an-sll-using-gcc.md b/content/en/docs/ApplicationDev/example-for-creating-and-using-an-sll-using-gcc.md new file mode 100644 index 0000000000000000000000000000000000000000..1795ed2beaa6f707ecba67d8ab5e8a75a18219f5 --- /dev/null +++ b/content/en/docs/ApplicationDev/example-for-creating-and-using-an-sll-using-gcc.md @@ -0,0 +1,113 @@ +# Example for Creating and Using an SLL Using GCC + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. Create the **src**, **lib**, and **include** subdirectories in the directory to store the source file, SLL file, and header file respectively. + + ``` + cd /home/code + mkdir src + mkdir lib + mkdir include + ``` + +2. Run the **cd** command to go to the **/home/code/src** directory and create two functions **add.c** and **sub.c** to implement addition and subtraction, respectively. + + ``` + cd /home/code/src + vi add.c + vi sub.c + ``` + + The following is an example of the **add.c** code: + + ``` + #include "math.h" + int add(int a, int b) + { + return a+b; + } + ``` + + The following is an example of the **sub.c** code: + + ``` + #include "math.h" + int sub(int a, int b) + { + return a-b; + } + ``` + +3. Compile the source files **add.c** and **sub.c** into the target files **add.o** and **sub.o**. + + ``` + gcc -c add.c sub.c + ``` + +4. Run the **ar** command to compress the **add.o** and **sub.o** target files into the SLL **libmath.a** and save the SLL to the **/home/code/lib** directory. + + ``` + ar rcs /home/code/lib/libmath.a add.o sub.o + ``` + +5. Go to the **/home/code/include** directory, create a header file **math.h**, and declare the header file of the function. + + ``` + cd /home/code/include + vi math.h + ``` + + The following is an example of the **math.h** code: + + ``` + #ifndef __MATH_H_ + #define __MATH_H_ + int add(int a, int b); + int sub(int a, int b); + #endif + ``` + +6. Run the **cd** command to go to the **/home/code/src** directory and create a **main.c** function that invokes add\(\) and sub\(\). + + ``` + cd /home/code/src + vi main.c + ``` + + The following is an example of the **math.c** code: + + ``` + #include + #include "math.h" + int main() + { + int a, b; + printf("Please input a and b:\n"); + scanf("%d %d", &a, &b); + printf("The add: %d\n", add(a,b)); + printf("The sub: %d\n", sub(a,b)); + return 0; + } + ``` + +7. Compile **main.c** and **libmath.a** into **math.out**. + + ``` + gcc main.c -I /home/code/include -L /home/code/lib -lmath -o math.out + ``` + +8. Run the following command to execute **math.out**: + + ``` + ./math.out + ``` + + The command output is as follows: + + ``` + Please input a and b: + 9 2 + The add: 11 + The sub: 7 + ``` + + diff --git a/content/en/docs/ApplicationDev/example-for-using-gcc-to-compile-c-programs.md b/content/en/docs/ApplicationDev/example-for-using-gcc-to-compile-c-programs.md new file mode 100644 index 0000000000000000000000000000000000000000..e048508e309700eb65419adccef445770b24a6c9 --- /dev/null +++ b/content/en/docs/ApplicationDev/example-for-using-gcc-to-compile-c-programs.md @@ -0,0 +1,41 @@ +# Example for Using GCC to Compile C Programs + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. The command is as follows: + + ``` + cd /home/code + ``` + +2. Compile the Hello World program and save it as **helloworld.c**. The following uses the Hello World program as an example. The command is as follows: + + ``` + vi helloworld.c + ``` + + Code example: + + ``` + #include + int main() + { + printf("Hello World!\n"); + return 0; + } + ``` + +3. Run the following command to compile the code in the code directory: + + ``` + gcc helloworld.c -o helloworld + ``` + + If no error is reported, the execution is successful. + +4. After the compilation is complete, the helloworld file is generated. Check the compilation result. The following is an example: + + ``` + # ./helloworld + Hello World! + ``` + + diff --git a/content/en/docs/ApplicationDev/example-of-using-makefile-to-implement-compilation.md b/content/en/docs/ApplicationDev/example-of-using-makefile-to-implement-compilation.md new file mode 100644 index 0000000000000000000000000000000000000000..a0ba03129a424ef9c44981abd884931d54c24850 --- /dev/null +++ b/content/en/docs/ApplicationDev/example-of-using-makefile-to-implement-compilation.md @@ -0,0 +1,100 @@ +# Example of Using Makefile to Implement Compilation + +1. Run the **cd** command to go to the code directory. The **/home/code** directory is used as an example. + + ``` + cd /home/code + ``` + +2. Create a header file **hello.h** and two functions **hello.c** and **main.c**. + + ``` + cd /home/code/ + ``` + + The following is an example of the **hello.h** code: + + ``` + #pragma once + #include + void hello(); + ``` + + The following is an example of the **hello.c** code: + + ``` + #include "hello.h" + void hello() + { + int i=1; + while(i<5) + { + printf("The %dth say hello.\n", i); + i++; + } + } + + ``` + + The following is an example of the **main.c** code: + + ``` + #include "hello.h" + #include + int main() + { + hello(); + return 0; + } + ``` + +3. Create the makefile. + + ``` + vi Makefile + ``` + + The following provides an example of the makefile content: + + ``` + main:main.o hello.o + gcc -o main main.o hello.o + main.o:main.c + gcc -c main.c + hello.o:hello.c + gcc -c hello.c + clean: + rm -f hello.o main.o main + ``` + +4. Run the **make** command. + + ``` + make + ``` + + After the command is executed, the commands executed in makefile are printed. If you do not need to print the information, add the **-s** option to the **make** command. + + gcc -c main.c + + gcc -c hello.c + + gcc -o main main.o hello.o + +5. Execute the ./main target. + + ``` + ./main + ``` + + After the command is executed, the following information is displayed: + + The 1th say hello. + + The 2th say hello. + + The 3th say hello. + + The 4th say hello. + + diff --git a/content/en/docs/ApplicationDev/examples-4.md b/content/en/docs/ApplicationDev/examples-4.md new file mode 100644 index 0000000000000000000000000000000000000000..cd7ebbac8a757120ef65f243abc10cec8cd42b90 --- /dev/null +++ b/content/en/docs/ApplicationDev/examples-4.md @@ -0,0 +1,4 @@ +# Examples + + + diff --git a/content/en/docs/ApplicationDev/examples-7.md b/content/en/docs/ApplicationDev/examples-7.md new file mode 100644 index 0000000000000000000000000000000000000000..6b24ed38cbc4936c4adb56ca9863b4448e6fe89c --- /dev/null +++ b/content/en/docs/ApplicationDev/examples-7.md @@ -0,0 +1,4 @@ +# Examples + + + diff --git a/content/en/docs/ApplicationDev/examples.md b/content/en/docs/ApplicationDev/examples.md new file mode 100644 index 0000000000000000000000000000000000000000..3653c88ec318c1fa7a90640da65ba84b0e8e4bb1 --- /dev/null +++ b/content/en/docs/ApplicationDev/examples.md @@ -0,0 +1,4 @@ +# Examples + + + diff --git a/content/en/docs/ApplicationDev/figures/add-file-page.png b/content/en/docs/ApplicationDev/figures/add-file-page.png new file mode 100644 index 0000000000000000000000000000000000000000..83f0bfaeeb9227bcbb863a93ab8d3535e2b2bc1d Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/add-file-page.png differ diff --git a/content/en/docs/ApplicationDev/figures/branch-confirmation-page.png b/content/en/docs/ApplicationDev/figures/branch-confirmation-page.png new file mode 100644 index 0000000000000000000000000000000000000000..e66cbcd22217b74785381b85128ea61895194882 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/branch-confirmation-page.png differ diff --git a/content/en/docs/ApplicationDev/figures/create-package-page.png b/content/en/docs/ApplicationDev/figures/create-package-page.png new file mode 100644 index 0000000000000000000000000000000000000000..36ea525856d428b6f88a338202e7cb59b2204fc0 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/create-package-page.png differ diff --git a/content/en/docs/ApplicationDev/figures/creating-a-software-package.png b/content/en/docs/ApplicationDev/figures/creating-a-software-package.png new file mode 100644 index 0000000000000000000000000000000000000000..f983809e8288f3c2ba7e951b60a3ca3a0f18775a Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/creating-a-software-package.png differ diff --git a/content/en/docs/ApplicationDev/figures/deleting-a-software-package-from-a-subproject.png b/content/en/docs/ApplicationDev/figures/deleting-a-software-package-from-a-subproject.png new file mode 100644 index 0000000000000000000000000000000000000000..a365cd1f46bfb8bec094b79477c0168861a5193b Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/deleting-a-software-package-from-a-subproject.png differ diff --git a/content/en/docs/ApplicationDev/figures/en-us_image_0229243671.png b/content/en/docs/ApplicationDev/figures/en-us_image_0229243671.png new file mode 100644 index 0000000000000000000000000000000000000000..a32856aa08e459ed0f51f8fcf4c2f51511c12095 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/en-us_image_0229243671.png differ diff --git a/content/en/docs/ApplicationDev/figures/en-us_image_0229243702.png b/content/en/docs/ApplicationDev/figures/en-us_image_0229243702.png new file mode 100644 index 0000000000000000000000000000000000000000..96096879d161f04750a332e5c749a834c49d3173 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/en-us_image_0229243702.png differ diff --git a/content/en/docs/ApplicationDev/figures/en-us_image_0229243704.png b/content/en/docs/ApplicationDev/figures/en-us_image_0229243704.png new file mode 100644 index 0000000000000000000000000000000000000000..267bc9508f3a065b5b40c367e745f0d8c3ddb5fa Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/en-us_image_0229243704.png differ diff --git a/content/en/docs/ApplicationDev/figures/en-us_image_0229243712.png b/content/en/docs/ApplicationDev/figures/en-us_image_0229243712.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5a343524e14d11a3e2a94be4066fbb2d20599e Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/en-us_image_0229243712.png differ diff --git a/content/en/docs/ApplicationDev/figures/repositories-page.png b/content/en/docs/ApplicationDev/figures/repositories-page.png new file mode 100644 index 0000000000000000000000000000000000000000..c64bfdd1bca838c5b72fa7bb7d73b525e8be79f6 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/repositories-page.png differ diff --git a/content/en/docs/ApplicationDev/figures/rpm-software-package-download-page.png b/content/en/docs/ApplicationDev/figures/rpm-software-package-download-page.png new file mode 100644 index 0000000000000000000000000000000000000000..e5663b6259982541ae9350701326665f3dee43f6 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/rpm-software-package-download-page.png differ diff --git a/content/en/docs/ApplicationDev/figures/succeeded-page.png b/content/en/docs/ApplicationDev/figures/succeeded-page.png new file mode 100644 index 0000000000000000000000000000000000000000..3f10cd1db8bdc9be1ab8b660ef93e8a481c2d6b8 Binary files /dev/null and b/content/en/docs/ApplicationDev/figures/succeeded-page.png differ diff --git a/content/en/docs/ApplicationDev/file-type-3.md b/content/en/docs/ApplicationDev/file-type-3.md new file mode 100644 index 0000000000000000000000000000000000000000..dfb9775f7c36f698039d57879a5bacd52fc9ba92 --- /dev/null +++ b/content/en/docs/ApplicationDev/file-type-3.md @@ -0,0 +1,76 @@ +# File Type + +[Table 1](#table634145764320) describes the file types that may be used in the makefiles file. + +**Table 1** 文件类型 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Extension (Suffix)

+

Description

+

.c

+

C source code file.

+

.C, .cc, or .cxx

+

C++ source code file.

+

.m

+

Objective-C source code file.

+

.s

+

Assembly language source code file.

+

.i

+

Preprocessed C source code file.

+

.ii

+

Preprocessed C++ source code file.

+

.S

+

Pre-processed assembly language source code file.

+

.h

+

Header file contained in the program.

+

.o

+

Target file after compilation.

+

.so

+

Dynamic link library, which is a special target file.

+

.a

+

Static link library.

+

.out

+

Executable files, which do not have a fixed suffix. The system distinguishes executable files from unexecutable files based on file attributes. If the name of an executable file is not given, GCC generates a file named a.out.

+
+ diff --git a/content/en/docs/ApplicationDev/file-type-and-tool.md b/content/en/docs/ApplicationDev/file-type-and-tool.md new file mode 100644 index 0000000000000000000000000000000000000000..2d74b7b23fc2652e49ccf376273514620b151b10 --- /dev/null +++ b/content/en/docs/ApplicationDev/file-type-and-tool.md @@ -0,0 +1,58 @@ +# File Type and Tool + +For any given input file, the file type determines which tool to use for processing. The common file types and tools are described in [Table 1](#table634145764320) and [Table 2](#table103504146433). + +**Table 1** Common JDK file types + + + + + + + + + + + + + + + + +

Extension (Suffix)

+

Description

+

.java

+

Java source code file.

+

.class

+

Java bytecode file, which is intermediate code irrelevant to any specific machine or OS environment. It is a binary file, which is the target code file generated after the Java source file is compiled by the Java compiler.

+

.jar

+

JAR package of Java files.

+
+ +**Table 2** Common JDK tools + + + + + + + + + + + + + + + + +

Name

+

Description

+

java

+

Java running tool, which is used to run .class bytecode files or .jar files.

+

javac

+

Compiles Java source code files into .class bytecode files.

+

jar

+

Creates and manages JAR files.

+
+ diff --git a/content/en/docs/ApplicationDev/file-type.md b/content/en/docs/ApplicationDev/file-type.md new file mode 100644 index 0000000000000000000000000000000000000000..30849bf1b1c7e508939baa06ae55ff75aea11c20 --- /dev/null +++ b/content/en/docs/ApplicationDev/file-type.md @@ -0,0 +1,76 @@ +# File Type + +For any given input file, the file type determines which compilation to perform. [Table 1](#table634145764320) describes the common GCC file types. + +**Table 1** Common GCC file types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Extension (Suffix)

+

Description

+

.c

+

C source code file.

+

.C, .cc, or .cxx

+

C++ source code file.

+

.m

+

Objective-C source code file.

+

.s

+

Assembly language source code file.

+

.i

+

Preprocessed C source code file.

+

.ii

+

Preprocessed C++ source code file.

+

.S

+

Pre-processed assembly language source code file.

+

.h

+

Header file contained in the program.

+

.o

+

Target file after compilation.

+

.so

+

Dynamic link library, which is a special target file.

+

.a

+

Static link library.

+

.out

+

Executable files, which do not have a fixed suffix. The system distinguishes executable files from unexecutable files based on file attributes. If the name of an executable file is not given, GCC generates a file named a.out.

+
+ diff --git a/content/en/docs/ApplicationDev/installing-and-configuring-the-osc.md b/content/en/docs/ApplicationDev/installing-and-configuring-the-osc.md new file mode 100644 index 0000000000000000000000000000000000000000..b67d276a6d923c2666728a3f0d7c2e0e2b5dc97a --- /dev/null +++ b/content/en/docs/ApplicationDev/installing-and-configuring-the-osc.md @@ -0,0 +1,43 @@ +# Installing and Configuring the OSC + +## Prerequisites + +You have obtained the **root** permission, and have configured a repo source for openEuler. + +## Procedure + +1. Install the OSC command line tool and its dependency as the **root** user. + + ``` + # dnf install osc build + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The compilation of RPM software packages depends on build. + +2. Configure the OSC. + 1. Run the following command to open the **\~/.oscrc** file: + + ``` + # vi ~/.oscrc + ``` + + 2. Add the **user** and **pass** fields to **\~/.oscrc**. The values of _userName_ and _passWord_ are the account and password registered on the OBS website \([http://openeuler-build.huawei.com/](http://openeuler-build.huawei.com/)\). + + ``` + [general] + apiurl = http://openeuler-build.huawei.com/ + no_verify = 1 + [http://openeuler-build.huawei.com/] + user=userName + pass=passWord + ``` + + 3. If the domain name **openeuler-build.openeuler.org** cannot be resolved, manually add the following line to the **/etc/hosts** file: _ip-address_ indicates the IP address of OBS, which is http://117.78.1.88/. + + ``` + ip-address openeuler-build.openeuler.org + ``` + + + diff --git a/content/en/docs/ApplicationDev/installing-the-jdk-software-package.md b/content/en/docs/ApplicationDev/installing-the-jdk-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..1c3e3e927f9dfc4d764c9b2642b76ad2036844a5 --- /dev/null +++ b/content/en/docs/ApplicationDev/installing-the-jdk-software-package.md @@ -0,0 +1,45 @@ +# Installing the JDK Software Package + +1. Run the **dnf list installed | grep jdk** command to check whether the JDK software is installed. + + ``` + dnf list installed | grep jdk + ``` + + Check the command output. If the command output contains "jdk", the JDK has been installed. If no such information is displayed, the software is not installed. + +2. Clear the cache. + + ``` + dnf clean all + ``` + +3. Create a cache. + + ``` + dnf makecache + ``` + +4. Query the JDK software package that can be installed. + + ``` + dnf search jdk | grep jdk + ``` + + View the command output and install the **java-x.x.x-openjdk-devel.aarch64** software package. **x.x.x** indicates the version number. + +5. Install the JDK software package. The following uses the **java-1.8.0-openjdk-devel** software package as an example. + + ``` + dnf install java-1.8.0-openjdk-devel.aarch64 + ``` + +6. Query information about the JDK software. + + ``` + java -version + ``` + + Check the command output. If the command output contains "openjdk version "1.8.0\_232"", the JDK has been correctly installed. In the command output, **1.8.0\_232** indicates the JDK version. + + diff --git a/content/en/docs/ApplicationDev/installing-the-rpm-build-software-package.md b/content/en/docs/ApplicationDev/installing-the-rpm-build-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..fb946041ead7cc0deb96106fbc179eb0a00bab3d --- /dev/null +++ b/content/en/docs/ApplicationDev/installing-the-rpm-build-software-package.md @@ -0,0 +1,35 @@ +# Installing the rpm-build Software Package + +1. Run the **dnf list installed | grep rpm-build** command to check whether the rpm-build software is installed. + + ``` + dnf list installed | grep rpm-build + ``` + + Check the command output. If the command output contains "rpm-build", the software has been installed. If no such information is displayed, the software is not installed. + +2. Clear the cache. + + ``` + dnf clean all + ``` + +3. Create a cache. + + ``` + dnf makecache + ``` + +4. Install the rpm-build package. + + ``` + dnf install rpm-build + ``` + +5. Query the rpm-build software version. + + ``` + rpmbuild --version + ``` + + diff --git a/content/en/docs/ApplicationDev/installing-the-software-package.md b/content/en/docs/ApplicationDev/installing-the-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..490e955ff93130d03cdd2f151efa21e0cb5b2744 --- /dev/null +++ b/content/en/docs/ApplicationDev/installing-the-software-package.md @@ -0,0 +1,6 @@ +# Installing the Software Package + +Install the software required for development. The software required varies in different development environments. However, the installation methods are the same. This section describes how to install common software packages \(such as JDK and rpm-build\). Some development software, such as GCC and GNU make, is provided by the openEuler OS by default. + + + diff --git a/content/en/docs/ApplicationDev/java-program-generation-process.md b/content/en/docs/ApplicationDev/java-program-generation-process.md new file mode 100644 index 0000000000000000000000000000000000000000..4194ad4abb962df08006d180fc92db46a51857fe --- /dev/null +++ b/content/en/docs/ApplicationDev/java-program-generation-process.md @@ -0,0 +1,7 @@ +# Java Program Generation Process + +To generate a program from Java source code files and run the program using Java, compilation and run are required. + +1. Compilation: Use the Java compiler \(javac\) to compile Java source code files \(.java files\) into .class bytecode files. +2. Run: Execute the bytecode files on the Java virtual machine \(JVM\). + diff --git a/content/en/docs/ApplicationDev/libraries.md b/content/en/docs/ApplicationDev/libraries.md new file mode 100644 index 0000000000000000000000000000000000000000..6301afcd9a0805c0f15db6a65cb839f2a5734440 --- /dev/null +++ b/content/en/docs/ApplicationDev/libraries.md @@ -0,0 +1,26 @@ +# Libraries + +A library is mature and reusable code that has been written for use. Each program depends on many basic underlying libraries. + +The library file name is prefixed with lib and suffixed with .so \(dynamic library\) or .a \(static library\). The middle part is the user-defined library file name, for example, libfoo.so or libfoo.a. Because all library files comply with the same specifications, the **lib** prefix can be omitted when the **-l** option specifies the name of the linked library file. That is, when GCC processes **-lfoo**, the library file **libfoo.so** or **libfoo.a** is automatically linked. When creating a library, you must specify the full file name **libfoo.so** or **libfoo.a**. + +Libraries are classified into static libraries and dynamic libraries based on the linking time. The static library links and packs the target file .o generated by assembly and the referenced library into an executable file in the linking phase. The dynamic library is not linked to the target code when the program is compiled, but is loaded when the program is run. The differences are as follows: + +- The resource usage is different. + + The static library is a part of the generated executable file, while the dynamic library is a separate file. Therefore, the sizes and occupied disk space of the executable files of the static library and dynamic library are different, which leads to different resource usage. + +- The scalability and compatibility are different. + + If the implementation of a function in the static library changes, the executable file must be recompiled. For the executable file generated by dynamic linking, only the dynamic library needs to be updated, and the executable file does not need to be recompiled. + +- The dependency is different. + + The executable file of the static library can run without depending on any other contents, while the executable file of the dynamic library must depend on the dynamic library. Therefore, the static library is convenient to migrate. + +- The loading speeds are different. + + Static libraries are linked together with executable files, while dynamic libraries are linked only when they are loaded or run. Therefore, for the same program, static linking is faster than dynamic linking. + + + diff --git a/content/en/docs/ApplicationDev/logging-in-to-the-server-using-mobaxterm.md b/content/en/docs/ApplicationDev/logging-in-to-the-server-using-mobaxterm.md new file mode 100644 index 0000000000000000000000000000000000000000..b76c4a98796e4ed239b880269f3213519628c5f3 --- /dev/null +++ b/content/en/docs/ApplicationDev/logging-in-to-the-server-using-mobaxterm.md @@ -0,0 +1,6 @@ +# Logging In to the Server Using MobaXterm + +MobaXterm is an excellent SSH client. It has an X Server and can easily solve remote GUI display problems. + +You need to download, install, and start MobaXterm in advance, and then log in to your server in SSH mode to perform the following operations: + diff --git a/content/en/docs/ApplicationDev/make-options.md b/content/en/docs/ApplicationDev/make-options.md new file mode 100644 index 0000000000000000000000000000000000000000..8fea1b75a6438b59ebb0b4d7997db836d82476d9 --- /dev/null +++ b/content/en/docs/ApplicationDev/make-options.md @@ -0,0 +1,106 @@ +# make Options + +make command format: **make** \[_option_\]... \[_targe_t\]... + +In the preceding command: + +_option_: parameter option. + +_target_: target specified in Makefile. + +[Table 1](#table261872312343) describes the common make options. + +**Table 1** Common make options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

options Value

+

Description

+

-C dir, --directory=dir

+

Specifies dir as the working directory after the make command starts to run.

+

When there are multiple -C options, the final working directory of make is the relative path of the first directory.

+

-d

+

Displays all debugging information during execution of the make command. You can use the -d option to display all the information during the construction of the dependency chain and the reconstruction of the target.

+

-e, --environment-overrides

+

Overwrites the variable definition with the same name in Makefile with the environment variable definition.

+

-f file, --file=file,

+

--makefile=file

+

Specifies the file as the Makefile for the make command.

+

-p, --help

+

Displays help information.

+

-i, --ignore-errors

+

Ignores the errors occurred during the execution.

+

-k, --keep-going

+

When an error occurs during command execution, the make command is not terminated. The make command executes all commands as many as possible until a known error occurs.

+

-n, --just-print, --dry-run

+

Simulates the execution of commands (including the commands starting with @) in the actual execution sequence. This command is used only to display the execution process and has no actual execution effect.

+

-o file, --old-file=file, --assume-old=file

+

The specified file does not need to be rebuilt even if its dependency has expired, and no target of this dependency file is rebuilt.

+

-p, --print-date-base

+

Before the command is executed, all data of Makefile read by make and the version information of make are printed. If you only need to print the data, run the make -qp command to view the preset rules and variables before the make command is executed. You can run the make -p -f /dev/null command.

+

-r, --no-builtin-rules

+

Ignores the use of embedded implicit rules and the implicit suffix list of all suffix rules.

+

-R, --no-builtin-variabes

+

Ignores embedded hidden variables.

+

-s, --silent, --quiet

+

Cancels the printing during the command execution.

+

-S, --no-keep-going, --stop

+

Cancels the -k option. In the recursive make process, the sub-make inherits the upper-layer command line option through the MAKEFLAGS variable. You can use the -S option in the sub-make to cancel the -k option transferred by the upper-layer command, or cancel the -k option in the system environment variable MAKEFLAGS.

+

-t, --touch

+

Updates the timestamp of all target files to the current system time. Prevents make from rebuilding all outdated target files.

+

-v, version

+

Displays the make version.

+
+ diff --git a/content/en/docs/ApplicationDev/make-work-process.md b/content/en/docs/ApplicationDev/make-work-process.md new file mode 100644 index 0000000000000000000000000000000000000000..d742d7b34bc2046d77b31ae92500533cf6b6ddd8 --- /dev/null +++ b/content/en/docs/ApplicationDev/make-work-process.md @@ -0,0 +1,10 @@ +# make Work Process + +The process of deploying make to generate an executable file from the source code file is described as follows: + +1. The make command reads the Makefiles, including the files named GNUmakefile, makefile, and Makefile in the current directory, the included makefile, and the rule files specified by the **-f**, **--file**, and **--makefile** options. +2. Initialize variables. +3. Derive implicit rules, analyze dependencies, and create a dependency chain. +4. Determine which targets need to be regenerated based on the dependency chain. +5. Run a command to generate the final file. + diff --git a/content/en/docs/ApplicationDev/makefiles.md b/content/en/docs/ApplicationDev/makefiles.md new file mode 100644 index 0000000000000000000000000000000000000000..c52aa64ce00d6f029f19285a0faa7fe5b304a906 --- /dev/null +++ b/content/en/docs/ApplicationDev/makefiles.md @@ -0,0 +1,55 @@ +# Makefiles + +Make is a tool that uses makefiles for compilation, linking, installation, and cleanup, so as to generate executable files and other related files from source code files. Therefore, makefiles describe the compilation and linking rules of the entire project, including which files need to be compiled, which files do not need to be compiled, which files need to be compiled first, which files need to be compiled later, and which files need to be rebuilt. The makefiles automate project compilation. You do not need to manually enter a large number of source files and parameters each time. + +This chapter describes the structure and main contents of makefiles. For more information about makefiles, run the **info make** command. + +## Makefile Structure + +The makefile file structure is as follows: + +_targets_:_prereguisites_ + +_command_ + +or + +_targets_:_prerequisites_;_command_ + +_command_ + +In the preceding information: + +- _targets_: targets, which can be target files, executable files, or tags. +- _prerequisites_: dependency files, which are the files or targets required for generating the _targets_. There can be multiple or none of them. +- _command_: command \(any shell command\) to be executed by make. Multiple commands are allowed, and each command occupies a line. +- Use colons \(:\) to separate the target files from the dependency files. Press **Tab** at the beginning of each command line. + +The makefile file structure indicates the output target, the object on which the output target depends, and the command to be executed for generating the target. + +## Makefile Contents + +A makefile file consists of the following contents: + +- Explicit rule + + Specify the dependency, such as the file to be generated, dependency file, and generated command. + +- Implicit rule + + Specify the rule that is automatically derived by make. The make command supports the automatic derivation function. + +- Variable definition +- File indicator + + The file indicator consists of three parts: + + - Inclusion of other makefiles, for example, include xx.md + - Selective execution, for example, \#ifdef + - Definition of multiple command lines, for example, define...endef. \(define ... endef\) + +- Comment + + The comment starts with a number sign \(\#\). + + diff --git a/content/en/docs/ApplicationDev/multi-file-compilation.md b/content/en/docs/ApplicationDev/multi-file-compilation.md new file mode 100644 index 0000000000000000000000000000000000000000..15ef8724595f703a93165e84802200d96932957b --- /dev/null +++ b/content/en/docs/ApplicationDev/multi-file-compilation.md @@ -0,0 +1,23 @@ +# Multi-file Compilation + +There are two methods provided for compiling multiple source files. + +- Multiple source files are compiled at the same time. All files need to be recompiled during compilation. + + Example: Compile **test1.c** and **test2.c** and link them to the executable file **test**. + + ``` + gcc test1.c test2.c -o test + ``` + +- Compile each source file, and then link the target files generated after compilation. During compilation, only modified files need to be recompiled. + + For example, compile **test1.c** and **test2.c**, and link the target files **test1.o** and **test2.o** to the executable file **test**. + + ``` + gcc -c test1.c + gcc -c test2.c + gcc -o test1.o test2.o -o test + ``` + + diff --git a/content/en/docs/ApplicationDev/obs-overview.md b/content/en/docs/ApplicationDev/obs-overview.md new file mode 100644 index 0000000000000000000000000000000000000000..8ba224d58bce601a17ad55aa619e833b4dfdbb58 --- /dev/null +++ b/content/en/docs/ApplicationDev/obs-overview.md @@ -0,0 +1,8 @@ +# OBS Overview + +OBS is a general compilation framework based on the openSUSE distribution. It is used to build source code packages into RPM software packages or Linux images. OBS uses the automatic distributed compilation mode and supports the compilation of images and installation packages of multiple Linux OS distributions \(such as openEuler, SUSE, and Debian\) on multiple architecture platforms \(such as x86 and ARM64\). + +OBS consists of the backend and frontend. The backend implements all core functions. The frontend provides web applications and APIs for interaction with the backend. In addition, OBS provides an API command line client OSC, which is developed in an independent repository. + +OBS uses the project organization software package. Basic permission control, related repository, and build targets \(OS and architecture\) can be defined in the project. A project can contain multiple subprojects. Each subproject can be configured independently to complete a task. + diff --git a/content/en/docs/ApplicationDev/obtaining-the-software-package-11.md b/content/en/docs/ApplicationDev/obtaining-the-software-package-11.md new file mode 100644 index 0000000000000000000000000000000000000000..5aab88422535c532dc51959c22a228a023585638 --- /dev/null +++ b/content/en/docs/ApplicationDev/obtaining-the-software-package-11.md @@ -0,0 +1,18 @@ +# Obtaining the Software Package + +After the RPM software package is built, run the following command to obtain the RPM software package using the OSC: + +``` +# osc getbinaries home:testUser:branches:openEuler:Mainline my-first-obs-package standard_aarch64 aarch64 +``` + +The parameters in the command are described as follows. You can modify the parameters according to the actual situation. + +- _home:testUser:branches:openEuler:Mainline_: name of the project to which the software package belongs. +- _my-first-obs-package_: name of the software package. +- _standard\_aarch64_: repository name. +- _aarch64_: repository architecture name. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>You can also obtain the software package built using OSC from the web page. For details, see [Building an RPM Package](building-an-rpm-package-8.md). + diff --git a/content/en/docs/ApplicationDev/obtaining-the-software-package.md b/content/en/docs/ApplicationDev/obtaining-the-software-package.md new file mode 100644 index 0000000000000000000000000000000000000000..967506a0d776a8b5eaae8d7681b220f2c3882b72 --- /dev/null +++ b/content/en/docs/ApplicationDev/obtaining-the-software-package.md @@ -0,0 +1,19 @@ +# Obtaining the Software Package + +After the RPM software package is built, perform the following operations to obtain the RPM software package on the web page: + +1. Log in to the OBS console. +2. Click **All Projects** and find the project corresponding to the required software package, for example, **openEuler:Mainline**. +3. Click the name of the required software package in the project. The software package details page is displayed, for example, the **kernel** page in the preceding example. + +1. Click the **Repositories** tab. On the software repository management page that is displayed, click **Enable** in **Publish Flag** to enable the RPM software package download function \(the status changes from ![](figures/en-us_image_0229243704.png) to ![](figures/en-us_image_0229243702.png)\), as shown in [Figure 1](#fig17480830144217). + + **Figure 1** **Repositories** page + ![](figures/repositories-page.png "repositories-page") + +2. Click the project name in the **Repository** column. On the RPM software package download page that is displayed, click **Download** on the right of the RPM software package to download the RPM software package, as shown in [Figure 2](#fig12152145615438). + + **Figure 2** RPM software package download page + ![](figures/rpm-software-package-download-page.png "rpm-software-package-download-page") + + diff --git a/content/en/docs/ApplicationDev/obtaining-the-source-code.md b/content/en/docs/ApplicationDev/obtaining-the-source-code.md new file mode 100644 index 0000000000000000000000000000000000000000..090fc053cd458fc00831e8ee422120dd3526d2d4 --- /dev/null +++ b/content/en/docs/ApplicationDev/obtaining-the-source-code.md @@ -0,0 +1,9 @@ +# Obtaining the Source Code + +Run the following command to download the source code of the official example: + +``` +# cd ~/rpmbuild/SOURCES +# wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz +``` + diff --git a/content/en/docs/ApplicationDev/overview-0.md b/content/en/docs/ApplicationDev/overview-0.md new file mode 100644 index 0000000000000000000000000000000000000000..22434aa50099bf77d1c2db6eff633fcd5defe72b --- /dev/null +++ b/content/en/docs/ApplicationDev/overview-0.md @@ -0,0 +1,4 @@ +# Overview + +The GNU Compiler Collection \(GCC\) is a powerful and high-performance multi-platform compiler developed by GNU. The GCC compiler can compile and link source programs, assemblers, and target programs of C and C++ into executable files. By default, the GCC software package is installed in the openEuler OS. + diff --git a/content/en/docs/ApplicationDev/overview-1.md b/content/en/docs/ApplicationDev/overview-1.md new file mode 100644 index 0000000000000000000000000000000000000000..faf505f0aad82f2ce8c76849105406605d74686c --- /dev/null +++ b/content/en/docs/ApplicationDev/overview-1.md @@ -0,0 +1,4 @@ +# Overview + +The GNU make utility \(usually abbreviated as make\) is a tool for controlling the generation of executable files from source files. make automatically identifies which parts of the complex program have changed and need to be recompiled. Make uses a configuration file called makefiles to control how the program is built. + diff --git a/content/en/docs/ApplicationDev/overview-5.md b/content/en/docs/ApplicationDev/overview-5.md new file mode 100644 index 0000000000000000000000000000000000000000..99572286672c51dd6b312d1e6a6a377a573fe6a0 --- /dev/null +++ b/content/en/docs/ApplicationDev/overview-5.md @@ -0,0 +1,4 @@ +# Overview + +A Java Development Kit \(JDK\) is a software package required for Java development. It contains the Java Runtime Environment \(JRE\) and compilation and commissioning tools. On the basis of OpenJDK, openEuler optimizes GC, enhances concurrency stability, and enhances security, improving the performance and stability of Java applications on ARM. + diff --git a/content/en/docs/ApplicationDev/overview.md b/content/en/docs/ApplicationDev/overview.md new file mode 100644 index 0000000000000000000000000000000000000000..044a8ebc820f8ff96f524fb69f2d36c2ba28393b --- /dev/null +++ b/content/en/docs/ApplicationDev/overview.md @@ -0,0 +1,4 @@ +# Overview + +IntelliJ IDEA is a popular Java IDE. You can download the community edition of IntelliJ IDEA for free. Currently, openEuler supports Java development in the IntelliJ IDEA integrated development environment \(IDE\), improving the work efficiency of developers. + diff --git a/content/en/docs/ApplicationDev/packaging-description.md b/content/en/docs/ApplicationDev/packaging-description.md new file mode 100644 index 0000000000000000000000000000000000000000..0a9ae1e82474276a49cc2eb8a5b74ee815170a51 --- /dev/null +++ b/content/en/docs/ApplicationDev/packaging-description.md @@ -0,0 +1,342 @@ +# Packaging Description + +## Principles + +During RPM packaging, the source code needs to be compiled. The compiled configuration files and binary command files need to be placed in proper positions. The RPM packages need to be tested as required. A workspace is required for these operations. The **rpmbuild** command uses a set of standard workspaces. + +``` +# rpmdev-setuptree +``` + +The **rpmdev-setuptree** command is used to install rpmdevtools. After the command is executed, the **rpmbuild** folder is generated in the **/root** directory \(or the **/home/**_username_ directory for non-root users\). The directory structure is as follows: + +``` +# tree rpmbuild +rpmbuild +├── BUILD +├── RPMS +├── SOURCES +├── SPECS +└── SRPMS +``` + +The content is described as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Content

+

Macro Code

+

Name

+

Function

+

~/rpmbuild/BUILD

+

%_builddir

+

Build directory.

+

The source code package is decompressed and compiled in a subdirectory of the directory.

+

~/rpmbuild/RPMS

+

%_rpmdir

+

Standard RPM package directory.

+

The binary RPM package is generated and stored in this directory.

+

~/rpmbuild/SOURCES

+

%_sourcedir

+

Source code directory.

+

The source code package (for example, .tar package) and all patches are stored in this directory.

+

~/rpmbuild/SPECS

+

%_specdir

+

Spec file directory.

+

The RPM package configuration file (.spec) is stored in this directory.

+

~/rpmbuild/SRPMS

+

%_srcrpmdir

+

Source code RPM package directory.

+

The source code RPM package (SRPM) is stored in this directory.

+
+ +The **\~/rpmbuild/SPECS** directory contains the configuration file of the RPM package, which is the drawing of the RPM package. This file tells the **rpmbuild** command how to build the RPM package. The **Macro Code** column contains the corresponding directories in the .spec file, which is similar to the macro or global variable in the programming language. + +## Packaging Process + +The packaging process is as follows: + +1. Place the source code in **%\_sourcedir**. +2. Compile the source code in **%\_builddir**. Generally, the source code is compressed and needs to be decompressed first. +3. Install the RPM package. The installation is similar to pre-assembling the software package. Copy the contents \(such as binary files, configuration files, and man files\) that should be contained in the software package to **%\_buildrootdir** and assemble the contents based on the actual directory structure after installation. For example, if binary commands are stored in **/usr/bin**, copy the directory structure to **%\_buildrootdir**. +4. Perform necessary configurations, such as preparations before installation and cleanup after installation. These are configured in the SPEC file to tell the **rpmbuild** command how to build. +5. Check whether the software is running properly. +6. The generated RPM package is stored in **%\_rpmdir**, and the source code package is stored in **%\_srpmdir**. + +In the SPEC file, each phase is described as follows: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Phase

+

Directory to Be Read

+

Directory to Which Data Is Written

+

Action

+

%prep

+

%_sourcedir

+

%_builddir

+

Read the source code and patch in the %_sourcedir directory. Then, decompress the source code to the %_builddir subdirectory and apply all patches.

+

%build

+

%_builddir

+

%_builddir

+

Compile files in the %_builddir build directory. Run a command similar to ./configure && make.

+

%install

+

%_builddir

+

%_buildrootdir

+

Read files in the %_builddir build directory and install them to the %_buildrootdir directory. These files are generated after the RPM is installed.

+

%check

+

%_builddir

+

%_builddir

+

Check whether the software is running properly. Run a command similar to make test.

+

bin

+

%_buildrootdir

+

%_rpmdir

+

Read files in the %_buildrootdir final installation directory to create RPM packages in the %_rpmdir directory. In this directory, RPM packages of different architectures are stored in different subdirectories. The noarch directory stores RPM packages applicable to all architectures. These RPM files are the RPM packages that are finally installed by users.

+

src

+

%_sourcedir

+

%_srcrpmdir

+

Create the source code RPM package (SRPM for short, with the file name extension .src.rpm) and save it to the %_srcrpmdir directory. The SRPM package is usually used to review and upgrade software packages.

+
+ +## Packaging Options + +Run the **rpmbuild** command to build the software package. The **rpmbuild** command can be used to build software packages by building .spec, .tar, and source files. + +The format of the **rpmbuild** command is rpmbuild \[_option_...\] + +[Table 1](#table1342946175212) describes the common rpmbuild packaging options. + +**Table 1** rpmbuild Packaging Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

option Value

+

Description

+

-bp specfile

+

Starts build from the %prep phase of the specfile (decompress the source code package and install the patch).

+

-bc specfile

+

Starts build from the %build phase of the specfile.

+

-bi specfile

+

Starts build from the %install phase of the specfile.

+

-bl specfile

+

Starts check from the %file phase of the specfile.

+

-ba specfile

+

Uses the specfile to build the source code package and binary package.

+

-bb specfile

+

Uses the specfile to build the binary package.

+

-bs specfile

+

Uses the specfile to build the source code package.

+

-rp sourcefile

+

Starts build from the %prep phase of the sourcefile (decompress the source code package and install the patch).

+

-rc sourcefile

+

Starts build from the %build phase of the sourcefile.

+

-ri sourcefile

+

Starts build from the %install phase of the sourcefile.

+

-rl sourcefile

+

Starts build from the %file phase of the sourcefile.

+

-ra sourcefile

+

Uses the sourcefile to build the source code package and binary package.

+

-rb sourcefile

+

Uses the sourcefile to build the binary package.

+

-rs sourcefile

+

Uses the sourcefile to build the source code package.

+

-tp tarfile

+

Starts build from the %prep phase of the tarfile (decompress the source code package and install the patch).

+

-tc tarfile

+

Starts build from the %build phase of the tarfile.

+

-ti tarfile

+

Starts build from the %install phase of the tarfile.

+

-ta tarfile

+

Uses the tarfile to build the source code package and binary package.

+

-tb tarfile

+

Uses the tarfile to build the binary package.

+

-ts tarfile

+

Uses the tarfile to build the source code package.

+

--buildroot=DIRECTORY

+

During the build, uses DIRECTORY to overwrite the default /root directory.

+

--clean

+

Deletes the files in the BUILD directory.

+

--nobuild

+

No actual build steps are performed. It can be used to test the .spec file.

+

--noclean

+

Skips the %clean phase of the .spec file (even if it does exist).

+

--nocheck

+

Skips the %check phase of the .spec file (even if it does exist).

+

--dbpath DIRECTORY

+

Uses the database in DIRECTORY instead of the default directory /var/lib/rpm.

+

--root DIRECTORY

+

Sets DIRECTORY to the highest level. The default value is /, indicating the highest level.

+

--rebuild sourcefile

+

Installs the specified source code package sourcefile, that is, start preparation, compilation, and installation of the source code package.

+

--recompile sourcefile

+

Builds a new binary package based on --recompile. When the build is complete, the build directory, source code, and .spec file are deleted.

+

The deletion effect is the same as that of --clean.

+

-?, --help

+

Displays detailed help information.

+

--version

+

Displays detailed version information.

+
+ diff --git a/content/en/docs/ApplicationDev/preparation.md b/content/en/docs/ApplicationDev/preparation.md new file mode 100644 index 0000000000000000000000000000000000000000..5e1cadbffa3aa829ff197dd19c26ddded92c6ecc --- /dev/null +++ b/content/en/docs/ApplicationDev/preparation.md @@ -0,0 +1,4 @@ +# Preparation + + + diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-caution.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-caution.gif differ diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-danger.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-danger.gif differ diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-note.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-note.gif differ diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-notice.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27 Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-notice.gif differ diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-tip.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7 Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-tip.gif differ diff --git a/content/en/docs/ApplicationDev/public_sys-resources/icon-warning.gif b/content/en/docs/ApplicationDev/public_sys-resources/icon-warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/ApplicationDev/public_sys-resources/icon-warning.gif differ diff --git a/content/en/docs/ApplicationDev/setting-the-jdk-environment.md b/content/en/docs/ApplicationDev/setting-the-jdk-environment.md new file mode 100644 index 0000000000000000000000000000000000000000..c3e53937de1669de5081d4558902c3de447de0f3 --- /dev/null +++ b/content/en/docs/ApplicationDev/setting-the-jdk-environment.md @@ -0,0 +1,27 @@ +# Setting the JDK Environment + +Before setting JAVA\_HOME, you need to find the installation path of the JDK. You are supported to have installed the JDK. If you have not installed the JDK, install it by referring to Preparation \> Installing the Software Package \> Installing the JDK Software Package. + +Run the following command to view the Java path: + +``` +# which java +/usr/bin/java +``` + +Run the following command to check the directory to which the soft link points: + +``` +# ls -la /usr/bin/java +lrwxrwxrwx. 1 root root 22 Mar 6 20:28 /usr/bin/java -> /etc/alternatives/java +# ls -la /etc/alternatives/java +lrwxrwxrwx. 1 root root 83 Mar 6 20:28 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-1.h2.aarch64/jre/bin/java +``` + +The actual path is **/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-1.h2.aarch64**. Run the following command to set **JAVA\_HOME** and **PATH**: + +``` +# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-1.h2.aarch64 +# export PATH=$JAVA_HOME/bin:$PATH +``` + diff --git a/content/en/docs/ApplicationDev/setting-up-the-development-environment.md b/content/en/docs/ApplicationDev/setting-up-the-development-environment.md new file mode 100644 index 0000000000000000000000000000000000000000..7a0eac3c618eadbd21e33493411fb2fd15e9bc45 --- /dev/null +++ b/content/en/docs/ApplicationDev/setting-up-the-development-environment.md @@ -0,0 +1,14 @@ +# Setting Up the Development Environment + +## Prerequisites + +You have obtained the **root** permission, and have configured a repo source for openEuler. + +## Procedure + +You can use the DNF tool to install rpmdevtools, including the **rpm-build** command and related dependencies \(such as make and gdb\). Run the following command: + +``` +# dnf install rpmdevtools* +``` + diff --git a/content/en/docs/ApplicationDev/setting-x11-forwarding.md b/content/en/docs/ApplicationDev/setting-x11-forwarding.md new file mode 100644 index 0000000000000000000000000000000000000000..8e7005e2bffd7e8f7d5e075947a8329b38c89e3b --- /dev/null +++ b/content/en/docs/ApplicationDev/setting-x11-forwarding.md @@ -0,0 +1,31 @@ +# Setting X11 Forwarding + +Switch to the SSHD configuration directory. + +``` +# cd ~/.ssh +``` + +If the directory does not exist, run the following command to create the directory and then switch to the directory: + +``` +# mkdir ~/.ssh +``` + +Edit the configuration file in the **.ssh** directory and save the file. + +1. Run the **vim** command to open the configuration file. + + ``` + # vim config + ``` + +2. Add the following content to the end of the file and save the file: + + ``` + Host * + ForwardAgent yes + ForwardX11 yes + ``` + + diff --git a/content/en/docs/ApplicationDev/static-link-library.md b/content/en/docs/ApplicationDev/static-link-library.md new file mode 100644 index 0000000000000000000000000000000000000000..2db3583a80977e52a204ab2d6151ead721757d92 --- /dev/null +++ b/content/en/docs/ApplicationDev/static-link-library.md @@ -0,0 +1,31 @@ +# Static Link Library + +To create a static link library \(SLL\), you need to compile the source file to the target file, and then run the **ar** command to compress the target file into an SLL. + +Example: Compile and compress source files **test1.c**, **test2.c**, and **test3.c** into an SLL. + +``` +gcc -c test1.c test2.c test3.c +ar rcs libtest.a test1.o test2.o test3.o +``` + +The **ar** command is a backup compression command. You can compress multiple files into a backup file \(also called an archive file\) or extract member files from the backup file. The most common use of **ar** is to compress the target files into an SLL. + +The format of the **ar** command to compress the target files into an SLL is as follows: + +ar rcs _Sllfilename_ _Targetfilelist_ + +- _Sllfilename_: Name of the static library file. +- _Targetfilelist_: Target file list. +- **r**: replaces the existing target file in the library or adds a new target file. +- **c**: creates a library regardless of whether the library exists. +- **s**: creates the index of the target file. The speed can be improved when a large library is created. + +Example: Create a main.c file to use the SLL. + +``` +gcc main.c -L libraryDIR -ltest -o test.out +``` + +In the preceding command, **libraryDIR** indicates the path of the libtest.a library. + diff --git a/content/en/docs/ApplicationDev/terms-of-use.md b/content/en/docs/ApplicationDev/terms-of-use.md new file mode 100644 index 0000000000000000000000000000000000000000..cc1b4840e3240264bb36bd7f1cdce0db32547dc4 --- /dev/null +++ b/content/en/docs/ApplicationDev/terms-of-use.md @@ -0,0 +1,14 @@ +# Terms of Use + +**Copyright © Huawei Technologies Co., Ltd. 2020. All rights reserved.** + +Your replication, use, modification, and distribution of this document are governed by the Creative Commons License Attribution-ShareAlike 4.0 International Public License \(CC BY-SA 4.0\). You can visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) to view a human-readable summary of \(and not a substitute for\) CC BY-SA 4.0. For the complete CC BY-SA 4.0, visit [https://creativecommons.org/licenses/by-sa/4.0/legalcode](https://creativecommons.org/licenses/by-sa/4.0/legalcode). + +**Trademarks and Permissions** + +openEuler is a trademark or registered trademark of Huawei Technologies Co., Ltd. All other trademarks and registered trademarks mentioned in this document are the property of their respective holders. + +**Disclaimer** + +This document is used only as a guide. Unless otherwise specified by applicable laws or agreed by both parties in written form, all statements, information, and recommendations in this document are provided "AS IS" without warranties, guarantees or representations of any kind, including but not limited to non-infringement, timeliness, and specific purposes. + diff --git a/content/en/docs/ApplicationDev/using-gcc-for-compilation.md b/content/en/docs/ApplicationDev/using-gcc-for-compilation.md new file mode 100644 index 0000000000000000000000000000000000000000..539ad01f9a46e2681a88edd90fca271831e6b94c --- /dev/null +++ b/content/en/docs/ApplicationDev/using-gcc-for-compilation.md @@ -0,0 +1,6 @@ +# Using GCC for Compilation + +This chapter describes the basic knowledge of GCC compilation and provides examples for demonstration. For more information about GCC, run the **man gcc** command. + + + diff --git a/content/en/docs/ApplicationDev/using-jdk-for-compilation.md b/content/en/docs/ApplicationDev/using-jdk-for-compilation.md new file mode 100644 index 0000000000000000000000000000000000000000..2d3b7505c37a11aaafff1ff2c07bb7ae5cb94fde --- /dev/null +++ b/content/en/docs/ApplicationDev/using-jdk-for-compilation.md @@ -0,0 +1,3 @@ +# Using JDK for Compilation + + diff --git a/content/en/docs/ApplicationDev/using-make-for-compilation.md b/content/en/docs/ApplicationDev/using-make-for-compilation.md new file mode 100644 index 0000000000000000000000000000000000000000..471a6de7fd78ac4be0127a736881cc78cd17624e --- /dev/null +++ b/content/en/docs/ApplicationDev/using-make-for-compilation.md @@ -0,0 +1,5 @@ +# Using Make for Compilation + +This chapter describes the basic knowledge of make compilation and provides examples for demonstration. For more information about Make, run the **man make** command. + + diff --git a/content/en/docs/ApplicationDev/using-the-ide-for-java-development.md b/content/en/docs/ApplicationDev/using-the-ide-for-java-development.md new file mode 100644 index 0000000000000000000000000000000000000000..2a95e6aab8d881a8b18877b1ad9569cf8eb8ac53 --- /dev/null +++ b/content/en/docs/ApplicationDev/using-the-ide-for-java-development.md @@ -0,0 +1,6 @@ +# Using the IDE for Java Development + +For small-sized Java applications, you can directly use JDK to compile them to run Java applications. However, for medium- and large-sized Java applications, this method cannot meet the development requirements. You can perform the following steps to install and use the IDE to facilitate Java development on the openEuler OS. + + + diff --git a/content/en/docs/Installation/Installation.md b/content/en/docs/Installation/Installation.md index 80177c00b21061b6ebcec7db83a7cd0c7c0ab8ba..e8ba003d1fec68027108f9d76f0f6d8f2204b4c3 100644 --- a/content/en/docs/Installation/Installation.md +++ b/content/en/docs/Installation/Installation.md @@ -1 +1 @@ -This guide describes how to install Huawei openEuler 1.0 in graphical mode or text mode. +This document describes how to obtain the openEuler installation package and install openEuler using different methods. \ No newline at end of file diff --git a/content/en/docs/Installation/an-exception-occurs-during-the-selection-of-the-installation-source.md b/content/en/docs/Installation/an-exception-occurs-during-the-selection-of-the-installation-source.md index 10c8c7bdd4a26bff83f9e0d89eceed8a262cf508..328815ef3c7082b3c470946e61e860632404fb66 100644 --- a/content/en/docs/Installation/an-exception-occurs-during-the-selection-of-the-installation-source.md +++ b/content/en/docs/Installation/an-exception-occurs-during-the-selection-of-the-installation-source.md @@ -1,5 +1,14 @@ -# An Exception Occurs During the Selection of the Installation Source +# An Exception Occurs During the Selection of the Installation Source +## Symptom +After the selection of the installation source, the message "Error checking software selection" is displayed. +## Possible Cause + +This is because the software package dependency in the installation source is abnormal. + +## Solution + +Check whether the installation source is abnormal. Use the new installation source. diff --git a/content/en/docs/Installation/completing-the-installation.md b/content/en/docs/Installation/completing-the-installation.md index f588538da1a803cc458103aa1de6520d11399b99..cfcc1e3682e0c64284d900a96b4e51b48772dcf0 100644 --- a/content/en/docs/Installation/completing-the-installation.md +++ b/content/en/docs/Installation/completing-the-installation.md @@ -1,12 +1,10 @@ -# Completing the Installation +# Completing the Installation openEuler has been installed, as shown in [Figure 1](#en-us_topic_0186390267_en-us_topic_0122145917_fig1429512116338). Click **Reboot** to restart the system. **Figure 1** Completing the installation ![](figures/completing-the-installation.png "completing-the-installation") ->![](public_sys-resources/icon-note.gif) **NOTE:** ->Remove the CD-ROM manually if it does not eject automatically during rebooting. - -After the restart is complete, log in to openEuler through the CLI. +- If the physical DVD-ROM is used to install the OS and the DVD-ROM drive is not automatically ejected during the restart, manually remove the DVD-ROM. Then, the openEuler CLI login page is displayed. +- If the virtual DVD-ROM drive is used to install the OS, change the server boot option to **Hard Disk** and restart the server. Then, the openEuler CLI login page is displayed. diff --git a/content/en/docs/Installation/configurations-during-installation.md b/content/en/docs/Installation/configurations-during-installation.md index 6ac0351c3fde888cfadd2880f7e82f8b15d499f5..e2887ecca7a4c8c61d4bcb56317da8f8b239e4c2 100644 --- a/content/en/docs/Installation/configurations-during-installation.md +++ b/content/en/docs/Installation/configurations-during-installation.md @@ -1,4 +1,4 @@ -# Configurations During Installation +# Configurations During Installation After the installation starts, the overall installation progress and the progress of writing the software package to the system are displayed. @@ -9,7 +9,7 @@ During the process of installing software packages, you need to configure the ro ## Password Complexity -The password of the root user or the password of the new user must meet the password complexity requirements. Otherwise, the password configuration or user creation will fail. The password complexity requirements are as follows: +The password of the **root** user or the password of the new user must meet the password complexity requirements. Otherwise, the password configuration or user creation will fail. The password complexity requirements are as follows: 1. A password must contain at least eight characters. 2. A password must contain at least three of the following types: uppercase letters, lowercase letters, digits, and special characters. @@ -39,21 +39,21 @@ The password of the root user or the password of the new user must meet the pass -## Setting the root User Password +## Setting the Root User Password Click **Root Password**. In the displayed dialog box, as shown in [Figure 2](#en-us_topic_0186390266_en-us_topic_0122145909_fig1323165793018), enter a password and re-enter to confirm. >![](public_sys-resources/icon-note.gif) **NOTE:** ->The password of root is required to configure at the same time of installing software packages. Otherwise, the installation will fail. A root account is used for performing critical system administrative tasks. It is not recommended to use this account for daily work or system access. +>The root password is required to be configured at the same time of installing software packages. Otherwise, the installation will fail. A **root** account is used for performing critical system administration tasks. It is not recommended to use this account for daily work or system access. -**Figure 2** root password -![](figures/root-password.png "root-password") +**Figure 2** Password of the **root** account +![](figures/password-of-the-root-account.png "password-of-the-root-account") -After configuration, click **Done** in the left-upper corner to switch back to the installation process interface. +After configuration, click **Done** in the left-upper corner to switch back to the installation process page. ## Creating a User -Click **User Creation**. [Figure 3](#en-us_topic_0186390266_en-us_topic_0122145909_fig1237715313319) shows the interface for creating a user. Enter a user name and set a password. By clicking **Advanced**, you can also configure a home directory and a user group, as shown in [Figure 4](#en-us_topic_0186390266_en-us_topic_0122145909_fig128716531312). +Click **User Creation**. [Figure 3](#en-us_topic_0186390266_en-us_topic_0122145909_fig1237715313319) shows the page for creating a user. Enter a username and set a password. By clicking **Advanced**, you can also configure a home directory and a user group, as shown in [Figure 4](#en-us_topic_0186390266_en-us_topic_0122145909_fig128716531312). **Figure 3** Creating a user ![](figures/creating-a-user.png "creating-a-user") @@ -61,5 +61,9 @@ Click **User Creation**. [Figure 3](#en-us_topic_0186390266_en-us_topic_012214 **Figure 4** Advanced user configuration ![](figures/advanced-user-configuration.png "advanced-user-configuration") -After configuration, click **Done** in the left-upper corner to switch back to the installation process interface. +After configuration, click **Done** in the left-upper corner to switch back to the installation process page. + +Click **Finish**. The configuration of openEuler is complete. + +![](figures/结束配置-new-en.png) diff --git a/content/en/docs/Installation/configuring-an-installation-program-language.md b/content/en/docs/Installation/configuring-an-installation-program-language.md index be26c264212baef7b7a69852074752a566b99d02..3572a51bd3f2625ef226fd5e5d560632f0082cc0 100644 --- a/content/en/docs/Installation/configuring-an-installation-program-language.md +++ b/content/en/docs/Installation/configuring-an-installation-program-language.md @@ -1,11 +1,11 @@ -# Configuring an Installation Program Language +# Configuring an Installation Program Language -After the installation starts, the system will prompt the language that is used during the configuration installation process. English is configured by default. Configure another language as required, such as "English" in [Figure 1](#en-us_topic_0186390093_en-us_topic_0122145864_fig144630179151). +After the installation starts, the system will prompt the language that is used during the configuration installation process. English is configured by default, as shown in [Figure 1](#en-us_topic_0186390093_en-us_topic_0122145864_fig144630179151). Configure another language as required. **Figure 1** Selecting a language ![](figures/selecting-a-language.png "selecting-a-language") -After configurations, click **Continue**. The main installation configuration interface is displayed. +After configurations, click **Continue**. The main installation configuration page is displayed. If you want to exit the installation, click **Exit**. The message "Are you sure you want to exit the installation program?" is displayed. Click **Yes** in the dialog box to go back to the installation wizard page. diff --git a/content/en/docs/Installation/en-us_bookmap_0229291255.md b/content/en/docs/Installation/en-us_bookmap_0229291255.md new file mode 100644 index 0000000000000000000000000000000000000000..108d1397af810dedf7cb952e3a62eadeb86eebeb --- /dev/null +++ b/content/en/docs/Installation/en-us_bookmap_0229291255.md @@ -0,0 +1,58 @@ +# Installation Guide + +- [Terms of Use](terms-of-use.md) +- [Preface](preface.md) +- [Installation Preparations](installation-preparations.md) + - [Obtaining the Installation Source](obtaining-the-installation-source.md) + - [Release Package Integrity Check](release-package-integrity-check.md) + - [Installation Requirements for PMs](installation-requirements-for-pms.md) + - [Hardware Compatibility](hardware-compatibility.md) + - [Minimum Hardware Specifications](minimum-hardware-specifications.md) + + - [Installation Requirements for VMs](installation-requirements-for-vms.md) + - [Virtualization Platform Compatibility](virtualization-platform-compatibility.md) + - [Minimum Virtualization Space](minimum-virtualization-space.md) + + +- [Installation Mode](installation-mode.md) + - [Installation Through a CD/DVD-ROM](installation-through-a-cd-dvd-rom.md) + - [Installation Through a USB Flash Drive](installation-through-a-usb-flash-drive.md) + - [Installation Through the Network Using PXE](installation-through-the-network-using-pxe.md) + - [Installation Through a QCOW2 Image](installation-through-a-qcow2-image.md) + - [Installation Through a Private Image](installation-through-a-private-image.md) + +- [Installation Guideline](installation-guideline.md) + - [Starting the Installation](starting-the-installation.md) + - [Installation in GUI Mode](installation-in-gui-mode.md) + - [Configuring an Installation Program Language](configuring-an-installation-program-language.md) + - [Entering the Installation Page](entering-the-installation-page.md) + - [Setting Installation Parameters](setting-installation-parameters.md) + - [Setting the Keyboard Layout](setting-the-keyboard-layout.md) + - [Setting a System Language](setting-a-system-language.md) + - [Setting Date and Time](setting-date-and-time.md) + - [Setting the Installation Source](setting-the-installation-source.md) + - [Selecting Installation Software](selecting-installation-software.md) + - [Setting the Installation Destination](setting-the-installation-destination.md) + - [Setting the Network and Host Name](setting-the-network-and-host-name.md) + + - [Starting Installation](starting-installation.md) + - [Configurations During Installation](configurations-during-installation.md) + - [Completing the Installation](completing-the-installation.md) + + +- [Using Kickstart for Automatic Installation](using-kickstart-for-automatic-installation.md) + - [Introduction](introduction.md) + - [Semi-automatic Installation Guide](semi-automatic-installation-guide.md) + - [Full-automatic Installation Guide](full-automatic-installation-guide.md) + +- [FAQs](faqs.md) + - [Why Does openEuler Fail to Start After I Install It to the Second Disk?](why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md) + - [What Are the Constraints on Network Configurations?](what-are-the-constraints-on-network-configurations.md) + - [Why Does openEuler Enter Emergency Mode After It Is Powered On?](why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md) + - [Failed to Reinstall openEuler When a Logical Volume Group That Cannot Be Activated Has Existed in openEuler](failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md) + - [An Exception Occurs During the Selection of the Installation Source](an-exception-occurs-during-the-selection-of-the-installation-source.md) + - [How Do I Manually Enable the kdump Service?](how-do-i-manually-enable-the-kdump-service.md) + - [Failed to Selected Only One Disk for Reinstallation When openEuler Was Installed on a Logical Volume Consisting of Multiple Disks](failed-to-selected-only-one-disk-for-reinstallation-when-openeuler-was-installed-on-a-logical-volume.md) + - [Failed to Install openEuler on an x86 PM in UEFI Mode due to Secure Boot Option Setting](failed-to-install-openeuler-on-an-x86-pm-in-uefi-mode-due-to-secure-boot-option-setting.md) + + diff --git a/content/en/docs/Installation/entering-the-installation-page.md b/content/en/docs/Installation/entering-the-installation-page.md new file mode 100644 index 0000000000000000000000000000000000000000..0461747a546148e7b48e8a122425f3442a1e3193 --- /dev/null +++ b/content/en/docs/Installation/entering-the-installation-page.md @@ -0,0 +1,11 @@ +# Entering the Installation Page + +After the installation program starts, the main installation configuration page is displayed, as shown in [Figure 1](#en-us_topic_0186390094_en-us_topic_0122145883_fig5969171592212). On the page, you can configure the time, language, installation source, network, and storage device. + +Some configuration items are matched with safety symbols. A safety symbol will disappear after the item is configured. Start the installation only when all the safety symbols disappear from the page. + +If you want to exit the installation, click **Exit**. The message "Are you sure you want to exit the installation program?" is displayed. Click **Yes** in the dialog box to go back to the installation wizard page. + +**Figure 1** Installation summary +![](figures/installation-summary.png "installation-summary") + diff --git a/content/en/docs/Installation/failed-to-install-openeuler-on-an-x86-pm-in-uefi-mode-due-to-secure-boot-option-setting.md b/content/en/docs/Installation/failed-to-install-openeuler-on-an-x86-pm-in-uefi-mode-due-to-secure-boot-option-setting.md new file mode 100644 index 0000000000000000000000000000000000000000..18cb5a8629d4a5eeba9121ae30abfff0c4b91e04 --- /dev/null +++ b/content/en/docs/Installation/failed-to-install-openeuler-on-an-x86-pm-in-uefi-mode-due-to-secure-boot-option-setting.md @@ -0,0 +1,33 @@ +# Failed to Install openEuler on an x86 PM in UEFI Mode due to Secure Boot Option Setting + +## Symptom + +During the installation of openEuler on an x86 PM in UEFI mode, the system stays at the "No bootable device" page and the installation cannot continue because **secure boot** is set to **enabled** \(by default, it is set to **disabled**\), as shown in [Figure 1](#fig115949762617). + +**Figure 1** Dialog box showing "No bootable device" +![](figures/dialog-box-showing-no-bootable-device.png "dialog-box-showing-no-bootable-device") + +## Possible Cause + +After **secure boot** is set to **enabled**, the mainboard verifies the boot program and OS. If the boot program and OS are not signed using the corresponding private key, the boot program and OS cannot pass the authentication of the built-in public key on the mainboard. + +## Solution + +Access the BIOS, set **secure boot** to **disabled**, and reinstall the openEuler. + +1. During the system startup, press **F11** and enter the password **Admin@9000** to access the BIOS. + + ![](figures/bios.png) + +2. Choose **Administer Secure Boot**. + + ![](figures/security.png) + +3. Set **Enforce Secure Boot** to **Disabled**. + + ![](figures/选择.png) + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >After **Enforce Secure Boot** is set to **Disabled**, save the settings, and exit. Then, reinstall the system. + + diff --git a/content/en/docs/Installation/failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md b/content/en/docs/Installation/failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md index 23dc715f1599c1f663c9f5d6f4ab673c31c3d677..53a2970276e05fec79e4c09c15a11ae1e1f81a48 100644 --- a/content/en/docs/Installation/failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md +++ b/content/en/docs/Installation/failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md @@ -1,4 +1,4 @@ -# Failed to Reinstall openEuler When a Logical Volume Group That Cannot Be Activated Has Existed in openEuler +# Failed to Reinstall openEuler When a Logical Volume Group That Cannot Be Activated Has Existed in openEuler ## Symptom @@ -12,8 +12,8 @@ During the installation of openEuler, a logical volume group cannot be activated Before reinstalling openEuler, restore the abnormal logical volume group to the normal status or clear it. The following uses an example: -- Restore the abnormal logical volume group to the normal status. - 1. Run the following command to clear the activation status of the abnormal logical volume group to ensure that the error message "Can't open /dev/sdc exclusively mounted filesystem" is not displayed: +- Restore the logical volume group. + 1. Run the following command to clear the active status of the abnormal logical volume group to ensure that the error message "Can't open /dev/sdc exclusively mounted filesystem" is not displayed: ``` vgchange -a n testvg32947 @@ -38,7 +38,7 @@ Before reinstalling openEuler, restore the abnormal logical volume group to the ``` -- Run the following commands to clear the abnormal logical volume group: +- Run the following commands to clear the logical volume group: ``` vgchange -a n testvg32947 diff --git a/content/en/docs/Installation/failed-to-selected-only-one-disk-for-reinstallation-when-openeuler-was-installed-on-a-logical-volume.md b/content/en/docs/Installation/failed-to-selected-only-one-disk-for-reinstallation-when-openeuler-was-installed-on-a-logical-volume.md new file mode 100644 index 0000000000000000000000000000000000000000..8293b806d32e2a3ecafa31b924712b1abc333dc0 --- /dev/null +++ b/content/en/docs/Installation/failed-to-selected-only-one-disk-for-reinstallation-when-openeuler-was-installed-on-a-logical-volume.md @@ -0,0 +1,41 @@ +# Failed to Selected Only One Disk for Reinstallation When openEuler Was Installed on a Logical Volume Consisting of Multiple Disks + +## Symptom + +If openEuler was installed on a logical volume consisting of multiple disks, an error message will be displayed as shown in [Figure 1](#fig115949762617) when you attempt to select one of the disks for reinstallation. + +**Figure 1** Error message +![](figures/error-message.png "error-message") + +## Possible Cause + +The previous logical volume contains multiple disks. If you select one of the disks for reinstallation, the logical volume will be damaged. + +## Solution + +The logical volume formed by multiple disks is equivalent to a volume group. Therefore, you only need to delete the corresponding volume group. + +1. Press **Ctrl**+**Alt**+**F2** to switch to the CLI and run the following command to find the volume group: + + ``` + vgs + ``` + + ![](figures/en-us_image_0231657950.png) + +2. Run the following command to delete the volume group: + + ``` + vgremove euleros + ``` + +3. Run the following command to restart the installation program for the modification to take effect: + + ``` + systemctl restart anaconda + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >You can also press **Ctrl**+**Alt**+**F6** to return to the GUI and click **Refresh** in the lower right corner to refresh the storage configuration. + + diff --git a/content/en/docs/Installation/faqs.md b/content/en/docs/Installation/faqs.md index 8a5f0a21c211c82d08447b79d831d9381640981d..0427b4be98990a3fd2153eccdfcb484d41dd4cb2 100644 --- a/content/en/docs/Installation/faqs.md +++ b/content/en/docs/Installation/faqs.md @@ -1,3 +1,3 @@ -# FAQs +# FAQs diff --git a/content/en/docs/Installation/figures/adding-the-inst-noverifyssl-parameter.png b/content/en/docs/Installation/figures/adding-the-inst-noverifyssl-parameter.png new file mode 100644 index 0000000000000000000000000000000000000000..d55cc62d83c74696a3b6cb4f6f3ad3b705265151 Binary files /dev/null and b/content/en/docs/Installation/figures/adding-the-inst-noverifyssl-parameter.png differ diff --git a/content/en/docs/Installation/figures/bios.png b/content/en/docs/Installation/figures/bios.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a96738001c5a910174c030af583bb09ff29ce6 Binary files /dev/null and b/content/en/docs/Installation/figures/bios.png differ diff --git a/content/en/docs/Installation/figures/completing-the-installation.png b/content/en/docs/Installation/figures/completing-the-installation.png index 778d69240d49e9d5ef08ccbc0f95e58e9227eb63..0b97542c85336715d79e222e0487e0c51297003a 100644 Binary files a/content/en/docs/Installation/figures/completing-the-installation.png and b/content/en/docs/Installation/figures/completing-the-installation.png differ diff --git a/content/en/docs/Installation/figures/creating-a-user.png b/content/en/docs/Installation/figures/creating-a-user.png index 56f9e357ee2814ffb7307ba759ffd782e2850998..53e4a6dbe4bba8315931d61a18a52d2c7f90742a 100644 Binary files a/content/en/docs/Installation/figures/creating-a-user.png and b/content/en/docs/Installation/figures/creating-a-user.png differ diff --git a/content/en/docs/Installation/figures/dialog-box-showing-no-bootable-device.png b/content/en/docs/Installation/figures/dialog-box-showing-no-bootable-device.png new file mode 100644 index 0000000000000000000000000000000000000000..177cb7db4c794b80524add99244a4cb3d28c5390 Binary files /dev/null and b/content/en/docs/Installation/figures/dialog-box-showing-no-bootable-device.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291229.png b/content/en/docs/Installation/figures/en-us_image_0229291229.png new file mode 100644 index 0000000000000000000000000000000000000000..b315531ca7f99d2a045b7933351af96cadc1ad77 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291229.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291236.png b/content/en/docs/Installation/figures/en-us_image_0229291236.png new file mode 100644 index 0000000000000000000000000000000000000000..bf466a3d751df4a4c6fd99aecf620ec9adf540a3 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291236.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291243.png b/content/en/docs/Installation/figures/en-us_image_0229291243.png new file mode 100644 index 0000000000000000000000000000000000000000..2418510f855facae4b47129840894490a1eac7ca Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291243.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291247.png b/content/en/docs/Installation/figures/en-us_image_0229291247.png new file mode 100644 index 0000000000000000000000000000000000000000..d67b599b9ab74017c0800529053befed3efab8a7 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291247.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291264.jpg b/content/en/docs/Installation/figures/en-us_image_0229291264.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f0a0658e08010f4f453e558a41e31257783b416 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291264.jpg differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291270.png b/content/en/docs/Installation/figures/en-us_image_0229291270.png new file mode 100644 index 0000000000000000000000000000000000000000..64c5a78479a5497e8d89d34da365a9b3b4ad0e63 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291270.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291272.png b/content/en/docs/Installation/figures/en-us_image_0229291272.png new file mode 100644 index 0000000000000000000000000000000000000000..9e94532bc4804633e37db3d5332c409c937c64c2 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291272.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291280.png b/content/en/docs/Installation/figures/en-us_image_0229291280.png new file mode 100644 index 0000000000000000000000000000000000000000..13c32c3b06f625300a094638170704e96f2d94c4 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291280.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229291286.png b/content/en/docs/Installation/figures/en-us_image_0229291286.png new file mode 100644 index 0000000000000000000000000000000000000000..4ffcb081e2c8f82bcc49a65a939f2cd8bd6f949b Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229291286.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0229420473.png b/content/en/docs/Installation/figures/en-us_image_0229420473.png new file mode 100644 index 0000000000000000000000000000000000000000..86c61a4b8e2a5795baff2fc74629924d01d7b97b Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0229420473.png differ diff --git a/content/en/docs/Installation/figures/en-us_image_0231657950.png b/content/en/docs/Installation/figures/en-us_image_0231657950.png new file mode 100644 index 0000000000000000000000000000000000000000..bea985ef710c57aeba16600067304b1005ad92e8 Binary files /dev/null and b/content/en/docs/Installation/figures/en-us_image_0231657950.png differ diff --git a/content/en/docs/Installation/figures/error-message.png b/content/en/docs/Installation/figures/error-message.png new file mode 100644 index 0000000000000000000000000000000000000000..6ab03376288f8ab349fa4cb177953ef841ad04b4 Binary files /dev/null and b/content/en/docs/Installation/figures/error-message.png differ diff --git a/content/en/docs/Installation/figures/installation-process.png b/content/en/docs/Installation/figures/installation-process.png index e49e1a24221b38a7fe9b20962b45d7167cf51c76..c6b2271f4b6a74343032aa82b5a362904dffa965 100644 Binary files a/content/en/docs/Installation/figures/installation-process.png and b/content/en/docs/Installation/figures/installation-process.png differ diff --git a/content/en/docs/Installation/figures/installation-summary.png b/content/en/docs/Installation/figures/installation-summary.png index fcb7aafb704c74f242df7a68ba017563d85091bb..694101f29e599a4f657e2e9ab9552d62f4d991c4 100644 Binary files a/content/en/docs/Installation/figures/installation-summary.png and b/content/en/docs/Installation/figures/installation-summary.png differ diff --git a/content/en/docs/Installation/figures/installation-wizard.png b/content/en/docs/Installation/figures/installation-wizard.png index e415db6abd2ed2256843600e3bf44f4511ff4859..b147fa7ac745eb313ebe5a7a887d1c0f5d8efdb0 100644 Binary files a/content/en/docs/Installation/figures/installation-wizard.png and b/content/en/docs/Installation/figures/installation-wizard.png differ diff --git a/content/en/docs/Installation/figures/manual-partitioning-page.png b/content/en/docs/Installation/figures/manual-partitioning-page.png index 8b6d2e4e652c85c101b7ea0d2978dd0762acc803..046fb8f3c19497364082d5ca474ceace47c84480 100644 Binary files a/content/en/docs/Installation/figures/manual-partitioning-page.png and b/content/en/docs/Installation/figures/manual-partitioning-page.png differ diff --git a/content/en/docs/Installation/figures/password-of-the-root-account.png b/content/en/docs/Installation/figures/password-of-the-root-account.png new file mode 100644 index 0000000000000000000000000000000000000000..795e029b249d88ed247f324c29d3f8aa862167e8 Binary files /dev/null and b/content/en/docs/Installation/figures/password-of-the-root-account.png differ diff --git a/content/en/docs/Installation/figures/security.png b/content/en/docs/Installation/figures/security.png new file mode 100644 index 0000000000000000000000000000000000000000..59ac7bfcef796fc32d0127a9d6095d32cb282fb2 Binary files /dev/null and b/content/en/docs/Installation/figures/security.png differ diff --git a/content/en/docs/Installation/figures/selecting-a-language.png b/content/en/docs/Installation/figures/selecting-a-language.png index b3ac56551f75b454618131c5664bb232a97ae8dc..2d4a1ec57da34a14040401009e14fe9b7dc784f6 100644 Binary files a/content/en/docs/Installation/figures/selecting-a-language.png and b/content/en/docs/Installation/figures/selecting-a-language.png differ diff --git a/content/en/docs/Installation/figures/selecting-installation-software.png b/content/en/docs/Installation/figures/selecting-installation-software.png index 222373f9ce3011dd91c39f0475270f6ce1057b33..6f576232f22398de2a3565b8c4724e4635245211 100644 Binary files a/content/en/docs/Installation/figures/selecting-installation-software.png and b/content/en/docs/Installation/figures/selecting-installation-software.png differ diff --git a/content/en/docs/Installation/figures/setting-a-system-language.png b/content/en/docs/Installation/figures/setting-a-system-language.png index d99b4328d2125e37eec8f7a67b2aa4c7c23c43df..f00ee9dea81c26559db440f204f3d67188f18538 100644 Binary files a/content/en/docs/Installation/figures/setting-a-system-language.png and b/content/en/docs/Installation/figures/setting-a-system-language.png differ diff --git a/content/en/docs/Installation/figures/setting-date-and-time.png b/content/en/docs/Installation/figures/setting-date-and-time.png index 8aaf8555eb08ab0d755d0884c4c89eedc3b75ea4..1e1b707504255e6010aa278ae05e5ce35e4a46b0 100644 Binary files a/content/en/docs/Installation/figures/setting-date-and-time.png and b/content/en/docs/Installation/figures/setting-date-and-time.png differ diff --git a/content/en/docs/Installation/figures/setting-the-installation-destination.png b/content/en/docs/Installation/figures/setting-the-installation-destination.png index a404d5256cd349bf822ba5095fa04cea051d884e..65040062e56e7a69c4452beac53bbc56df2bf760 100644 Binary files a/content/en/docs/Installation/figures/setting-the-installation-destination.png and b/content/en/docs/Installation/figures/setting-the-installation-destination.png differ diff --git a/content/en/docs/Installation/figures/setting-the-installation-source.png b/content/en/docs/Installation/figures/setting-the-installation-source.png index cce23835e8adec3180f92eac4a32d2acd44081fd..42ec14d3c991eca7d3ad967fcb6c9526a4562b30 100644 Binary files a/content/en/docs/Installation/figures/setting-the-installation-source.png and b/content/en/docs/Installation/figures/setting-the-installation-source.png differ diff --git a/content/en/docs/Installation/figures/setting-the-keyboard-layout.png b/content/en/docs/Installation/figures/setting-the-keyboard-layout.png index 62c4df6e1879ec1b03904318b97867fd90bfe199..e5644318ab1116c546bf5c7b0ac5dd05ac419177 100644 Binary files a/content/en/docs/Installation/figures/setting-the-keyboard-layout.png and b/content/en/docs/Installation/figures/setting-the-keyboard-layout.png differ diff --git a/content/en/docs/Installation/figures/setting-the-network-and-host-name.png b/content/en/docs/Installation/figures/setting-the-network-and-host-name.png index 8e980726ad79fc5d3273f0d60399d27766aa1985..ac67dc285ac3f5b6729ac32bf8a8725829b38c67 100644 Binary files a/content/en/docs/Installation/figures/setting-the-network-and-host-name.png and b/content/en/docs/Installation/figures/setting-the-network-and-host-name.png differ diff --git a/content/en/docs/Installation/figures/starting-installation.png b/content/en/docs/Installation/figures/starting-installation.png index f64f413ae3231ec34daa5e9e53db927ea6b9c81b..b8f028df0264a105666d03d875a8282c35dfd9d2 100644 Binary files a/content/en/docs/Installation/figures/starting-installation.png and b/content/en/docs/Installation/figures/starting-installation.png differ diff --git "a/content/en/docs/Installation/figures/\345\215\212\350\207\252\345\212\250-new.png" "b/content/en/docs/Installation/figures/\345\215\212\350\207\252\345\212\250-new.png" new file mode 100644 index 0000000000000000000000000000000000000000..f9344b7da68e2fba527715e50fa77dae3d4a0c9e Binary files /dev/null and "b/content/en/docs/Installation/figures/\345\215\212\350\207\252\345\212\250-new.png" differ diff --git "a/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201-0.png" "b/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201-0.png" new file mode 100644 index 0000000000000000000000000000000000000000..f2169685ef202bae133ae74fec620ec64aea46df Binary files /dev/null and "b/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201-0.png" differ diff --git "a/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201.png" "b/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201.png" new file mode 100644 index 0000000000000000000000000000000000000000..f2169685ef202bae133ae74fec620ec64aea46df Binary files /dev/null and "b/content/en/docs/Installation/figures/\345\256\211\350\243\205\345\256\214\346\210\2201.png" differ diff --git "a/content/en/docs/Installation/figures/\347\273\223\346\235\237\351\205\215\347\275\256-new-en.png" "b/content/en/docs/Installation/figures/\347\273\223\346\235\237\351\205\215\347\275\256-new-en.png" new file mode 100644 index 0000000000000000000000000000000000000000..47f09e0bb80f9283b0dcecc921e33e87d1df1512 Binary files /dev/null and "b/content/en/docs/Installation/figures/\347\273\223\346\235\237\351\205\215\347\275\256-new-en.png" differ diff --git "a/content/en/docs/Installation/figures/\351\200\211\346\213\251.png" "b/content/en/docs/Installation/figures/\351\200\211\346\213\251.png" new file mode 100644 index 0000000000000000000000000000000000000000..8dc638248f8121d50adf9b81da4b3f11e7ce6317 Binary files /dev/null and "b/content/en/docs/Installation/figures/\351\200\211\346\213\251.png" differ diff --git a/content/en/docs/Installation/full-automatic-installation-guide.md b/content/en/docs/Installation/full-automatic-installation-guide.md new file mode 100644 index 0000000000000000000000000000000000000000..fe4c8f4d3900622f464f0927222f7f54126bd947 --- /dev/null +++ b/content/en/docs/Installation/full-automatic-installation-guide.md @@ -0,0 +1,174 @@ +# Full-automatic Installation Guide + +## Environment Requirements + +The environment requirements for full-automatic installation of openEuler using kickstart are as follows: + +- PM/VM \(for details about how to create VMs, see the documents from corresponding vendors\): includes the computer where kickstart is used for automatic installation and the computer where the kickstart tool is installed. +- Httpd: stores the kickstart file. +- TFTP: provides vmlinuz and initrd files. +- DHCPD/PXE: provides the DHCP service. +- ISO: openEuler-20.03-LTS-aarch64-dvd.iso + +## Procedure + +To use kickstart to perform full-automatic installation of openEuler, perform the following steps: + +**Environment Preparation** + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Before the installation, ensure that the firewall of the HTTP server is disabled. Run the following command to disable the firewall: +>``` +>iptables -F +>``` + +1. Install httpd and start the service. + + ``` + # dnf install httpd -y + # systemctl start httpd + # systemctl enable httpd + ``` + +2. Install and configure TFTP. + + ``` + # dnf install tftp-server -y + # vim /etc/xinetd.d/tftp + service tftp + { + socket_type = dgram + protocol = udp + wait = yes + user = root + server = /usr/sbin/in.tftpd + server_args = -s /var/lib/tftpboot + disable = no + per_source = 11 + cps = 100 2 + flags = IPv4 + } + # systemctl start tftp + # systemctl enable tftp + # systemctl start xinetd + # systemctl status xinetd + # systemctl enable xinetd + ``` + +3. Run the following commands to prepare the installation source: + + ``` + # mount openEuler-20.03-LTS-aarch64-dvd.iso /mnt + # cp -r /mnt/* /var/www/html/openEuler/ + ``` + +4. Set and modify the kickstart configuration file **openEuler-ks.cfg**. Select the HTTP installation source by referring to [\#EN-US\_TOPIC\_0229291289/l1692f6b9284e493683ffa2ef804bc7ca](#l1692f6b9284e493683ffa2ef804bc7ca). + + ``` + #vim /var/www/html/ks/openEuler-ks.cfg + ==================================== + ***Modify the following information as required.*** + #version=DEVEL + ignoredisk --only-use=sda + autopart --type=lvm + # Partition clearing information + clearpart --none --initlabel + # Use graphical install + graphical + # Keyboard layouts + keyboard --vckeymap=cn --xlayouts='cn' + # System language + lang zh_CN.UTF-8 + #Use http installation source + url --url=//192.168.122.1/openEuler/ + %post + #enable kdump + sed -i "s/ ro / ro crashkernel=1024M,high /" /boot/efi/EFI/openEuler/grub.cfg + %end + ... + ``` + +5. Modify the PXE configuration file **grub.cfg** as follows: + + ``` + # cp -r /mnt/images/pxeboot/* /var/lib/tftpboot/ + # cp /mnt/EFI/BOOT/grubaa64.efi /var/lib/tftpboot/ + # cp /mnt/EFI/BOOT/grub.cfg /var/lib/tftpboot/ + # ls /var/lib/tftpboot/ + grubaa64.efi grub.cfg initrd.img TRANS.TBL vmlinuz + # vim /var/lib/tftpboot/grub.cfg + set default="1" + + function load_video { + if [ x$feature_all_video_module = xy ]; then + insmod all_video + else + insmod efi_gop + insmod efi_uga + insmod ieee1275_fb + insmod vbe + insmod vga + insmod video_bochs + insmod video_cirrus + fi + } + + load_video + set gfxpayload=keep + insmod gzio + insmod part_gpt + insmod ext2 + + set timeout=60 + + + ### BEGIN /etc/grub.d/10_linux ### + menuentry 'Install openEuler 20.03 LTS' --class red --class gnu-linux --class gnu --class os { + set root=(tftp,192.168.1.1) + linux /vmlinuz ro inst.geoloc=0 console=ttyAMA0 console=tty0 rd.iscsi.waitnet=0 inst.ks=http://192.168.122.1/ks/openEuler-ks.cfg + initrd /initrd.img + } + ``` + +6. Run the following commands to configure DHCP \(which can be replaced by DNSmasq\): + + ``` + # dnf install dhcp -y + # + # DHCP Server Configuration file. + # see /usr/share/doc/dhcp-server/dhcpd.conf.example + # see dhcpd.conf(5) man page + # + # vim /etc/dhcp/dhcpd.conf + ddns-update-style interim; + ignore client-updates; + filename "grubaa64.efi"; # pxelinux location of the startup file; + next-server 192.168.122.1; # (IMPORTANT) TFTP server IP address; + subnet 192.168.122.0 netmask 255.255.255.0 { + option routers 192.168.111.1; # Gateway address + option subnet-mask 255.255.255.0; # Subnet mask + range dynamic-bootp 192.168.122.50 192.168.122.200; # Dynamic IP address range + default-lease-time 21600; + max-lease-time 43200; + } + # systemctl start dhcpd + # systemctl enable dhcpd + ``` + + +**Installing the System** + +1. On the **Start boot option** screen, press **F2** to boot from the PXE and start automatic installation. + + ![](figures/en-us_image_0229291270.png) + + ![](figures/en-us_image_0229291286.png) + + ![](figures/en-us_image_0229291247.png) + +2. The automatic installation window is displayed. +3. Verify that the installation is complete. + + ![](figures/安装完成1-0.png) + + diff --git a/content/en/docs/Installation/hardware-compatibility.md b/content/en/docs/Installation/hardware-compatibility.md index a1236535ac53ce89a2884653dcca3bd48f1f3cac..fd7b18d96fc7489f4196c5bad5f6132fd76385a2 100644 --- a/content/en/docs/Installation/hardware-compatibility.md +++ b/content/en/docs/Installation/hardware-compatibility.md @@ -1,10 +1,10 @@ -# Hardware Compatibility +# Hardware Compatibility -You need to take hardware compatibility into account during openEuler installation. [Table 1](#table14948632047) lists the types of supported servers. +You need to take hardware compatibility into account during openEuler installation. [Table 1](#table14948632047) describes the types of supported servers. >![](public_sys-resources/icon-note.gif) **NOTE:** >- TaiShan 200 servers are backed by Huawei Kunpeng 920 processors. ->- Currently, only Huawei TaiShan servers are supported. More servers from other vendors will be supported in the future. +>- Currently, only Huawei TaiShan and FusionServer Pro servers are supported. More servers from other vendors will be supported in the future. **Table 1** Supported servers @@ -19,19 +19,18 @@ You need to take hardware compatibility into account during openEuler installati

Rack server

-

TaiShan 200 servers

+

TaiShan 200

2280 balanced model

-

Rack server

+

Rack server

-

5280 storage model

+

FusionServer Pro

- -

High-density server

- -

X6000 high-density model

+

FusionServer Pro 2288H V5

+
NOTE:

The server must be configured with the Avago SAS3508 RAID controller card and the LOM-X722 NIC.

+
diff --git a/content/en/docs/Installation/how-do-i-manually-enable-the-kdump-service.md b/content/en/docs/Installation/how-do-i-manually-enable-the-kdump-service.md index b3e3c3c470c32ae28ee2f51cddad889d6531ee0b..9ff29e80c335deb12644f2da198674cfe5c11635 100644 --- a/content/en/docs/Installation/how-do-i-manually-enable-the-kdump-service.md +++ b/content/en/docs/Installation/how-do-i-manually-enable-the-kdump-service.md @@ -1,10 +1,10 @@ -# How Do I Manually Enable the kdump Service? +# How Do I Manually Enable the kdump Service? ## Symptom -Run the systemctl status kdump command. The following information is displayed, indicating that no memory is reserved. +Run the **systemctl status kdump** command. The following information is displayed, indicating that no memory is reserved. -![](figures/en-us_image_0216604776.png) +![](figures/en-us_image_0229291280.png) ## Possible Cause @@ -24,7 +24,7 @@ For the scenario where the OS has been installed If the following information is displayed, the kdump status is **active**, indicating that the kdump service is enabled. No further action is required. - ![](figures/en-us_image_0216604777.png) + ![](figures/en-us_image_0229291272.png) ## Parameter Description diff --git a/content/en/docs/Installation/installation-guideline.md b/content/en/docs/Installation/installation-guideline.md index fa11a1cce1a551fc5c8400babbf5b35deaf53de2..7677e6c1aff35f54e759ef01346b085b83c55ce8 100644 --- a/content/en/docs/Installation/installation-guideline.md +++ b/content/en/docs/Installation/installation-guideline.md @@ -1,6 +1,5 @@ -# Installation Guideline - -This section describes how to install openEuler 1.0 by using the CD/DVD-ROM. +# Installation Guideline +This section describes how to install openEuler using a CD-ROM. The installation process is the same for other installation modes except the boot option. diff --git a/content/en/docs/Installation/installation-in-gui-mode.md b/content/en/docs/Installation/installation-in-gui-mode.md new file mode 100644 index 0000000000000000000000000000000000000000..b66996800ecbe7c040d885bc887d6e32f4d1c0b7 --- /dev/null +++ b/content/en/docs/Installation/installation-in-gui-mode.md @@ -0,0 +1,14 @@ +# Installation in GUI Mode + +On the installation wizard page, select **Test this media & install openEuler 20.03 LTS** to enter the GUI installation mode. + +Perform graphical installation operations using a keyboard. + +- Press **Tab** or **Shift**+**Tab** to move between GUI controls \(such as buttons, area boxes, and check boxes\). +- Press the up or down arrow key to move a target in the list. +- Press the left or right arrow key to move between the horizontal toolbar and watch bar. +- Press the spacebar or **Enter** to select or delete highlighted options, expand or collapse a drop-down list. +- Press **Alt**+a shortcut key \(the shortcut key varies for different pages\) to select the control where the shortcut key is located. The shortcut key can be highlighted \(underlined\) by holding down Alt. + + + diff --git a/content/en/docs/Installation/installation-mode.md b/content/en/docs/Installation/installation-mode.md index 932796a79829e6b0d5666663955ff49736e4b9ae..08cf4db0721735e4e00f2b2a4797b6bd4f631d3b 100644 --- a/content/en/docs/Installation/installation-mode.md +++ b/content/en/docs/Installation/installation-mode.md @@ -1,7 +1,8 @@ -# Installation Mode +# Installation Mode >![](public_sys-resources/icon-notice.gif) **NOTICE:** ->The operating system can only be deployed on TaiShan 200 servers. For details about the types of supported servers, see **Installation Preparations** \> **Hardware Compatibility**. Moreover, it can only be installed using the CD/DVD-ROM. - +>- Only TaiShan 200 servers are supported. For details about the supported server models, see [Hardware Compatibility](hardware-compatibility.md). Only a virtualization platform created by the virtualization components \(openEuler as the host OS and QEMU and KVM provided in the release package\) of openEuler and the x86 virtualization platform of Huawei public cloud are supported. +>- Currently, only installation modes such as CD-ROM, USB flash drive, network, QCOW2 image, and private image are supported. In addition, only the x86 virtualization platform of Huawei public cloud supports the private image installation mode. + diff --git a/content/en/docs/Installation/installation-preparations.md b/content/en/docs/Installation/installation-preparations.md index d0ae2a1a93c6f9c00c2bb11050580a27137477ea..521cc59c0d3e803a9ac62249e4de23a9fd5e4df1 100644 --- a/content/en/docs/Installation/installation-preparations.md +++ b/content/en/docs/Installation/installation-preparations.md @@ -1,7 +1,3 @@ -# Installation Preparations +# Installation Preparations This section describes the compatibility of the hardware and software and the related configurations and preparations required for the installation. - - - - diff --git a/content/en/docs/Installation/installation-requirements-for-pms.md b/content/en/docs/Installation/installation-requirements-for-pms.md new file mode 100644 index 0000000000000000000000000000000000000000..e180fa6838ed6d4b01db473f24f605235ab8af81 --- /dev/null +++ b/content/en/docs/Installation/installation-requirements-for-pms.md @@ -0,0 +1,5 @@ +# Installation Requirements for PMs + +To install the openEuler OS on a PM, the PM must meet the following hardware compatibility and minimum hardware requirements. + + diff --git a/content/en/docs/Installation/installation-requirements-for-vms.md b/content/en/docs/Installation/installation-requirements-for-vms.md new file mode 100644 index 0000000000000000000000000000000000000000..f8de391cdd98130393da07dcbac976dc4c2bdcbe --- /dev/null +++ b/content/en/docs/Installation/installation-requirements-for-vms.md @@ -0,0 +1,6 @@ +# Installation Requirements for VMs + +To install the openEuler OS on a VM, the VM must meet the following hardware compatibility and minimum hardware requirements. + + + diff --git a/content/en/docs/Installation/installation-through-a-cd-dvd-rom.md b/content/en/docs/Installation/installation-through-a-cd-dvd-rom.md new file mode 100644 index 0000000000000000000000000000000000000000..440bb8634837511789ba7e894dad6da8d885c0b5 --- /dev/null +++ b/content/en/docs/Installation/installation-through-a-cd-dvd-rom.md @@ -0,0 +1,22 @@ +# Installation Through a CD/DVD-ROM + +This section describes how to create or use a CD/DVD-ROM to install the openEuler. + +## Preparing the Installation Source + +If you have obtained a CD/DVD-ROM, install the OS using the CD/DVD-ROM. If you have obtained an ISO file, record the ISO file to a DVD and install the OS using the obtained DVD. + +## Starting the Installation + +Perform the following operations to start the installation: + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Set the system to preferentially boot from the CD/DVD-ROM drive. Take the BIOS as an example. You need to move the **CD/DVD-ROM Drive** option under **Boot Type Order** to the top. + +1. Disconnect all drives that are not required, such as USB drives. +2. Start your computer system. +3. Insert the installation CD/DVD-ROM into the CD/DVD-ROM drive. +4. Restart the computer system. + +After a short delay, a graphical wizard page is displayed, which contains different boot options. If you do not perform any operation within one minute, the installation starts automatically with the default options. + diff --git a/content/en/docs/Installation/installation-through-a-private-image.md b/content/en/docs/Installation/installation-through-a-private-image.md new file mode 100644 index 0000000000000000000000000000000000000000..99f69fd172a1e4c69781b42273f58c1a455ccdd8 --- /dev/null +++ b/content/en/docs/Installation/installation-through-a-private-image.md @@ -0,0 +1,12 @@ +# Installation Through a Private Image + +This section describes how to create or use a private image to install the openEuler. + +## Creating a Private Image + +For instructions about how to create a private image, see _[Image Management Service User Guide](https://support.huaweicloud.com/usermanual-ims/en-us_topic_0013901628.html)_. + +## Starting the Installation + +For details about how to start the x86 virtualization platform of Huawei public cloud, see [Elastic Cloud Server User Guide](https://support.huaweicloud.com/intl/en-us/wtsnew-ims/index.html). + diff --git a/content/en/docs/Installation/installation-through-a-qcow2-image.md b/content/en/docs/Installation/installation-through-a-qcow2-image.md new file mode 100644 index 0000000000000000000000000000000000000000..520bfd78dc3b0f2ee8bdbd5cab7dd93708c2726e --- /dev/null +++ b/content/en/docs/Installation/installation-through-a-qcow2-image.md @@ -0,0 +1,46 @@ +# Installation Through a QCOW2 Image + +This section describes how to create or use a QCOW2 image to install the openEuler. + +## Creating a QCOW2 Image + +1. Install the **qemu-img** software package. + + ``` + # dnf install -y qemu-img + ``` + +2. Run the **create** command of the qemu-img tool to create an image file. The command format is as follows: + + ``` + $ qemu-img create -f -o + ``` + + The parameters are described as follows: + + - _imgFormat_: Image format. The value can be **raw** or **qcow2**. + - _fileOption_: File option, which is used to set features of an image file, such as specifying a backend image file, compression, and encryption. + - _fileName_: File name. + - _diskSize_: Disk size, which specifies the size of a block disk. The unit can be K, M, G, or T, indicating KiB, MiB, GiB, or TiB. + + For example, to create an image file **openEuler-imge.qcow2** whose disk size is 32 GB and format is qcow2, the command and output are as follows: + + ``` + $ qemu-img create -f qcow2 openEuler-image.qcow2 32G + Formatting 'openEuler-image.qcow2', fmt=qcow2 size=34359738368 cluster_size=65536 lazy_refcounts=off refcount_bits=16 + ``` + + +## Starting the Installation + +Perform the following operations to start the installation: + +1. Prepare a QCOW2 image file. +2. Prepare the VM network. +3. Prepare the UEFI boot tool set EDK II. +4. Prepare the VM XML configuration file. +5. Create a VM. +6. Start the VM. + +For details, see the _openEuler 20.03 LTS Virtualization User Guide_. + diff --git a/content/en/docs/Installation/installation-through-a-usb-flash-drive.md b/content/en/docs/Installation/installation-through-a-usb-flash-drive.md new file mode 100644 index 0000000000000000000000000000000000000000..9d0e076fef29c74f0941ce75b0bc1dc973e857a0 --- /dev/null +++ b/content/en/docs/Installation/installation-through-a-usb-flash-drive.md @@ -0,0 +1,77 @@ +# Installation Through a USB Flash Drive + +This section describes how to create or use a USB flash drive to install the openEuler. + +## Preparing the Installation Source + +Pay attention to the capacity of the USB flash drive. The USB flash drive must have sufficient space to store the entire image. It is recommended that the USB flash drive has more than 16 GB space. + +1. Connect the USB flash drive to the system and run the **dmesg** command to view related log. At the end of the log, you can view the information generated by the USB flash drive that is just connected. The information is similar to the following: + + ``` + [ 170.171135] sd 5:0:0:0: [sdb] Attached SCSI removable disk + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >Take the **sdb** USB flash drive as an example. + +2. Switch to user **root**. When running the **su** command, you need to enter the password. + + ``` + $ su - root + ``` + +3. Ensure that the USB flash drive is not mounted. Run the following command: + + ``` + # findmnt /dev/sdb + ``` + + - If no command output is displayed, the file system is not mounted. Go to the next step. + - If the following information is displayed, the USB flash drive is automatically mounted. + + ``` + # findmnt /dev/sdb + TARGET SOURCE FSTYPE OPTIONS + /mnt/iso /dev/sdb iso9660 ro,relatime + ``` + + In this case, you need to run the **umount** command to uninstall the device. + + ``` + # umount /mnt/iso + ``` + +4. Run the **dd** command to write the ISO image to the USB flash drive. + + ``` + # dd if=/path/to/image.iso of=/dev/device bs=blocksize + ``` + + Replace **/path/to/image.iso** with the complete path of the downloaded ISO image file, replace **device** with the device name provided by the **dmesg** command, and set a proper block size \(for example, 512 KB\) to replace **blocksize** to accelerate the write progress. + + For example, if the ISO image file name is **/home/testuser/Downloads/openEuler-20.03-LTS-aarch64-dvd.iso** and the detected device name is **sdb**, run the following command: + + ``` + # dd if=/home/testuser/Downloads/openEuler-20.03-LTS-aarch64-dvd.iso of=/dev/sdb bs=512k + ``` + +5. After the image is written, remove the USB flash drive. + + No progress is displayed during the image write process. When the number sign \(\#\) appears again, the write is complete. Exit the **root** account and remove the USB flash drive. In this case, you can use the USB flash drive as the installation source of the system. + + +## Starting the Installation + +Perform the following operations to start the installation: + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Set the system to preferentially boot from the USB flash drive. Take the BIOS as an example. You need to move the **USB** option under **Boot Type Order** to the top. + +1. Disconnect all drives that are not required. +2. Open your computer system. +3. Insert the USB flash drive into the computer. +4. Restart the computer system. + +After a short delay, a graphical wizard page is displayed, which contains different boot options. If you do not perform any operation within one minute, the installation program automatically starts the installation. + diff --git a/content/en/docs/Installation/installation-through-the-network-using-pxe.md b/content/en/docs/Installation/installation-through-the-network-using-pxe.md new file mode 100644 index 0000000000000000000000000000000000000000..519894ed6829f6726386fe693b98ab8addc83ae2 --- /dev/null +++ b/content/en/docs/Installation/installation-through-the-network-using-pxe.md @@ -0,0 +1,11 @@ +# Installation Through the Network Using PXE + +To boot with PXE, you need to properly configure the server and your computer's network interface to support PXE. + +If the target hardware is installed with a PXE-enabled NIC, we can configure it to boot the computer from network system files rather than local media \(such as CD-ROMs\) and execute the Anaconda installation program. + +For installation through the network using PXE, the client uses a PXE-enabled NIC to send a broadcast request for DHCP information and IP address to the network. The DHCP server provides the client with an IP address and other network information, such as the IP address or host name of the DNS and FTP server \(which provides the files required for starting the installation program\), and the location of the files on the server. + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>The TFTP, DHCP, and HTTP server configurations are not described here. For details, see [Full-automatic Installation Guide](full-automatic-installation-guide.md). + diff --git a/content/en/docs/Installation/introduction.md b/content/en/docs/Installation/introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..782fcd27c4fd1ac8744268470bddc07f792ecdef --- /dev/null +++ b/content/en/docs/Installation/introduction.md @@ -0,0 +1,57 @@ +# Introduction + +## Overview + +You can use the kickstart tool to automatically install the openEuler OS in either of the following ways: + +- Semi-automatic installation: You only need to specify the location of the kickstart file. Kickstart automatically configures OS attributes such as keyboard, language, and partitions. +- Automatic installation: The OS is automatically installed. + +## Advantages and Disadvantages + +[Table 1](#table1388812373315) lists the advantages and disadvantages of semi-automatic installation and full-automatic installation using kickstart. You can select an installation mode as required. + +**Table 1** Advantages and disadvantages + + + + + + + + + + + + + + + + +

Installation Mode

+

Advantage

+

Disadvantage

+

Semi-automatic installation

+

Services such as TFTP, PXE, and DHCP do not need to be prepared.

+

You need to manually specify the path of the kickstart file.

+

Full-automatic installation

+

The OS is installed automatically.

+

Services, such as TFTP, DHCPD, and PXE, need to be configured.

+
+ +## Background + +**Kickstart** + +Kickstart is an unattended installation mode. The principle of kickstart is to record typical parameters that need to be manually entered during the installation and generate the configuration file **ks.cfg**. During the installation, the installation program searches the **ks.cfg** configuration file first for required parameters. If no matching parameters are found, you need to manually configure these parameters. If all required parameters are covered by the kickstart file, automatic installation can be achieved by only specifying the path of the kickstart file. + +Both full-automatic or semi-automatic installation can be achieved by kickstart. + +**PXE** + +Pre-boot Execution Environment \(PXE\)\) works in client/server network mode. The PXE client can obtain an IP address from the DHCP server during the startup and implement client boot and installation through the network based on protocols such as trivial file transfer protocol \(TFTP\). + +**TFTP** + +TFTP is used to transfer simple and trivial files between clients and the server. + diff --git a/content/en/docs/Installation/minimum-hardware-specifications.md b/content/en/docs/Installation/minimum-hardware-specifications.md new file mode 100644 index 0000000000000000000000000000000000000000..041ca8efde420403959d0f90b0999ba2f382a28e --- /dev/null +++ b/content/en/docs/Installation/minimum-hardware-specifications.md @@ -0,0 +1,46 @@ +# Minimum Hardware Specifications + +[Table 1](#tff48b99c9bf24b84bb602c53229e2541) lists the minimum hardware specifications supported by openEuler. + +**Table 1** Minimum hardware specifications + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Minimum Hardware Specifications

+

Description

+

Architecture

+
  • AArch64
  • x86_64
+
  • 64-bit Arm architecture
  • 64-bit Intel x86 architecture
+

CPU

+
  • Huawei Kunpeng 920 series
  • Intel ® Xeon® processor
+

-

+

Memory

+

≥ 4 GB (8 GB or higher recommended for better user experience)

+

-

+

Hard disk

+

≥ 120 GB (for better user experience)

+

The hard disk supports IDE, SATA, SAS interfaces.

+
+ diff --git a/content/en/docs/Installation/minimum-virtualization-space.md b/content/en/docs/Installation/minimum-virtualization-space.md new file mode 100644 index 0000000000000000000000000000000000000000..e1e2c96afb3b7421f86cc0bdc76f677705bf016b --- /dev/null +++ b/content/en/docs/Installation/minimum-virtualization-space.md @@ -0,0 +1,46 @@ +# Minimum Virtualization Space + +[Table 1](#tff48b99c9bf24b84bb602c53229e2541) lists the minimum virtualization space required by openEuler. + +**Table 1** Minimum virtualization space + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Minimum Virtualization Space

+

Description

+

Architecture

+
  • AArch64
  • x86_64
+

-

+

CPU

+

Two CPUs

+

-

+

Memory

+

≥ 4 GB (8 GB or higher recommended for better user experience)

+

-

+

Hard disk

+

≥ 32 GB (120 GB or higher recommended for better user experience)

+

-

+
+ diff --git a/content/en/docs/Installation/obtaining-the-installation-source.md b/content/en/docs/Installation/obtaining-the-installation-source.md index 50b9672142e592f3bfb1ad4d2aa401183ddc5cc7..e2191b1bbb21b0c99ebbcdff57c7b6fa71e91194 100644 --- a/content/en/docs/Installation/obtaining-the-installation-source.md +++ b/content/en/docs/Installation/obtaining-the-installation-source.md @@ -1,11 +1,28 @@ -# Obtaining the Installation Source +# Obtaining the Installation Source Obtain the openEuler release package and verification file before the installation. Perform the following operations to obtain the openEuler release package: 1. Log in to the [openEuler Community](https://openeuler.org) website. -2. Click **Download**. The download list is displayed. -3. Click **Get openEuler-1.0-aarch64-dvd.iso** to download the **openEuler-1.0-aarch64-dvd.iso** release package to the local PC. -4. Click the **openEuler-1.0-aarch64-dvd.iso.sha256sum** link under the **please download the checksum file:** area to download the **openEuler-1.0-aarch64-dvd.iso.sha256sum** verification file to the local PC. +2. Click **Download**. +3. Click the link provided after **Download ISO**. The download list is displayed. +4. Click **openEuler-20.03-LTS**. The openEuler 20.03 LTS version download list is displayed. +5. Click **ISO**. The ISO download list is displayed. + - **aarch64**: ISO image file of the AArch64 architecture + - **x86\_64**: ISO image file of the x86\_64 architecture + - **source**: ISO image file of the openEuler source code + +6. Select the openEuler release package and verification file to be downloaded based on the architecture of the environment to be installed. + - If the AArch64 architecture is used: + 1. Click **aarch64**. + 2. Click **openEuler-20.03-LTS-aarch64-dvd.iso** to download the openEuler release package to the local host. + 3. Click **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** to download the openEuler verification file to the local host. + + - If the x86\_64 architecture is used: + 1. Click **x86\_64**. + 2. Click **openEuler-20.03-LTS-x86\_64-dvd.iso** to download the openEuler release package to the local host. + 3. Click **openEuler-20.03-LTS-x86\_64-dvd.iso.sha256sum** to download the openEuler verification file to the local host. + + diff --git a/content/en/docs/Installation/preface.md b/content/en/docs/Installation/preface.md index 4e7576f5538dba7fa46a084640a1ee22aa6b1e51..03cc2c90e93274d502d832ff5ade118ef633640b 100644 --- a/content/en/docs/Installation/preface.md +++ b/content/en/docs/Installation/preface.md @@ -1,12 +1,12 @@ -# Preface +# Preface ## Overview -This guide describes how to install Huawei openEuler 1.0 in graphical mode or text mode. +This guide describes how to install Huawei openEuler. ## Intended Audience -This guide is intended for openEuler 1.0 users with a basic understanding of Linux system management, and is also recommended for administrators, system engineers, and maintenance personnel. This guide assumes that you have a basic understanding of Linux system management. +This guide is intended for openEuler users with a basic understanding of Linux system management, and is also recommended for administrators, system engineers, and maintenance personnel. ## Symbol Conventions @@ -19,13 +19,13 @@ The symbols that may be found in this document are defined as follows. -

+

Indicates a potentially hazardous situation which, if not avoided, could result in equipment damage, data loss, performance deterioration, or unanticipated results.

NOTICE is used to address practices not related to personal injury.

-

+

Supplements the important information in the main text.

NOTE is used to address information not related to personal injury, equipment damage, and environment deterioration.

diff --git a/content/en/docs/Installation/release-package-integrity-check.md b/content/en/docs/Installation/release-package-integrity-check.md index 05cefad8a7b138167d8c702486924874b447f172..5b6050f3f8caa5fdb535ee10ea739fcfa04d0467 100644 --- a/content/en/docs/Installation/release-package-integrity-check.md +++ b/content/en/docs/Installation/release-package-integrity-check.md @@ -1,39 +1,42 @@ -# Release Package Integrity Check +# Release Package Integrity Check + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>This section describes how to verify the integrity of the release package in the AArch64 architecture. The procedure for verifying the integrity of the release package in the x86\_64 architecture is the same. ## Introduction To prevent the software package from being incompletely downloaded due to network or storage device faults during transmission, you need to verify the integrity of the software package after obtaining it. Only the software packages that pass the verification can be installed. -Compare the verification value recorded in the verification file with the .iso file verification value calculated manually to check whether the software package passes the verification. If the verification values are consistent, the integrity of the .iso file is not damaged. If they are inconsistent, you can confirm that the file integrity is damaged and you need to obtain the file again. +Compare the verification value recorded in the verification file with the .iso file verification value calculated manually to check whether the software package passes the verification. If the verification values are consistent, the .iso file is not damaged. If they are inconsistent, you can confirm that the file is damaged and you need to obtain the file again. ## Prerequisites Before verifying the integrity of the release package, you need to prepare the following files: -.iso file: **openEuler-1.0-aarch64-dvd.iso** +ISO file: **openEuler-20.03-LTS-aarch64-dvd.iso** -Verification file: **openEuler-1.0-aarch64-dvd.iso.sha256sum** +Verification file: **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** ## Procedure To verify the file integrity, perform the following operations: -1. Run the following command to obtain the verification value in the verification file: +1. Obtain the verification value in the verification file. Run the following command: ``` - #cat openEuler-1.0-aarch64-dvd.iso.sha256sum + #cat openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum ``` -2. Run the following command to calculate the SHA256 verification value of the file: +2. Calculate the SHA256 verification value of the file. Run the following command: ``` - #sha256sum openEuler-1.0-aarch64-dvd.iso + #sha256sum openEuler-20.03-LTS-aarch64-dvd.iso ``` After the command is run, the verification value is displayed. 3. Check whether the values calculated in step 1 and step 2 are consistent. - If the verification values are consistent, the integrity of the .iso file is not damaged. If they are inconsistent, you can confirm that the file integrity is damaged and you need to obtain the file again. + If the verification values are consistent, the .iso file is not damaged. If they are inconsistent, you can confirm that the file is damaged and you need to obtain the file again. diff --git a/content/en/docs/Installation/selecting-installation-software.md b/content/en/docs/Installation/selecting-installation-software.md index b7fd49c152fd00500069f1e3ff2c3badebde4e97..03fd96b05cf180566708183a0085a6929c3daf6b 100644 --- a/content/en/docs/Installation/selecting-installation-software.md +++ b/content/en/docs/Installation/selecting-installation-software.md @@ -1,14 +1,15 @@ -# Selecting Installation Software +# Selecting Installation Software On the **INSTALLATION SUMMARY** page, click **SOFTWARE SELECTION** to specify the software package to be installed. -Based on the site requirements, select **Minimal Install** on the left box and select the additional option under the **Add-Ons for Selected Environment** area on the right, as shown in [Figure 1](#en-us_topic_0186390261_en-us_topic_0122145865_fig03031519101414). +Based on the actual requirements, select **Minimal Install** on the left box and select an add-on in the **Add-Ons for Selected Environment** area on the right, as shown in [Figure 1](#en-us_topic_0186390261_en-us_topic_0122145865_fig03031519101414). **Figure 1** Selecting installation software ![](figures/selecting-installation-software.png "selecting-installation-software") >![](public_sys-resources/icon-note.gif) **NOTE:** ->In Minimal Install mode, not all packages in the installation source will be installed. If the required package is not installed, you can mount the installation source to the local PC and configure a repository source, and use DNF to install the package. +>- In **Minimal Install** mode, not all packages in the installation source will be installed. If the required package is not installed, you can mount the installation source to the local PC and configure a repo source, and use DNF to install the package. +>- If you select **Virtual Host**, the virtualization components QEMU, libvirt, and edk2 are installed by default. You can select whether to install the OVS component in the add-on area. After the setting is complete, click **Done** in the upper left corner to go back to the **INSTALLATION SUMMARY** page. diff --git a/content/en/docs/Installation/semi-automatic-installation-guide.md b/content/en/docs/Installation/semi-automatic-installation-guide.md new file mode 100644 index 0000000000000000000000000000000000000000..8539108c439f2374e74621406cc7fe545422d17d --- /dev/null +++ b/content/en/docs/Installation/semi-automatic-installation-guide.md @@ -0,0 +1,117 @@ +# Semi-automatic Installation Guide + +## Environment Requirements + +The environment requirements for semi-automatic installation of openEuler using kickstart are as follows: + +- PM/VM \(for details about how to create VMs, see the documents from corresponding vendors\): includes the computer where kickstart is used for automatic installation and the computer where the kickstart tool is installed. +- Httpd: stores the kickstart file. +- ISO: openEuler-20.03-LTS-aarch64-dvd.iso + +## Procedure + +To use kickstart to perform semi-automatic installation of openEuler, perform the following steps: + +**Environment Preparation** + +>![](public_sys-resources/icon-note.gif) **NOTE:** +>Before the installation, ensure that the firewall of the HTTP server is disabled. Run the following command to disable the firewall: +>``` +>iptables -F +>``` + +1. Install httpd and start the service. + + ``` + # dnf install httpd -y + # systemctl start httpd + # systemctl enable httpd + ``` + +2. Run the following commands to prepare the kickstart file: + + ``` + # mkdir /var/www/html/ks + #vim /var/www/html/ks/openEuler-ks.cfg ===>The file can be obtained by modifying the anaconda-ks.cfg file automatically generated from openEuler, or can be created using the system-config-kickstart tool. + ==================================== + ***Modify the following information as required.*** + #version=DEVEL + ignoredisk --only-use=sda + autopart --type=lvm + # Partition clearing information + clearpart --none --initlabel + # Use graphical install + graphical + # Use CDROM installation media + cdrom + # Keyboard layouts + keyboard --vckeymap=cn --xlayouts='cn' + # System language + lang zh_CN.UTF-8 + + # Network information + network --bootproto=dhcp --device=enp4s0 --ipv6=auto --activate + network --hostname=openeuler.com + # Root password + rootpw --iscrypted $6$fQE83lxEZ48Or4zc$j7/PlUMHn29yTjCD4Fi44WTZL/RzVGxJ/7MGsZMl6QfE3KjIVT7M4UrhFXbafvRq2lUddAFcyWHd5WRmXfEK20 + # Run the Setup Agent on first boot + firstboot --enable + # Do not configure the X Window System + skipx + # System services + services --disabled="chronyd" + # System timezone + timezone Asia/Shanghai --isUtc--nontp + + %packages + @^minimal-environment + @standard + + %end + + %anaconda + pwpolicy root --minlen=8 --minquality=1 --notstrict --nochanges --notempty + pwpolicy user --minlen=8 --minquality=1 --notstrict --nochanges --emptyok + pwpolicy luks --minlen=8 --minquality=1 --notstrict --nochanges --notempty + %end + + %post + #enable kdump + sed -i "s/ ro / ro crashkernel=1024M,high /" /boot/efi/EFI/openEuler/grub.cfg + %end + ===================================== + ``` + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The method of generating the password ciphertext is as follows: + >\# python3 + >Python 3.7.0 \(default, Apr 1 2019, 00:00:00\) + >\[GCC 7.3.0\] on linux + >Type "help", "copyright", "credits" or "license" for more information. + >\>\>\> import crypt + >\>\>\> passwd = crypt.crypt\("myPasswd"\) + >\>\>\> print\(passwd\) + >$6$63c4tDmQGn5SDayV$mZoZC4pa9Jdt6/ALgaaDq6mIExiOO2EjzomB.Rf6V1BkEMJDcMddZeGdp17cMyc9l9ML9ldthytBEPVcnboR/0 + +3. Mount the ISO image file to the CD-ROM drive of the computer where openEuler is to be installed. + + If you want to install openEuler through the NFS, specify the path \(which is **cdrom** by default\) of installation source in the kickstart file. + + +**Installing the System** + +1. The installation selection dialog box is displayed. + 1. On the installation wizard page in [Starting the Installation](starting-the-installation.md), select **Install openEuler 20.03 LTS** and press **e**. + 2. Add **inst.ks=http://server ip/ks/openEuler-ks.cfg** to the startup parameters. + + ![](figures/半自动-new.png) + + 3. Press **Ctrl**+**x** to start the automatic installation. + +2. Verify that the installation is complete. + + After the installation is complete, the system automatically restarts. Then, the installation page is displayed again. Shut down the computer and change startup option to start from the hard disk preferentially. + + ![](figures/安装完成1.png) + + diff --git a/content/en/docs/Installation/setting-a-system-language.md b/content/en/docs/Installation/setting-a-system-language.md index 32010c0abcea0c45dd8cf2bef7780e73eaaeaeca..cc544d8f1e53428a8e43401cae3f6c481df899a0 100644 --- a/content/en/docs/Installation/setting-a-system-language.md +++ b/content/en/docs/Installation/setting-a-system-language.md @@ -1,9 +1,9 @@ -# Setting a System Language +# Setting a System Language -On the **INSTALLATION SUMMARY** page, click **LANGUAGE SUPPORT** to set the system language. Set another language as required, such as Chinese, as shown in [Figure 1](#en-us_topic_0186390098_en-us_topic_0122145772_fig187301927172619). +On the **INSTALLATION SUMMARY** page, click **LANGUAGE SUPPORT** to set the system language, as shown in [Figure 1](#en-us_topic_0186390098_en-us_topic_0122145772_fig187301927172619). Set another language as required, such as Chinese. >![](public_sys-resources/icon-note.gif) **NOTE:** ->- If you select Chinese, the system does not display Chinese characters after you log in to the system using VNC, because VNC does not support Chinese characters. If you log in to the system in SSH mode, Chinese characters will be displayed. +>- If you select Chinese, the system does not display Chinese characters after you log in to the system using VNC, because VNC does not support Chinese characters. If you log in to the system in SSH mode, Chinese characters will be displayed. >- If you select English, there will be no impact. **Figure 1** Setting a system language diff --git a/content/en/docs/Installation/setting-date-and-time.md b/content/en/docs/Installation/setting-date-and-time.md index 9118e6f99ee9e88994735677bbbf65209b3c6005..9bc313fb88e0b0be46b4128f8df49ff54532e0e1 100644 --- a/content/en/docs/Installation/setting-date-and-time.md +++ b/content/en/docs/Installation/setting-date-and-time.md @@ -1,4 +1,4 @@ -# Setting Date and Time +# Setting Date and Time On the **INSTALLATION SUMMARY** page, click **TIME & DATE**. On the **TIME & DATE** page, set the system time zone, date, and time. @@ -6,10 +6,12 @@ When setting the time zone, you can click a specific city on the map with the mo If your city is not displayed on the map or in the drop-down list, select the nearest city in the same time zone. +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- Before manually setting the time zone, disable the network time synchronization function in the upper right corner. +>- If you want to use the network time, ensure that the network can connect to the remote NTP server. For details about how to set the network, see [Setting the Network and Host Name](setting-the-network-and-host-name.md). + **Figure 1** Setting date and time ![](figures/setting-date-and-time.png "setting-date-and-time") After the setting is complete, click **Done** in the upper left corner to go back to the **INSTALLATION SUMMARY** page. -   - diff --git a/content/en/docs/Installation/setting-installation-parameters.md b/content/en/docs/Installation/setting-installation-parameters.md index 4ef9a5baadf9fd9215e9d98e6989c48a1fb30a93..4f0c1398f43f6a8eefac707bd666d0b025380374 100644 --- a/content/en/docs/Installation/setting-installation-parameters.md +++ b/content/en/docs/Installation/setting-installation-parameters.md @@ -1,4 +1,4 @@ -# Setting Installation Parameters +# Setting Installation Parameters diff --git a/content/en/docs/Installation/setting-the-installation-destination.md b/content/en/docs/Installation/setting-the-installation-destination.md index 54bb982eab22e91a816f71249c47f9f700f42b52..b248d53607eaf50206786c3312dd6bd7b3e730ae 100644 --- a/content/en/docs/Installation/setting-the-installation-destination.md +++ b/content/en/docs/Installation/setting-the-installation-destination.md @@ -1,19 +1,22 @@ -# Setting the Installation Destination +# Setting the Installation Destination -On the **INSTALLATION SUMMARY** page, click **INSTALLATION DESTINATION** to select the operating system installation disk and partition. +On the **INSTALLATION SUMMARY** page, click **INSTALLATION DESTINATION** to select the OS installation disk and partition. You can view available local storage devices in [Figure 1](#fig1195417125015). You can also add an attached device or a network disk specified by clicking **Add a disk**. +>![](public_sys-resources/icon-notice.gif) **NOTICE:** +>When selecting the device to be installed, you are advised not to use the NVMe SSD storage medium as the OS installation disk. + **Figure 1** Setting the installation destination ![](figures/setting-the-installation-destination.png "setting-the-installation-destination") ## Storage Configuration -On the **INSTALLATION DESTINATION** page, set storage configurations for system partition. You can either manually configure partitions or select **Automatic** to automatically configure partitioning. +On the **INSTALLATION DESTINATION** page, configure storage for system partition. You can either manually configure partitions or select **Automatic** to automatically configure partitioning. >![](public_sys-resources/icon-note.gif) **NOTE:** ->- During partitioning, to ensure system security and performance, you are advised to divide the device into the following partitions: **/boot**, **/var**, **/var/log**, **/var/log/audit**, **/home**, **/tmp**. ->- If the system is configured with the swap partition, the swap partition is used when the physical memory of the system is insufficient. Although the swap partition can be used to expand the physical memory, if the swap partition is used due to insufficient memory, the system response time increases and the system performance deteriorates. Therefore, you are not advised to configure the swap partition in the system with sufficient physical memory or the performance sensitive system. +>- During partitioning, to ensure system security and performance, you are advised to divide the device into the following partitions: **/boot**, **/var**, **/var/log**, **/var/log/audit**, **/home**, and **/tmp**. +>- If the system is configured with the swap partition, the swap partition is used when the physical memory of the system is insufficient. Although the swap partition can be used to expand the physical memory, if the swap partition is used due to insufficient memory, the system response slows and the system performance deteriorates. Therefore, you are not advised to configure the swap partition in the system with sufficient physical memory or the performance sensitive system. >- If you need to split a logical volume group, select **Custom** to manually partition the logical volume group. On the **MANUAL PARTITIONING** page, click **Modify** in the **Volume Group** area to reconfigure the logical volume group. **Automatic** @@ -30,7 +33,7 @@ If you need to manually partition the disk, click **Customize** and click **D On the **MANUAL PARTITIONING** page, you can partition the disk in either of the following ways: - Automatic creation: Click **Click here to create them automatically**. The system automatically assigns four mount points according to the available storage space: **/boot**, **/**, **/boot/efi**, and **swap**. -- Manual creation: Click ![](figures/en-us_image_0216566635.png) to add a mount point. It is recommended that the expected capacity of each mount point not exceed the available space. +- Manual creation: Click ![](figures/en-us_image_0229291243.png) to add a mount point. It is recommended that the expected capacity of each mount point not exceed the available space. >![](public_sys-resources/icon-note.gif) **NOTE:** >If the expected capacity of the mount point exceeds the available space, the system allocates the remaining available space to the mount point. diff --git a/content/en/docs/Installation/setting-the-installation-source.md b/content/en/docs/Installation/setting-the-installation-source.md index e94c67985a981369dd1ffa797034f1d6ce7e1613..3e9dfe3d23cf49ac0ae48b5106b27206ee1ab7b6 100644 --- a/content/en/docs/Installation/setting-the-installation-source.md +++ b/content/en/docs/Installation/setting-the-installation-source.md @@ -1,14 +1,19 @@ -# Setting the Installation Source +# Setting the Installation Source On the **INSTALLATION SUMMARY** page, click **INSTALLATION SOURCE** to locate the installation source. -If you use the CD/DVD-ROM driver for the installation, the installation program automatically detects and displays the installation source information. You can use the default settings. [Figure 1](#en-us_topic_0186390100_en-us_topic_0144427079_fig93633295132) shows an example. +If you use a CD/DVD-ROM for installation, the installation program automatically detects and displays the installation source information. You can use the default settings. [Figure 1](#en-us_topic_0186390100_en-us_topic_0144427079_fig93633295132) shows an example. **Figure 1** Setting the installation source ![](figures/setting-the-installation-source.png "setting-the-installation-source") +When you use the network for installation, if the HTTPS server uses a private certificate, press **e** on the installation wizard page to go to the parameter editing page and add the **inst.noverifyssl** parameter, as shown in [Figure 2](#fig113517811415). + +**Figure 2** Adding the **inst.noverifyssl** parameter +![](figures/adding-the-inst-noverifyssl-parameter.png "adding-the-inst-noverifyssl-parameter") + After the setting is complete, click **Done** in the upper left corner to go back to the **INSTALLATION SUMMARY** page. >![](public_sys-resources/icon-note.gif) **NOTE:** ->During the installation, if you have any questions about configuring the installation source, see **FAQs** \> **An Exception Occurs During the Selection of the Installation Source**. +>During the installation, if you have any questions about configuring the installation source, see [An Exception Occurs During the Selection of the Installation Source](an-exception-occurs-during-the-selection-of-the-installation-source.md). diff --git a/content/en/docs/Installation/setting-the-keyboard-layout.md b/content/en/docs/Installation/setting-the-keyboard-layout.md index 7084ed71e424fc0c1456f45f527de3afb92799bb..cce69f41c2e62dedf7882007922cf0d4a9e332bd 100644 --- a/content/en/docs/Installation/setting-the-keyboard-layout.md +++ b/content/en/docs/Installation/setting-the-keyboard-layout.md @@ -1,4 +1,4 @@ -# Setting the Keyboard Layout +# Setting the Keyboard Layout On the **INSTALLATION SUMMARY** page, click **KEYBOARD**. You can add or delete multiple keyboard layouts in the system. diff --git a/content/en/docs/Installation/setting-the-network-and-host-name.md b/content/en/docs/Installation/setting-the-network-and-host-name.md index d978f194ae8b70fd782d3a7faa71a8b8a8c93adb..74e6474468eb45a7132a12a573aba03d7a5e4418 100644 --- a/content/en/docs/Installation/setting-the-network-and-host-name.md +++ b/content/en/docs/Installation/setting-the-network-and-host-name.md @@ -1,10 +1,10 @@ -# Setting the Network and Host Name +# Setting the Network and Host Name On the **INSTALLATION SUMMARY** page, select **NETWORK & HOST NAME** to configure the system network functions. The installation program automatically detects a local access interface. The detected interface is listed in the left box, and the interface details are displayed in the right-hand area, as shown in [Figure 1](#en-us_topic_0186390264_en-us_topic_0122145831_fig123700157297). In the upper right corner, click the switchover button to enable or disable the network interface. You can also click **Configure** to configure the selected interface. -In the lower left box, enter the host name. The host name can be the fully quantified domain name \(format: hostname.domainname\) or the brief host name \(format: hostname\). +In the lower left box, enter the host name. The host name can be the fully quantified domain name \(FQDN\) in the format of hostname.domainname or the brief host name in the format of hostname. **Figure 1** Setting the network and host name ![](figures/setting-the-network-and-host-name.png "setting-the-network-and-host-name") diff --git a/content/en/docs/Installation/starting-installation.md b/content/en/docs/Installation/starting-installation.md index ddb7317a72003c706ba7b81a86242e72e0e854da..12baf977323c432cb8013b35e9ebfeb8e7d95b60 100644 --- a/content/en/docs/Installation/starting-installation.md +++ b/content/en/docs/Installation/starting-installation.md @@ -1,6 +1,6 @@ -# Starting Installation +# Starting Installation -On the installation interface, after all the mandatory items are configured, the safety symbols will disappear. Then, you can click **Begin Installation** to install the system. +On the installation page, after all the mandatory items are configured, the safety symbols will disappear. Then, you can click **Begin Installation** to install the system. **Figure 1** Starting installation ![](figures/starting-installation.png "starting-installation") diff --git a/content/en/docs/Installation/starting-the-installation.md b/content/en/docs/Installation/starting-the-installation.md index 44313784239cf62756b883a2d4606b7d10191313..b6eabc1e144ee8dcafc19dcf9bc1eb5d18bae325 100644 --- a/content/en/docs/Installation/starting-the-installation.md +++ b/content/en/docs/Installation/starting-the-installation.md @@ -1,9 +1,11 @@ -# Starting the Installation +# Starting the Installation -Mount the ISO image of openEuler 1.0 to the server from the CD/DVD-ROM and restart the server. The procedure is as follows: +## Booting from the CD/DVD-ROM Drive + +Load the ISO image of openEuler from the CD/DVD-ROM drive of the server and restart the server. The procedure is as follows: >![](public_sys-resources/icon-note.gif) **NOTE:** ->Before the installation, ensure that the server boots from the CD/DVD-ROM drive preferentially. The following steps describe how to install the operating system using the virtual CD/DVD-ROM drive on the baseboard management controller \(BMC\). Installing the operating system from a physical drive is simple. After the installation starts, the procedure for the physical drive is the same as that for the virtual drive. +>Before the installation, ensure that the server boots from the CD/DVD-ROM drive preferentially. The following steps describe how to install the openEuler using the virtual CD/DVD-ROM drive on the baseboard management controller \(BMC\). Installing the openEuler from a physical drive is simple. After the installation starts, the procedure for the physical drive is the same as that of the virtual drive. 1. On the toolbar, click the icon shown in the following figure. @@ -22,27 +24,28 @@ Mount the ISO image of openEuler 1.0 to the server from the CD/DVD-ROM and resta **Figure 3** Restart icon ![](figures/restart-icon.png "restart-icon") -5. A boot menu is displayed after the system is booted using the boot medium. In addition to options for starting the installation program, some other options are available on the boot menu. The **Install openEuler 1.0 with text mode** installation mode is used by default. Press the arrow keys on the keyboard to change the selection, and press **Enter** when the desired option is highlighted. - >![](public_sys-resources/icon-note.gif) **NOTE:** - >- If you do not perform any operations within 1 minute, the system automatically selects the default option **Install openEuler 1.0 with text mode** and enters the installation interface. - >- During physical machine installation, if you cannot use the arrow keys to select boot options and the system does not respond after you press **Enter**, click ![](figures/en-us_image_0214071107.png) on the BMC page and configure **Key & Mouse Reset**. +## Installation Wizard + +A boot menu is displayed after the system is booted using the boot medium. In addition to options for starting the installation program, some other options are available on the boot menu. During system installation, the **Test this media & install openEuler 20.03 LTS** mode is used by default. Press the arrow keys on the keyboard to change the selection, and press **Enter** when the desired option is highlighted. - **Figure 4** Installation wizard - ![](figures/installation-wizard.png "installation-wizard") +>![](public_sys-resources/icon-note.gif) **NOTE:** +>- If you do not perform any operations within 1 minute, the system automatically selects the default option **Test this media & install openEuler 20.03 LTS** and enters the installation page. +>- During PM installation, if you cannot use the arrow keys to select boot options and the system does not respond after you press **Enter**, click ![](figures/en-us_image_0229420473.png) on the BMC page and configure **Key & Mouse Reset**. -    +**Figure 4** Installation Wizard +![](figures/installation-wizard.png "installation-wizard") - Installation wizard options are described as follows: +Installation wizard options are described as follows: - - **Install openEuler 1.0 with GUI mode**: Install openEuler in GUI mode on your server. For details, see **Installation Guide** \> **Using GUI Mode for Installation**. - - **Install openEuler 1.0 with text mode**: Default option. Install openEuler in text mode on your server. The installation is completed in **tty0** of the system. For details, see **Installation Guide** \>** Using Text Mode for Installation**. +- **Install openEuler 20.03 LTS**: Install openEuler on your server in GUI mode. - - **Test this media & install openEuler 1.0**: Default option. Install openEuler on your server using the graphical installation program. The integrity of the installation medium is checked before the installation program is started. +- **Test this media & install openEuler 20.03 LTS**: Default option. Install openEuler on your server in GUI mode. The integrity of the installation medium is checked before the installation program is started. For details, see [Installation in GUI Mode](installation-in-gui-mode.md). - - **Troubleshooting**: Problem locating mode, which is used when the system cannot be installed properly. In the fault locating mode, the following options are available: - - **Install openEuler 1.0 in basic graphics mode**: Basic graphics installation mode. In this mode, the video driver is not started before the system starts and runs. - - **Rescue an openEuler system**: Rescue mode, which is used to restore the system. In rescue mode, the operating system installation process is printed in the VNC or BMC, and the serial port is unavailable. +- **Troubleshooting**: Troubleshooting mode, which is used when the system cannot be installed properly. In troubleshooting mode, the following options are available: + - **Install openEuler 20.03-LTS in basic graphics mode**: Basic graphics installation mode. In this mode, the video driver is not started before the system starts and runs. + - **Rescue the openEuler system**: Rescue mode, which is used to restore the system. In rescue mode, the installation process is printed in the VNC or BMC, and the serial port is unavailable. +On the installation wizard screen, press **e** to go to the parameter editing screen of the selected option, and press **c** to go to the command-line interface \(CLI\). diff --git a/content/en/docs/Installation/terms-of-use.md b/content/en/docs/Installation/terms-of-use.md index 3a59918d184d9ce5422fab83029da0bbf1fc0ba2..c06728e4ff2cb79c5ece90890bd7cb684a37c88e 100644 --- a/content/en/docs/Installation/terms-of-use.md +++ b/content/en/docs/Installation/terms-of-use.md @@ -1,17 +1,13 @@ -# Terms of Use +# Terms of Use **Copyright © Huawei Technologies Co., Ltd. 2020. All rights reserved.** Your replication, use, modification, and distribution of this document are governed by the Creative Commons License Attribution-ShareAlike 4.0 International Public License \(CC BY-SA 4.0\). You can visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) to view a human-readable summary of \(and not a substitute for\) CC BY-SA 4.0. For the complete CC BY-SA 4.0, visit [https://creativecommons.org/licenses/by-sa/4.0/legalcode](https://creativecommons.org/licenses/by-sa/4.0/legalcode). -   - **Trademarks and Permissions** openEuler is a trademark or registered trademark of Huawei Technologies Co., Ltd. All other trademarks and registered trademarks mentioned in this document are the property of their respective holders. -   - **Disclaimer** This document is used only as a guide. Unless otherwise specified by applicable laws or agreed by both parties in written form, all statements, information, and recommendations in this document are provided "AS IS" without warranties, guarantees or representations of any kind, including but not limited to non-infringement, timeliness, and specific purposes. diff --git a/content/en/docs/Installation/using-kickstart-for-automatic-installation.md b/content/en/docs/Installation/using-kickstart-for-automatic-installation.md new file mode 100644 index 0000000000000000000000000000000000000000..4458a352ce5f4f4c9a9b712e6b1f7f7a9dc0f777 --- /dev/null +++ b/content/en/docs/Installation/using-kickstart-for-automatic-installation.md @@ -0,0 +1,3 @@ +# Using Kickstart for Automatic Installation + + diff --git a/content/en/docs/Installation/virtualization-platform-compatibility.md b/content/en/docs/Installation/virtualization-platform-compatibility.md new file mode 100644 index 0000000000000000000000000000000000000000..8a1dd0510685486dffd711ddab26fe1d548bc997 --- /dev/null +++ b/content/en/docs/Installation/virtualization-platform-compatibility.md @@ -0,0 +1,7 @@ +# Virtualization Platform Compatibility + +When installing openEuler, pay attention to the compatibility of the virtualization platform. Currently, the following virtualization platforms are supported: + +- A virtualization platform created by the virtualization components \(openEuler as the host OS and QEMU and KVM provided in the release package\) of openEuler +- x86 virtualization platform of Huawei public cloud + diff --git a/content/en/docs/Installation/what-are-the-constraints-on-network-configurations.md b/content/en/docs/Installation/what-are-the-constraints-on-network-configurations.md index 225e4260ae28c3bec58eb88670c8ff6d43ac9e05..bf1865a24bb3f24a3ec9acac68024659ad588c6a 100644 --- a/content/en/docs/Installation/what-are-the-constraints-on-network-configurations.md +++ b/content/en/docs/Installation/what-are-the-constraints-on-network-configurations.md @@ -1,11 +1,11 @@ -# What Are the Constraints on Network Configurations? +# What Are the Constraints on Network Configurations? The NetworkManager and network services are network service management tools. Some functions of the two services overlap. -- If the NetworkManager management service is used, run the **nmcli** command or modify the configuration file to configure the network \(such as the IP address and route\). Do not run the **ip**, **ifconfig**, or **route** command to configure the network. +- If the NetworkManager service is used, run the **nmcli** command or modify the configuration file to configure the network \(such as the IP address and route\). Do not run the **ip**, **ifconfig**, or **route** command to configure the network. >![](public_sys-resources/icon-note.gif) **NOTE:** - >When the NetworkManager service is enabled and you run commands such as **ip**, **ifconfig**, and **route** to configure the network, the configurations will be overwritten by NetworkManager later. + >When the NetworkManager service is enabled and you run commands such as **ip**, **ifconfig**, and **route** to configure the network, the configurations will be overwritten by NetworkManager. To check whether NetworkManager is enabled, run the following command: diff --git a/content/en/docs/Installation/why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md b/content/en/docs/Installation/why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md index cc999721e84385b234f9e4ab7d668308f4d75e71..10da2008daf2d95257304aefc2fbcd6d4c1dd02f 100644 --- a/content/en/docs/Installation/why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md +++ b/content/en/docs/Installation/why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md @@ -1,21 +1,21 @@ -# Why Does openEuler Enter Emergency Mode After It Is Powered On? +# Why Does openEuler Enter Emergency Mode After It Is Powered On? ## Symptom openEuler enters emergency mode after it is powered on. -![](figures/en-us_image_0214071156.jpg) +![](figures/en-us_image_0229291264.jpg) ## Possible Causes -Damaged OS files result in disk mounting failure, or over pressured I/O results in disk mounting timeout \(threshold: 90s\). +Damaged OS files result in disk mounting failure, or overpressured I/O results in disk mounting timeout \(threshold: 90s\). -An abnormal and power-off system, and low performance of disk I/O may cause the problem. +An unexpected system power-off, and low I/O performance of disks may also cause the problem. ## Solution -1. Enter the password of root account to log in to openEuler. -2. Check and restore files by using the fsck tool, and restart openEuler. +1. Enter the password of the **root** account to log in to openEuler. +2. Check and restore files by using the file system check \(fsck\) tool, and restart openEuler. >![](public_sys-resources/icon-note.gif) **NOTE:** >The fsck tool checks and maintains inconsistent file systems. If the system is powered off or a disk is faulty, run the **fsck** command to check file systems. Run the **fsck.ext3 -h** and **fsck.ext4 -h** commands to view the usage method of the fsck tool. diff --git a/content/en/docs/Installation/why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md b/content/en/docs/Installation/why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md index 87a9687388c4c7cd0cc9943fdc8d2a630a77bcb4..dea11ce2209875c90c877f5e9fa5aee4995cdc92 100644 --- a/content/en/docs/Installation/why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md +++ b/content/en/docs/Installation/why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md @@ -1,22 +1,22 @@ -# Why Does openEuler Fail to Start After I Install It to the Second Disk? +# Why Does openEuler Fail to Start After I Install It to the Second Disk? ## Symptom -The operating system is installed on the second disk **sdb** during the installation. After the operating system is restarted, the operating system fails to be started. +The OS is installed on the second disk **sdb** during the installation. The openEuler fails to be started. ## Possible Cause -When openEuler is installed to the second disk, MBR and GRUB are installed to the second disk **sdb** by default. The following two conditions may occur: +When openEuler is installed to the second disk, MBR and GRUB are installed to the second disk **sdb** by default. The following two situations may occur: 1. openEuler installed on the first disk is loaded and started if it is complete. 2. openEuler installed on the first disk fails to be started from hard disks if it is incomplete. -The preceding two conditions occur because the boot loader is loaded from the first disk **sda** by default to start openEuler on the BIOS window. If openEuler is not installed on the **sda** disk, system restart fails. +The preceding two situations occur because the first disk **sda** is booted by default to start openEuler on the BIOS window. If openEuler is not installed on the **sda** disk, system restart fails. ## Solution This problem can be solved using either of the following two methods: - During the installation of openEuler, select the first disk or both disks, and install the boot loader on the first disk **sda**. -- After installing openEuler, restart it by modifying the disk startup sequence on the BIOS window. +- After installing openEuler, restart it by modifying the boot option on the BIOS window. diff --git a/content/en/docs/Quickstart/en-us_bookmap_0234817987.md b/content/en/docs/Quickstart/en-us_bookmap_0234817987.md new file mode 100644 index 0000000000000000000000000000000000000000..59ae3e36206dc14a73e424a6ff240b452595a174 --- /dev/null +++ b/content/en/docs/Quickstart/en-us_bookmap_0234817987.md @@ -0,0 +1,4 @@ +# Quick Start for openEuler 20.03 + +- [Quick Start](quick-start.md) + diff --git a/content/en/docs/Quickstart/figures/advanced-user-configuration.png b/content/en/docs/Quickstart/figures/advanced-user-configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..3a27f8b5371323cf27dae8dd7e8549ff1e1f8c4b Binary files /dev/null and b/content/en/docs/Quickstart/figures/advanced-user-configuration.png differ diff --git a/content/en/docs/Quickstart/figures/completing-the-installation.png b/content/en/docs/Quickstart/figures/completing-the-installation.png new file mode 100644 index 0000000000000000000000000000000000000000..0b97542c85336715d79e222e0487e0c51297003a Binary files /dev/null and b/content/en/docs/Quickstart/figures/completing-the-installation.png differ diff --git a/content/en/docs/Quickstart/figures/creating-a-user.png b/content/en/docs/Quickstart/figures/creating-a-user.png new file mode 100644 index 0000000000000000000000000000000000000000..53e4a6dbe4bba8315931d61a18a52d2c7f90742a Binary files /dev/null and b/content/en/docs/Quickstart/figures/creating-a-user.png differ diff --git a/content/en/docs/Quickstart/figures/drive-icon.png b/content/en/docs/Quickstart/figures/drive-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b41fcb09dfbf805da4863142855e7c2de4bf4c7b Binary files /dev/null and b/content/en/docs/Quickstart/figures/drive-icon.png differ diff --git a/content/en/docs/Quickstart/figures/en-us_image_0229420473.png b/content/en/docs/Quickstart/figures/en-us_image_0229420473.png new file mode 100644 index 0000000000000000000000000000000000000000..86c61a4b8e2a5795baff2fc74629924d01d7b97b Binary files /dev/null and b/content/en/docs/Quickstart/figures/en-us_image_0229420473.png differ diff --git a/content/en/docs/Quickstart/figures/image-dialog-box.png b/content/en/docs/Quickstart/figures/image-dialog-box.png new file mode 100644 index 0000000000000000000000000000000000000000..caeb56bb46f766dd39d66a65e308c591954d32cf Binary files /dev/null and b/content/en/docs/Quickstart/figures/image-dialog-box.png differ diff --git a/content/en/docs/Quickstart/figures/installation-summary.png b/content/en/docs/Quickstart/figures/installation-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..694101f29e599a4f657e2e9ab9552d62f4d991c4 Binary files /dev/null and b/content/en/docs/Quickstart/figures/installation-summary.png differ diff --git a/content/en/docs/Quickstart/figures/installation-wizard.png b/content/en/docs/Quickstart/figures/installation-wizard.png new file mode 100644 index 0000000000000000000000000000000000000000..b147fa7ac745eb313ebe5a7a887d1c0f5d8efdb0 Binary files /dev/null and b/content/en/docs/Quickstart/figures/installation-wizard.png differ diff --git a/content/en/docs/Quickstart/figures/password-of-the-root-account.png b/content/en/docs/Quickstart/figures/password-of-the-root-account.png new file mode 100644 index 0000000000000000000000000000000000000000..795e029b249d88ed247f324c29d3f8aa862167e8 Binary files /dev/null and b/content/en/docs/Quickstart/figures/password-of-the-root-account.png differ diff --git a/content/en/docs/Quickstart/figures/restart-icon.png b/content/en/docs/Quickstart/figures/restart-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b02b2dff42c90845d2491192507ea6967352e3 Binary files /dev/null and b/content/en/docs/Quickstart/figures/restart-icon.png differ diff --git a/content/en/docs/Quickstart/figures/selecting-a-language.png b/content/en/docs/Quickstart/figures/selecting-a-language.png new file mode 100644 index 0000000000000000000000000000000000000000..2d4a1ec57da34a14040401009e14fe9b7dc784f6 Binary files /dev/null and b/content/en/docs/Quickstart/figures/selecting-a-language.png differ diff --git a/content/en/docs/Quickstart/figures/selecting-installation-software.png b/content/en/docs/Quickstart/figures/selecting-installation-software.png new file mode 100644 index 0000000000000000000000000000000000000000..6f576232f22398de2a3565b8c4724e4635245211 Binary files /dev/null and b/content/en/docs/Quickstart/figures/selecting-installation-software.png differ diff --git a/content/en/docs/Quickstart/figures/setting-the-boot-device.png b/content/en/docs/Quickstart/figures/setting-the-boot-device.png new file mode 100644 index 0000000000000000000000000000000000000000..42455bcd651b98a08b012b275d5f170daf07ac59 Binary files /dev/null and b/content/en/docs/Quickstart/figures/setting-the-boot-device.png differ diff --git a/content/en/docs/Quickstart/figures/setting-the-installation-destination.png b/content/en/docs/Quickstart/figures/setting-the-installation-destination.png new file mode 100644 index 0000000000000000000000000000000000000000..65040062e56e7a69c4452beac53bbc56df2bf760 Binary files /dev/null and b/content/en/docs/Quickstart/figures/setting-the-installation-destination.png differ diff --git a/content/en/docs/Quickstart/figures/starting-installation.png b/content/en/docs/Quickstart/figures/starting-installation.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f028df0264a105666d03d875a8282c35dfd9d2 Binary files /dev/null and b/content/en/docs/Quickstart/figures/starting-installation.png differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-caution.gif b/content/en/docs/Quickstart/public_sys-resources/icon-caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-caution.gif differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-danger.gif b/content/en/docs/Quickstart/public_sys-resources/icon-danger.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-danger.gif differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-note.gif b/content/en/docs/Quickstart/public_sys-resources/icon-note.gif new file mode 100644 index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-note.gif differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-notice.gif b/content/en/docs/Quickstart/public_sys-resources/icon-notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27 Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-notice.gif differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-tip.gif b/content/en/docs/Quickstart/public_sys-resources/icon-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7 Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-tip.gif differ diff --git a/content/en/docs/Quickstart/public_sys-resources/icon-warning.gif b/content/en/docs/Quickstart/public_sys-resources/icon-warning.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571 Binary files /dev/null and b/content/en/docs/Quickstart/public_sys-resources/icon-warning.gif differ diff --git a/content/en/docs/Quickstart/quick-start.md b/content/en/docs/Quickstart/quick-start.md new file mode 100644 index 0000000000000000000000000000000000000000..d8ff24359d4f7487e1190585520b5c98ba93978b --- /dev/null +++ b/content/en/docs/Quickstart/quick-start.md @@ -0,0 +1,344 @@ +# Quick Start + +This document uses openEuler 20.03 LTS installed on the TaiShan 200 server as an example to describe how to quickly install and use openEuler OS. For details about the installation requirements and methods, see [openEuler 20.03 LTS Installation Guide](https://openeuler.org/en/docs/20.03_LTS/docs/Installation/Installation.html). + +## Installation Preparations + +- Hardware Compatibility + + [Table 1](#table14948632047) describes the types of supported servers. + + **Table 1** Supported servers + + + + + + + + + + + + + + + + +

Server Type

+

Server Name

+

Server Model

+

Rack server

+

TaiShan 200

+

2280 balanced model

+

Rack server

+

FusionServer Pro

+

FusionServer Pro 2288H V5

+
NOTE:

The server must be configured with the Avago SAS3508 RAID controller card and the LOM-X722 NIC.

+
+
+ +- Minimum Hardware Specifications + + [Table 2](#tff48b99c9bf24b84bb602c53229e2541) lists the minimum hardware specifications supported by openEuler. + + **Table 2** Minimum hardware specifications + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Minimum Hardware Specifications

+

Description

+

Architecture

+
  • AArch64
  • x86_64
+
  • 64-bit Arm architecture
  • 64-bit Intel x86 architecture
+

CPU

+
  • Huawei Kunpeng 920 series
  • Intel ® Xeon® processor
+

-

+

Memory

+

≥ 4 GB (8 GB or higher recommended for better user experience)

+

-

+

Hard disk

+

≥ 120 GB (for better user experience)

+

The hard disk supports IDE, SATA, SAS interfaces.

+
+ + +## Obtaining the Installation Source + +Perform the following operations to obtain the openEuler release package: + +1. Log in to the [openEuler Community](https://openeuler.org) website. +2. Click **Download**. +3. Click the link provided after **Download ISO**. The download list is displayed. +4. Click **openEuler-20.03-LTS**. The openEuler 20.03 LTS version download list is displayed. +5. Click **ISO**. The ISO download list is displayed. + - **aarch64**: ISO image file of the AArch64 architecture + - **x86\_64**: ISO image file of the x86\_64 architecture + - **source**: ISO image file of the openEuler source code + +6. Select the openEuler release package and verification file to be downloaded based on the architecture of the environment to be installed. + - If the AArch64 architecture is used: + 1. Click **aarch64**. + 2. Click **openEuler-20.03-LTS-aarch64-dvd.iso** to download the openEuler release package to the local host. + 3. Click **openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum** to download the openEuler verification file to the local host. + + - If the x86\_64 architecture is used: + 1. Click **x86\_64**. + 2. Click **openEuler-20.03-LTS-x86\_64-dvd.iso** to download the openEuler release package to the local host. + 3. Click **openEuler-20.03-LTS-x86\_64-dvd.iso.sha256sum** to download the openEuler verification file to the local host. + + + +## Release Package Integrity Check + +To prevent incomplete download of the software package due to network or storage device problems during the transmission, you can perform the following steps to check the integrity of the obtained openEuler software package: + +1. Obtain the verification value in the verification file. Run the following command: + + ``` + #cat openEuler-20.03-LTS-aarch64-dvd.iso.sha256sum + ``` + +2. Calculate the SHA256 verification value of the file. Run the following command: + + ``` + #sha256sum openEuler-20.03-LTS-aarch64-dvd.iso + ``` + + After the command is run, the verification value is displayed. + +3. Check whether the values calculated in step 1 and step 2 are consistent. + + If the verification values are consistent, the .iso file is not damaged. If they are inconsistent, you can confirm that the file is damaged and you need to obtain the file again. + + +## Starting the Installation + +1. Log in to the iBMC WebUI. + + For details, see [TaiShan 200 Server User Guide \(Model 2280\)](https://support.huawei.com/enterprise/en/doc/EDOC1100093459). + +2. Choose **Configuration** from the main menu, and select **Boot Device** from the navigation tree. The **Boot Device** page is displayed. + + Set **Effective** and **Boot Medium** to **One-time** and **DVD-ROM**, respectively, and click **Save**, as shown in [Figure 1](#fig1011938131018). + + **Figure 1** Setting the boot device + ![](figures/setting-the-boot-device.png "setting-the-boot-device") + +3. Choose **Remote Console** from the main menu. The **Remote Console** page is displayed. + + Select an integrated remote console as required to access the remote virtual console, for example, **Java Integrated Remote Console \(Shared\)**. + +4. On the toolbar, click the icon shown in the following figure. + + **Figure 2** Drive icon + ![](figures/drive-icon.png "drive-icon") + + An image dialog box is displayed, as shown in the following figure. + + **Figure 3** Image dialog box + ![](figures/image-dialog-box.png "image-dialog-box") + +5. Select **Image File** and then click **Browse**. The **Open** dialog box is displayed. +6. Select the image file and click **Open**. In the image dialog box, click **Connect**. If **Connect** changes to **Disconnect**, the virtual CD/DVD-ROM drive is connected to the server. +7. On the toolbar, click the restart icon shown in the following figure to restart the device. + + **Figure 4** Restart icon + ![](figures/restart-icon.png "restart-icon") + +8. A boot menu is displayed after the system restarts, as shown in [Figure 5](#fig1648754873314). + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- If you do not perform any operations within 1 minute, the system automatically selects the default option **Test this media & install openEuler 20.03 LTS** and enters the installation page. + >- During PM installation, if you cannot use the arrow keys to select boot options and the system does not respond after you press **Enter**, click ![](figures/en-us_image_0229420473.png) on the BMC page and configure **Key & Mouse Reset**. + + **Figure 5** Installation Wizard + + +9. On the installation wizard page, press **Enter** to select the default option **Test this media & install openEuler 20.03 LTS** to enter the GUI installation page. + +## Installation + +After entering the GUI installation page, perform the following operations to install the system: + +1. Set an installation language. The default language is English. You can change the language based on the site requirements, as shown in [Figure 6](#fig874344811484). + + **Figure 6** Selecting a language + + +2. On the **INSTALLATION SUMMARY** page, set configuration items based on the site requirements. + + - A configuration item with an alarm symbol must be configured. When the alarm symbol disappears, you can perform the next operation. + - A configuration item without an alarm symbol is configured by default. + - You can click **Begin Installation** to install the system only when all alarms are cleared. + + **Figure 7** Installation summary + + + 1. Select **Software Selection** to set configuration items. + + Based on the site requirements, select **Minimal Install** on the left box and select an add-on in the **Add-Ons for Selected Environment** area on the right, as shown in [Figure 8](#fig1133717611109). + + **Figure 8** Selecting installation software + + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- In **Minimal Install** mode, not all packages in the installation source will be installed. If the required package is not installed, you can mount the installation source to the local PC and configure a repo source, and use DNF to install the package. + >- If you select **Virtual Host**, the virtualization components QEMU, libvirt, and edk2 are installed by default. You can select whether to install the OVS component in the add-on area. + + After the setting is complete, click **Done** in the upper left corner to go back to the **INSTALLATION SUMMARY** page. + + 2. Select **Installation Destination** to set configuration items. + + On the **INSTALLATION DESTINATION** page, select a local storage device or click **Add a disk** to add a specified additional device or network device. You also need to configure the storage to partition the system. You can either manually configure partitions or select **Automatic** to automatically configure partitioning. Select **Automatic** if the software is installed in a new storage device or the data in the storage device is not required, as shown in [Figure 9](#fig153381468101). + + >![](public_sys-resources/icon-notice.gif) **NOTICE:** + >When selecting the device to be installed, you are advised not to use the NVMe SSD storage medium as the OS installation disk. + + **Figure 9** Setting the installation destination + + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >- During partitioning, to ensure system security and performance, you are advised to divide the device into the following partitions: **/boot**, **/var**, **/var/log**, **/var/log/audit**, **/home**, and **/tmp**. + >- If the system is configured with the swap partition, the swap partition is used when the physical memory of the system is insufficient. Although the swap partition can be used to expand the physical memory, if the swap partition is used due to insufficient memory, the system response slows and the system performance deteriorates. Therefore, you are not advised to configure the swap partition in the system with sufficient physical memory or the performance sensitive system. + >- If you need to split a logical volume group, select **Custom** to manually partition the logical volume group. On the **MANUAL PARTITIONING** page, click **Modify** in the **Volume Group** area to reconfigure the logical volume group. + + After the setting is complete, click **Done** in the upper left corner to go back to the **INSTALLATION SUMMARY** page. + + 3. Set other configuration items. You can use the default values for other configuration items. + +3. Click **Begin Installation** to install the system, as shown in [Figure 10](#fig1717019357392). + + **Figure 10** Starting installation + + +4. Set the root user password. + + Click **Root Password**. In the displayed dialog box, as shown in [Figure 11](#en-us_topic_0186390266_en-us_topic_0122145909_fig1323165793018), enter a password and re-enter to confirm. + + >![](public_sys-resources/icon-note.gif) **NOTE:** + >The **root** password must be configured when you install software packages. Otherwise, the installation will fail. A **root** account is used for performing critical system administration tasks. It is not recommended to use this account for daily work or system access. + + The password of the **root** user must meet the password complexity requirements. Otherwise, the password configuration or user creation will fail. The password complexity requirements are as follows: + + - A password must contain at least eight characters. + - A password must contain at least three of the following types: uppercase letters, lowercase letters, digits, and special characters. + - A password must be different from the account name. + - A password cannot contain words in the dictionary. + - Querying a dictionary + + In the installed openEuler environment, you can run the following command to export the dictionary library file **dictionary.txt**, and then check whether the password is in the dictionary. + + ``` + cracklib-unpacker /usr/share/cracklib/pw_dict > dictionary.txt + ``` + + - Modifying a dictionary + - Modify the exported dictionary library file, and then run the following command to update the dictionary library: + + ``` + create-cracklib-dict dictionary.txt + ``` + + - Run the following command to add another dictionary file **custom.txt** to the original dictionary library. + + ``` + create-cracklib-dict dictionary.txt custom.txt + ``` + + + + **Figure 11** Password of the **root** account + + +5. Create a user. + + Click **User Creation**. [Figure 12](#en-us_topic_0186390266_en-us_topic_0122145909_fig1237715313319) shows the page for creating a user. Enter a username and set a password. The password complexity requirements are the same as those of the user **root**. By clicking **Advanced**, you can also configure a home directory and a user group, as shown in [Figure 13](#en-us_topic_0186390266_en-us_topic_0122145909_fig128716531312). + + **Figure 12** Creating a user + + + **Figure 13** Advanced user configuration + + + After configuration, click **Done** in the left-upper corner to switch back to the installation process page. + +6. After the installation is complete, restart the system. + + openEuler has been installed, as shown in [Figure 14](#en-us_topic_0186390267_en-us_topic_0122145917_fig1429512116338). Click **Reboot** to restart the system. + + **Figure 14** Completing the installation + + + +## Viewing System Information + +After the system is installed and restarted, the system CLI login page is displayed. Enter the username and password set during the installation to log in to openEuler OS and view the following system information. For details about system management and configuration, see the [openEuler 20.03 LTS Administrator Guide](https://openeuler.org/en/docs/20.03_LTS/docs/Administration/administration.html). + +- Run the following command to view the system information: + + ``` + cat /etc/os-release + ``` + + For example, the command and output are as follows: + + ``` + # cat /etc/os-release + NAME="openEuler" + VERSION="20.03 (LTS)" + ID="openEuler" + VERSION_ID="20.03" + PRETTY_NAME="openEuler 20.03 (LTS)" + ANSI_COLOR="0;31" + ``` + +- View system resource information. + + Run the following command to view the CPU information: + + ``` + lscpu + ``` + + Run the following command to view the memory information: + + ``` + free + ``` + + Run the following command to view the disk information: + + ``` + fdisk -l + ``` + +- Run the following command to view the IP address: + + ``` + ip addr + ``` + + diff --git a/content/en/menu/index.md b/content/en/menu/index.md index 249c449477bd9f805d8d22c5e8447eeb19f620af..4ce7607b81dff2656f2b0d3ddd5df57ea5e80039 100644 --- a/content/en/menu/index.md +++ b/content/en/menu/index.md @@ -14,6 +14,298 @@ headless: true - [Contribution]({{< relref "./docs/Releasenotes/contribution.md" >}}) - [Acknowledgement]({{< relref "./docs/Releasenotes/acknowledgement.md" >}}) + +- [Quick Start]({{< relref "./docs/Quickstart/quick-start.md" >}}) +- [Installation Guide]({{< relref "./docs/Installation/Installation.md" >}}) + - [Preface]({{< relref "./docs/Installation/preface.md" >}}) + - [Installation Preparations]({{< relref "./docs/Installation/installation-preparations.md" >}}) + - [Obtaining the Installation Source]({{< relref "./docs/Installation/obtaining-the-installation-source.md" >}}) + - [Release Package Integrity Check]({{< relref "./docs/Installation/release-package-integrity-check.md" >}}) + - [Installation Requirements for PMs]({{< relref "./docs/Installation/installation-requirements-for-pms.md" >}}) + - [Hardware Compatibility]({{< relref "./docs/Installation/hardware-compatibility.md" >}}) + - [Minimum Hardware Specifications]({{< relref "./docs/Installation/minimum-hardware-specifications.md" >}}) + - [Installation Requirements for VMs]({{< relref "./docs/Installation/installation-requirements-for-vms.md" >}}) + - [Virtualization Platform Compatibility]({{< relref "./docs/Installation/virtualization-platform-compatibility.md" >}}) + - [Minimum Virtualization Space]({{< relref "./docs/Installation/minimum-virtualization-space.md" >}}) + - [Installation Mode]({{< relref "./docs/Installation/installation-mode.md" >}}) + - [Installation Through a CD/DVD-ROM]({{< relref "./docs/Installation/installation-through-a-cd-dvd-rom.md" >}}) + - [Installation Through a USB Flash Drive]({{< relref "./docs/Installation/installation-through-a-usb-flash-drive.md" >}}) + - [Installation Through the Network Using PXE]({{< relref "./docs/Installation/installation-through-the-network-using-pxe.md" >}}) + - [Installation Through a QCOW2 Image]({{< relref "./docs/Installation/installation-through-a-qcow2-image.md" >}}) + - [Installation Through a Private Image]({{< relref "./docs/Installation/installation-through-a-private-image.md" >}}) + - [Installation Guideline]({{< relref "./docs/Installation/installation-guideline.md" >}}) + - [Starting the Installation]({{< relref "./docs/Installation/starting-the-installation.md" >}}) + - [Installation in GUI Mode]({{< relref "./docs/Installation/installation-in-gui-mode.md" >}}) + - [Configuring an Installation Program Language]({{< relref "./docs/Installation/configuring-an-installation-program-language.md" >}}) + - [Entering the Installation Page]({{< relref "./docs/Installation/entering-the-installation-page.md" >}}) + - [Setting Installation Parameters]({{< relref "./docs/Installation/setting-installation-parameters.md" >}}) + - [Setting the Keyboard Layout]({{< relref "./docs/Installation/setting-the-keyboard-layout.md" >}}) + - [Setting a System Language]({{< relref "./docs/Installation/setting-a-system-language.md" >}}) + - [Setting Date and Time]({{< relref "./docs/Installation/setting-date-and-time.md" >}}) + - [Setting the Installation Source]({{< relref "./docs/Installation/setting-the-installation-source.md" >}}) + - [Selecting Installation Software]({{< relref "./docs/Installation/selecting-installation-software.md" >}}) + - [Setting the Installation Destination]({{< relref "./docs/Installation/setting-the-installation-destination.md" >}}) + - [Setting the Network and Host Name]({{< relref "./docs/Installation/setting-the-network-and-host-name.md" >}}) + - [Starting Installation]({{< relref "./docs/Installation/starting-installation.md" >}}) + - [Configurations During Installation]({{< relref "./docs/Installation/configurations-during-installation.md" >}}) + - [Completing the Installation]({{< relref "./docs/Installation/completing-the-installation.md" >}}) + - [Using Kickstart for Automatic Installation]({{< relref "./docs/Installation/using-kickstart-for-automatic-installation.md" >}}) + - [Introduction]({{< relref "./docs/Installation/introduction.md" >}}) + - [Semi-automatic Installation Guide]({{< relref "./docs/Installation/semi-automatic-installation-guide.md" >}}) + - [Full-automatic Installation Guide]({{< relref "./docs/Installation/full-automatic-installation-guide.md" >}}) + - [FAQs]({{< relref "./docs/Installation/faqs.md" >}}) + - [Why Does openEuler Fail to Start After I Install It to the Second Disk?]({{< relref "./docs/Installation/why-does-openeuler-fail-to-start-after-i-install-it-to-the-second-disk.md" >}}) + - [What Are the Constraints on Network Configurations?]({{< relref "./docs/Installation/what-are-the-constraints-on-network-configurations.md" >}}) + - [Why Does openEuler Enter Emergency Mode After It Is Powered On?]({{< relref "./docs/Installation/why-does-openeuler-enter-emergency-mode-after-it-is-powered-on.md" >}}) + - [Failed to Reinstall openEuler When a Logical Volume Group That Cannot Be Activated Has Existed in openEuler]({{< relref "./docs/Installation/failed-to-reinstall-openeuler-when-a-logical-volume-group-that-cannot-be-activated-has-existed-in-op.md" >}}) + - [An Exception Occurs During the Selection of the Installation Source]({{< relref "./docs/Installation/an-exception-occurs-during-the-selection-of-the-installation-source.md" >}}) + - [How Do I Manually Enable the kdump Service?]({{< relref "./docs/Installation/how-do-i-manually-enable-the-kdump-service.md" >}}) + - [Failed to Selected Only One Disk for Reinstallation When openEuler Was Installed on a Logical Volume Consisting of Multiple Disks]({{< relref "./docs/Installation/failed-to-selected-only-one-disk-for-reinstallation-when-openeuler-was-installed-on-a-logical-volume.md" >}}) + - [Failed to Install openEuler on an x86 PM in UEFI Mode due to Secure Boot Option Setting]({{< relref "./docs/Installation/failed-to-install-openeuler-on-an-x86-pm-in-uefi-mode-due-to-secure-boot-option-setting.md" >}}) + + + +- [Administrator Guide]({{< relref "./docs/Administration/administration.md" >}}) + - [About This Document ]({{< relref "./docs/Administration/about-this-document.md" >}}) + - [Basic Configuration]({{< relref "./docs/Administration/basic-configuration.md" >}}) + - [Using Commands]({{< relref "./docs/Administration/using-commands.md" >}}) + - [Setting the System Locale]({{< relref "./docs/Administration/setting-the-system-locale.md" >}}) + - [Setting the Keyboard Layout]({{< relref "./docs/Administration/setting-the-keyboard-layout.md" >}}) + - [Setting the Date and Time]({{< relref "./docs/Administration/setting-the-date-and-time.md" >}}) + - [Using the timedatectl Command]({{< relref "./docs/Administration/using-the-timedatectl-command.md" >}}) + - [Using the date Command]({{< relref "./docs/Administration/using-the-date-command.md" >}}) + - [Using the hwclock Command]({{< relref "./docs/Administration/using-the-hwclock-command.md" >}}) + - [Viewing System Information]({{< relref "./docs/Administration/viewing-system-information.md" >}}) + - [User Management]({{< relref "./docs/Administration/user-management.md" >}}) + - [Adding a User]({{< relref "./docs/Administration/adding-a-user.md" >}}) + - [Modifying a User Account]({{< relref "./docs/Administration/modifying-a-user-account.md" >}}) + - [Deleting Users]({{< relref "./docs/Administration/deleting-users.md" >}}) + - [Authorizing Administrator Accounts]({{< relref "./docs/Administration/authorizing-administrator-accounts.md" >}}) + - [Granting Rights to a Common User]({{< relref "./docs/Administration/granting-rights-to-a-common-user.md" >}}) + - [Using the DNF to Manage Software Packages]({{< relref "./docs/Administration/using-the-dnf-to-manage-software-packages.md" >}}) + - [Configuring the DNF]({{< relref "./docs/Administration/configuring-the-dnf.md" >}}) + - [Modifying the Configuration File]({{< relref "./docs/Administration/modifying-the-configuration-file.md" >}}) + - [Creating a Local Software Repository]({{< relref "./docs/Administration/creating-a-local-software-repository.md" >}}) + - [Adding, Enabling, and Disabling Software Sources]({{< relref "./docs/Administration/adding-enabling-and-disabling-software-sources.md" >}}) + - [Managing Software Package]({{< relref "./docs/Administration/managing-software-package.md" >}}) + - [Managing Software Package Groups]({{< relref "./docs/Administration/managing-software-package-groups.md" >}}) + - [Check and Update]({{< relref "./docs/Administration/check-and-update.md" >}}) + - [Service Management]({{< relref "./docs/Administration/service-management.md" >}}) + - [Introduction to systemd]({{< relref "./docs/Administration/introduction-to-systemd.md" >}}) + - [Features]({{< relref "./docs/Administration/features.md" >}}) + - [Managing System Services]({{< relref "./docs/Administration/managing-system-services.md" >}}) + - [Changing a Runlevel]({{< relref "./docs/Administration/changing-a-runlevel.md" >}}) + - [Shutting Down, Suspending, and Hibernating the Operating System]({{< relref "./docs/Administration/shutting-down-suspending-and-hibernating-the-operating-system.md" >}}) + - [Process Management]({{< relref "./docs/Administration/process-management.md" >}}) + - [Managing System Processes]({{< relref "./docs/Administration/managing-system-processes.md" >}}) + - [Scheduling a Process]({{< relref "./docs/Administration/scheduling-a-process.md" >}}) + - [Using the at Command to Run Processes at the Scheduled Time]({{< relref "./docs/Administration/using-the-at-command-to-run-processes-at-the-scheduled-time.md" >}}) + - [Using the cron Service to Run Commands Periodically]({{< relref "./docs/Administration/using-the-cron-service-to-run-commands-periodically.md" >}}) + - [Suspending/Resuming a Process]({{< relref "./docs/Administration/suspending-resuming-a-process.md" >}}) + - [Viewing Processes]({{< relref "./docs/Administration/viewing-processes.md" >}}) + - [Configuring the Network]({{< relref "./docs/Administration/configuring-the-network.md" >}}) + - [Configuring an IP Address]({{< relref "./docs/Administration/configuring-an-ip-address.md" >}}) + - [Using the nmcli Command]({{< relref "./docs/Administration/using-the-nmcli-command.md" >}}) + - [Introduction to nmcli]({{< relref "./docs/Administration/introduction-to-nmcli.md" >}}) + - [Setting Network Connections]({{< relref "./docs/Administration/setting-network-connections.md" >}}) + - [Configuring Dynamic IP Connections]({{< relref "./docs/Administration/configuring-dynamic-ip-connections.md" >}}) + - [Configuring Static IP Connections]({{< relref "./docs/Administration/configuring-static-ip-connections.md" >}}) + - [Adding a Wi-Fi Connection]({{< relref "./docs/Administration/adding-a-wi-fi-connection.md" >}}) + - [Modifying Attributes]({{< relref "./docs/Administration/modifying-attributes.md" >}}) + - [Configuring a Static Route]({{< relref "./docs/Administration/configuring-a-static-route.md" >}}) + - [Using the ip Command]({{< relref "./docs/Administration/using-the-ip-command.md" >}}) + - [Configuring IP Addresses]({{< relref "./docs/Administration/configuring-ip-addresses.md" >}}) + - [Configuring a Static Route]({{< relref "./docs/Administration/configuring-a-static-route-0.md" >}}) + - [Configuring the Network Through the ifcfg File]({{< relref "./docs/Administration/configuring-the-network-through-the-ifcfg-file.md" >}}) + - [Configuring a Host Name]({{< relref "./docs/Administration/configuring-a-host-name.md" >}}) + - [Introduction]({{< relref "./docs/Administration/introduction.md" >}}) + - [Configuring a Host Name by Running the hostnamectl Command]({{< relref "./docs/Administration/configuring-a-host-name-by-running-the-hostnamectl-command.md" >}}) + - [Configuring a Host Name by Running the nmcli Command]({{< relref "./docs/Administration/configuring-a-host-name-by-running-the-nmcli-command.md" >}}) + - [Configuring Network Bonding]({{< relref "./docs/Administration/configuring-network-bonding.md" >}}) + - [Running the nmcli Command]({{< relref "./docs/Administration/running-the-nmcli-command.md" >}}) + - [Configuring Network Bonding by Using a Command Line]({{< relref "./docs/Administration/configuring-network-bonding-by-using-a-command-line.md" >}}) + - [Checking Whether the Bonding Kernel Module Is Installed]({{< relref "./docs/Administration/checking-whether-the-bonding-kernel-module-is-installed.md" >}}) + - [Creating a Channel Bonding Interface]({{< relref "./docs/Administration/creating-a-channel-bonding-interface.md" >}}) + - [Creating a Slave Interface]({{< relref "./docs/Administration/creating-a-slave-interface.md" >}}) + - [Activating Channel Bonding]({{< relref "./docs/Administration/activating-channel-bonding.md" >}}) + - [Creating Multiple Bondings]({{< relref "./docs/Administration/creating-multiple-bondings.md" >}}) + - [IPv6 Differences \(vs IPv4\)]({{< relref "./docs/Administration/ipv6-differences-(vs-ipv4).md" >}}) + - [Restrictions]({{< relref "./docs/Administration/restrictions.md" >}}) + - [Configuration Description]({{< relref "./docs/Administration/configuration-description.md" >}}) + - [Setting the MTU of an Interface Device]({{< relref "./docs/Administration/setting-the-mtu-of-an-interface-device.md" >}}) + - [Stateful IPv6 Address Autoconfiguration]({{< relref "./docs/Administration/stateful-ipv6-address-autoconfiguration.md" >}}) + - [Kernel Supporting Socket-Related System Calls]({{< relref "./docs/Administration/kernel-supporting-socket-related-system-calls.md" >}}) + - [Persistency Configuration of the IPv4 dhclient Daemon Process]({{< relref "./docs/Administration/persistency-configuration-of-the-ipv4-dhclient-daemon-process.md" >}}) + - [Differences Between IPv4 and IPv6 Configuration Using the iproute Command]({{< relref "./docs/Administration/differences-between-ipv4-and-ipv6-configuration-using-the-iproute-command.md" >}}) + - [Configuration Differences of the NetworkManager Service]({{< relref "./docs/Administration/configuration-differences-of-the-networkmanager-service.md" >}}) + - [FAQ]({{< relref "./docs/Administration/faq.md" >}}) + - [The iscsi-initiator-utils Does Not Support the fe80 IPv6 Address.]({{< relref "./docs/Administration/the-iscsi-initiator-utils-does-not-support-the-fe80-ipv6-address.md" >}}) + - [The IPv6 Address Is Lost After the NIC Is Down.]({{< relref "./docs/Administration/the-ipv6-address-is-lost-after-the-nic-is-down.md" >}}) + - [Taking a Long Time to Add or Delete an IPv6 Address for a Bond Interface with Multiple IPv6 Addresses]({{< relref "./docs/Administration/taking-a-long-time-to-add-or-delete-an-ipv6-address-for-a-bond-interface-with-multiple-ipv6-addresse.md" >}}) + - [Rsyslog Log Transmission Is Delayed in the Scenario Where Both IPv4 and IPv6 Are Used]({{< relref "./docs/Administration/rsyslog-log-transmission-is-delayed-in-the-scenario-where-both-ipv4-and-ipv6-are-used.md" >}}) + - [Managing Hard Disks Through LVM]({{< relref "./docs/Administration/managing-hard-disks-through-lvm.md" >}}) + - [LVM Overview]({{< relref "./docs/Administration/lvm-overview.md" >}}) + - [Installing the LVM]({{< relref "./docs/Administration/installing-the-lvm.md" >}}) + - [Managing PVs]({{< relref "./docs/Administration/managing-pvs.md" >}}) + - [Managing VGs]({{< relref "./docs/Administration/managing-vgs.md" >}}) + - [Managing LVs]({{< relref "./docs/Administration/managing-lvs.md" >}}) + - [Creating and Mounting a File System]({{< relref "./docs/Administration/creating-and-mounting-a-file-system.md" >}}) + - [Using the KAE]({{< relref "./docs/Administration/using-the-kae.md" >}}) + - [Overview]({{< relref "./docs/Administration/overview.md" >}}) + - [Application Scenarios]({{< relref "./docs/Administration/application-scenarios.md" >}}) + - [Installing, Running, and Uninstalling the KAE]({{< relref "./docs/Administration/installing-running-and-uninstalling-the-kae.md" >}}) + - [Installing the Accelerator Software Packages]({{< relref "./docs/Administration/installing-the-accelerator-software-packages.md" >}}) + - [Preparing for Installation]({{< relref "./docs/Administration/preparing-for-installation.md" >}}) + - [Installing the Accelerator Software Package]({{< relref "./docs/Administration/installing-the-accelerator-software-package.md" >}}) + - [Performing Required Operations After Installation]({{< relref "./docs/Administration/performing-required-operations-after-installation.md" >}}) + - [Testing the OpenSSL Accelerator Engine]({{< relref "./docs/Administration/testing-the-openssl-accelerator-engine.md" >}}) + - [Upgrading the Accelerator Software Packages]({{< relref "./docs/Administration/upgrading-the-accelerator-software-packages.md" >}}) + - [Uninstalling the Accelerator Software Packages]({{< relref "./docs/Administration/uninstalling-the-accelerator-software-packages.md" >}}) + - [Querying Logs]({{< relref "./docs/Administration/querying-logs.md" >}}) + - [Application Cases]({{< relref "./docs/Administration/application-cases.md" >}}) + - [Acceleration Engine Application]({{< relref "./docs/Administration/acceleration-engine-application.md" >}}) + - [Example Code for the KAE]({{< relref "./docs/Administration/example-code-for-the-kae.md" >}}) + - [Using the KAE in the OpenSSL Configuration File openssl.cnf]({{< relref "./docs/Administration/using-the-kae-in-the-openssl-configuration-file-openssl-cnf.md" >}}) + - [Troubleshooting]({{< relref "./docs/Administration/troubleshooting.md" >}}) + - [Initialization Failure]({{< relref "./docs/Administration/initialization-failure.md" >}}) + - [Failed to Identify Accelerator Devices After the Acceleration Engine Is Installed]({{< relref "./docs/Administration/failed-to-identify-accelerator-devices-after-the-acceleration-engine-is-installed.md" >}}) + - [Failed to Upgrade the Accelerator Drivers]({{< relref "./docs/Administration/failed-to-upgrade-the-accelerator-drivers.md" >}}) + - [Configuring Services]({{< relref "./docs/Administration/configuring-services.md" >}}) + - [Configuring the Repo Server]({{< relref "./docs/Administration/configuring-the-repo-server.md" >}}) + - [Overview]({{< relref "./docs/Administration/overview-1.md" >}}) + - [Creating or Updating a Local Repo Source]({{< relref "./docs/Administration/creating-or-updating-a-local-repo-source.md" >}}) + - [Obtaining the ISO Image File]({{< relref "./docs/Administration/obtaining-the-iso-image-file.md" >}}) + - [Mounting an ISO File to Create a Repo Source]({{< relref "./docs/Administration/mounting-an-iso-file-to-create-a-repo-source.md" >}}) + - [Creating a Local Repo Source]({{< relref "./docs/Administration/creating-a-local-repo-source.md" >}}) + - [Updating the Repo Source]({{< relref "./docs/Administration/updating-the-repo-source.md" >}}) + - [Deploying the Remote Repo Source]({{< relref "./docs/Administration/deploying-the-remote-repo-source.md" >}}) + - [Installing and Configuring Nginx]({{< relref "./docs/Administration/installing-and-configuring-nginx.md" >}}) + - [Starting Nginx]({{< relref "./docs/Administration/starting-nginx.md" >}}) + - [Deploying the Repo Source]({{< relref "./docs/Administration/deploying-the-repo-source.md" >}}) + - [Using the repo Source]({{< relref "./docs/Administration/using-the-repo-source.md" >}}) + - [Configuring repo as the yum Source]({{< relref "./docs/Administration/configuring-repo-as-the-yum-source.md" >}}) + - [repo Priority]({{< relref "./docs/Administration/repo-priority.md" >}}) + - [Related Commands of dnf]({{< relref "./docs/Administration/related-commands-of-dnf.md" >}}) + - [Configuring the FTP Server]({{< relref "./docs/Administration/configuring-the-ftp-server.md" >}}) + - [General Introduction]({{< relref "./docs/Administration/general-introduction.md" >}}) + - [Using vsftpd]({{< relref "./docs/Administration/using-vsftpd.md" >}}) + - [Configuring vsftpd]({{< relref "./docs/Administration/configuring-vsftpd.md" >}}) + - [vsftpd Configuration Files]({{< relref "./docs/Administration/vsftpd-configuration-files.md" >}}) + - [Default Configuration Description]({{< relref "./docs/Administration/default-configuration-description.md" >}}) + - [Setting the Local Time]({{< relref "./docs/Administration/setting-the-local-time.md" >}}) + - [Configuring Welcome Information]({{< relref "./docs/Administration/configuring-welcome-information.md" >}}) + - [Configuring the Login Permission of a System Account]({{< relref "./docs/Administration/configuring-the-login-permission-of-a-system-account.md" >}}) + - [Verifying Whether the FTP Service Is Successfully Set Up]({{< relref "./docs/Administration/verifying-whether-the-ftp-service-is-successfully-set-up.md" >}}) + - [Configuring a Firewall]({{< relref "./docs/Administration/configuring-a-firewall.md" >}}) + - [File Transmission]({{< relref "./docs/Administration/file-transmission.md" >}}) + - [Configuring the Web Server]({{< relref "./docs/Administration/configuring-the-web-server.md" >}}) + - [Apache Server]({{< relref "./docs/Administration/apache-server.md" >}}) + - [Overview]({{< relref "./docs/Administration/overview-2.md" >}}) + - [Managing httpd]({{< relref "./docs/Administration/managing-httpd.md" >}}) + - [Configuration File Description]({{< relref "./docs/Administration/configuration-file-description.md" >}}) + - [Management Module and SSL]({{< relref "./docs/Administration/management-module-and-ssl.md" >}}) + - [Verifying Whether the Web Service Is Successfully Set Up]({{< relref "./docs/Administration/verifying-whether-the-web-service-is-successfully-set-up.md" >}}) + - [Nginx Server]({{< relref "./docs/Administration/nginx-server.md" >}}) + - [Overview]({{< relref "./docs/Administration/overview-3.md" >}}) + - [Installing Nginx]({{< relref "./docs/Administration/installing-nginx.md" >}}) + - [Managing Nginx]({{< relref "./docs/Administration/managing-nginx.md" >}}) + - [Configuration File Description]({{< relref "./docs/Administration/configuration-file-description-4.md" >}}) + - [Management Modules]({{< relref "./docs/Administration/management-modules.md" >}}) + - [Verifying Whether the Web Service Is Successfully Set Up]({{< relref "./docs/Administration/verifying-whether-the-web-service-is-successfully-set-up-5.md" >}}) + - [Setting Up the Database Server]({{< relref "./docs/Administration/setting-up-the-database-server.md" >}}) + - [PostgreSQL Server]({{< relref "./docs/Administration/postgresql-server.md" >}}) + - [Software Description]({{< relref "./docs/Administration/software-description.md" >}}) + - [Configuring the Environment]({{< relref "./docs/Administration/configuring-the-environment.md" >}}) + - [Disabling the Firewall and Automatic Startup]({{< relref "./docs/Administration/disabling-the-firewall-and-automatic-startup.md" >}}) + - [Disabling SELinux]({{< relref "./docs/Administration/disabling-selinux.md" >}}) + - [Creating a User Group and a User]({{< relref "./docs/Administration/creating-a-user-group-and-a-user.md" >}}) + - [Creating Data Drives]({{< relref "./docs/Administration/creating-data-drives.md" >}}) + - [Data Directory Authorization]({{< relref "./docs/Administration/data-directory-authorization.md" >}}) + - [Installing, Running, and Uninstalling PostgreSQL]({{< relref "./docs/Administration/installing-running-and-uninstalling-postgresql.md" >}}) + - [Installing PostgreSQL]({{< relref "./docs/Administration/installing-postgresql.md" >}}) + - [Running PostgreSQL]({{< relref "./docs/Administration/running-postgresql.md" >}}) + - [Initializing the Database]({{< relref "./docs/Administration/initializing-the-database.md" >}}) + - [Starting the Database]({{< relref "./docs/Administration/starting-the-database.md" >}}) + - [Logging In to the Database]({{< relref "./docs/Administration/logging-in-to-the-database.md" >}}) + - [Configuring the Database Accounts and Passwords]({{< relref "./docs/Administration/configuring-the-database-accounts-and-passwords.md" >}}) + - [Exiting the Database]({{< relref "./docs/Administration/exiting-the-database.md" >}}) + - [Stopping the Database]({{< relref "./docs/Administration/stopping-the-database.md" >}}) + - [Uninstalling PostgreSQL]({{< relref "./docs/Administration/uninstalling-postgresql.md" >}}) + - [Managing Database Roles]({{< relref "./docs/Administration/managing-database-roles.md" >}}) + - [Creating a Role]({{< relref "./docs/Administration/creating-a-role.md" >}}) + - [Viewing Roles]({{< relref "./docs/Administration/viewing-roles.md" >}}) + - [Modifying a Role]({{< relref "./docs/Administration/modifying-a-role.md" >}}) + - [Deleting a Role]({{< relref "./docs/Administration/deleting-a-role.md" >}}) + - [Role Permissions]({{< relref "./docs/Administration/role-permissions.md" >}}) + - [Deleting User Permissions]({{< relref "./docs/Administration/deleting-user-permissions.md" >}}) + - [Managing Databases]({{< relref "./docs/Administration/managing-databases.md" >}}) + - [Creating a Database]({{< relref "./docs/Administration/creating-a-database.md" >}}) + - [Selecting a Database]({{< relref "./docs/Administration/selecting-a-database.md" >}}) + - [Viewing a Database]({{< relref "./docs/Administration/viewing-a-database.md" >}}) + - [Deleting a Database]({{< relref "./docs/Administration/deleting-a-database.md" >}}) + - [Backing Up a Database]({{< relref "./docs/Administration/backing-up-a-database.md" >}}) + - [Restoring a Database]({{< relref "./docs/Administration/restoring-a-database.md" >}}) + - [MariaDB Server]({{< relref "./docs/Administration/mariadb-server.md" >}}) + - [Software Description]({{< relref "./docs/Administration/software-description-6.md" >}}) + - [Configuring the Environment]({{< relref "./docs/Administration/configuring-the-environment-7.md" >}}) + - [Disabling the Firewall and Automatic Startup]({{< relref "./docs/Administration/disabling-the-firewall-and-automatic-startup-8.md" >}}) + - [Disabling SELinux]({{< relref "./docs/Administration/disabling-selinux-9.md" >}}) + - [Creating a User Group and a User]({{< relref "./docs/Administration/creating-a-user-group-and-a-user-10.md" >}}) + - [Creating Data Drives]({{< relref "./docs/Administration/creating-data-drives-11.md" >}}) + - [Creating a Database Directory and Granting Permissions]({{< relref "./docs/Administration/creating-a-database-directory-and-granting-permissions.md" >}}) + - [Installing, Running, and Uninstalling MariaDB Server]({{< relref "./docs/Administration/installing-running-and-uninstalling-mariadb-server.md" >}}) + - [Installing MariaDB]({{< relref "./docs/Administration/installing-mariadb.md" >}}) + - [Running MariaDB Server]({{< relref "./docs/Administration/running-mariadb-server.md" >}}) + - [Uninstalling MariaDB]({{< relref "./docs/Administration/uninstalling-mariadb.md" >}}) + - [Managing Database Users]({{< relref "./docs/Administration/managing-database-users.md" >}}) + - [Creating Users]({{< relref "./docs/Administration/creating-users.md" >}}) + - [Viewing Users]({{< relref "./docs/Administration/viewing-users.md" >}}) + - [Modifying Users]({{< relref "./docs/Administration/modifying-users.md" >}}) + - [Deleting Users]({{< relref "./docs/Administration/deleting-users-12.md" >}}) + - [Granting Permissions to a User]({{< relref "./docs/Administration/granting-permissions-to-a-user.md" >}}) + - [Deleting User Permissions]({{< relref "./docs/Administration/deleting-user-permissions-13.md" >}}) + - [Managing Databases]({{< relref "./docs/Administration/managing-databases-14.md" >}}) + - [Creating a Database]({{< relref "./docs/Administration/creating-a-database-15.md" >}}) + - [Viewing a Database]({{< relref "./docs/Administration/viewing-a-database-16.md" >}}) + - [Selecting a Database]({{< relref "./docs/Administration/selecting-a-database-17.md" >}}) + - [Deleting a Database]({{< relref "./docs/Administration/deleting-a-database-18.md" >}}) + - [Backing Up a Database]({{< relref "./docs/Administration/backing-up-a-database-19.md" >}}) + - [Restoring a Database]({{< relref "./docs/Administration/restoring-a-database-20.md" >}}) + - [MySQL Server]({{< relref "./docs/Administration/mysql-server.md" >}}) + - [Software Description]({{< relref "./docs/Administration/software-description-21.md" >}}) + - [Configuring the Environment]({{< relref "./docs/Administration/configuring-the-environment-22.md" >}}) + - [Disabling the Firewall and Automatic Startup]({{< relref "./docs/Administration/disabling-the-firewall-and-automatic-startup-23.md" >}}) + - [Disabling SELinux]({{< relref "./docs/Administration/disabling-selinux-24.md" >}}) + - [Creating a User Group and a User]({{< relref "./docs/Administration/creating-a-user-group-and-a-user-25.md" >}}) + - [Creating Data Drives]({{< relref "./docs/Administration/creating-data-drives-26.md" >}}) + - [Creating a Database Directory and Granting Permissions]({{< relref "./docs/Administration/creating-a-database-directory-and-granting-permissions-27.md" >}}) + - [Installing, Running, and Uninstalling MySQL]({{< relref "./docs/Administration/installing-running-and-uninstalling-mysql.md" >}}) + - [Installing MySQL]({{< relref "./docs/Administration/installing-mysql.md" >}}) + - [Running MySQL]({{< relref "./docs/Administration/running-mysql.md" >}}) + - [Uninstalling MySQL]({{< relref "./docs/Administration/uninstalling-mysql.md" >}}) + - [Managing Database Users]({{< relref "./docs/Administration/managing-database-users-28.md" >}}) + - [Creating Users]({{< relref "./docs/Administration/creating-users-29.md" >}}) + - [Viewing Users]({{< relref "./docs/Administration/viewing-users-30.md" >}}) + - [Modifying Users]({{< relref "./docs/Administration/modifying-users-31.md" >}}) + - [Deleting Users]({{< relref "./docs/Administration/deleting-users-32.md" >}}) + - [Granting Permissions to a User]({{< relref "./docs/Administration/granting-permissions-to-a-user-33.md" >}}) + - [Deleting User Permissions]({{< relref "./docs/Administration/deleting-user-permissions-34.md" >}}) + - [Managing Databases]({{< relref "./docs/Administration/managing-databases-35.md" >}}) + - [Creating a Database]({{< relref "./docs/Administration/creating-a-database-36.md" >}}) + - [Viewing a Database]({{< relref "./docs/Administration/viewing-a-database-37.md" >}}) + - [Selecting a Database]({{< relref "./docs/Administration/selecting-a-database-38.md" >}}) + - [Deleting a Database]({{< relref "./docs/Administration/deleting-a-database-39.md" >}}) + - [Backing Up a Database]({{< relref "./docs/Administration/backing-up-a-database-40.md" >}}) + - [Restoring a Database]({{< relref "./docs/Administration/restoring-a-database-41.md" >}}) + - [FAQs]({{< relref "./docs/Administration/faqs.md" >}}) + - [Why Is the Memory Usage of the libvirtd Service Queried by Running the systemctl and top Commands Different?]({{< relref "./docs/Administration/why-is-the-memory-usage-of-the-libvirtd-service-queried-by-running-the-systemctl-and-top-commands-di.md" >}}) + - [An Error Occurs When stripsize Is Set to 4 During RAID 0 Volume Configuration]({{< relref "./docs/Administration/an-error-occurs-when-stripsize-is-set-to-4-during-raid-0-volume-configuration.md" >}}) + - [Failed to Compile MariaDB Using rpmbuild]({{< relref "./docs/Administration/failed-to-compile-mariadb-using-rpmbuild.md" >}}) + - [Failed to Start the SNTP Service Using the Default Configuration]({{< relref "./docs/Administration/failed-to-start-the-sntp-service-using-the-default-configuration.md" >}}) + - [Installation Failure Caused by Software Package Conflict, File Conflict, or Missing Software Package]({{< relref "./docs/Administration/installation-failure-caused-by-software-package-conflict-file-conflict-or-missing-software-package.md" >}}) + + + - [Security Hardening Guide]({{< relref "./docs/SecHarden/secHarden.md" >}}) - [Preface]({{< relref "./docs/SecHarden/preface.md" >}}) - [OS Hardening Overview]({{< relref "./docs/SecHarden/os-hardening-overview.md" >}}) @@ -67,9 +359,7 @@ headless: true - [Permissions on Files and Directories]({{< relref "./docs/SecHarden/permissions-on-files-and-directories.md" >}}) - [umask Values]({{< relref "./docs/SecHarden/umask-values.md" >}}) - - -- [Virtualization User Guide]({{< relref "./docs/Virtualization/virtualization.md" >}}) +- [Virtualization User Guide]({{< relref "/docs/Virtualization/virtualization.md" >}}) - [About This Document]({{< relref "./docs/Virtualization/about-this-document.md" >}}) - [Introduction to Virtualization]({{< relref "./docs/Virtualization/introduction-to-virtualization.md" >}}) - [Installation Guide]({{< relref "./docs/Virtualization/installation-guide.md" >}}) @@ -261,7 +551,7 @@ headless: true - [Constraints]({{< relref "./docs/Container/constraints-2.md" >}}) - + - [Image Management]({{< relref "./docs/Container/image-management.md" >}}) - [Docker Image Management]({{< relref "./docs/Container/docker-image-management.md" >}}) - [Logging In to a Registry]({{< relref "./docs/Container/logging-in-to-a-registry.md" >}}) @@ -272,7 +562,7 @@ headless: true - [Listing Images]({{< relref "./docs/Container/listing-images.md" >}}) - [Inspecting Images]({{< relref "./docs/Container/inspecting-images.md" >}}) - [Two-Way Authentication]({{< relref "./docs/Container/two-way-authentication.md" >}}) - + - [Embedded Image Management]({{< relref "./docs/Container/embedded-image-management.md" >}}) - [Loading Images]({{< relref "./docs/Container/loading-images-3.md" >}}) - [Listing Images]({{< relref "./docs/Container/listing-images-4.md" >}}) @@ -285,22 +575,22 @@ headless: true - [Configuration Methods]({{< relref "./docs/Container/configuration-methods.md" >}}) - [Check Rules]({{< relref "./docs/Container/check-rules.md" >}}) - [Usage Restrictions]({{< relref "./docs/Container/usage-restrictions-8.md" >}}) - + - [Querying Information]({{< relref "./docs/Container/querying-information.md" >}}) - [Querying the Service Version]({{< relref "./docs/Container/querying-the-service-version.md" >}}) - [Querying System-level Information]({{< relref "./docs/Container/querying-system-level-information.md" >}}) - + - [Security Features]({{< relref "./docs/Container/security-features.md" >}}) - [Seccomp Security Configuration]({{< relref "./docs/Container/seccomp-security-configuration.md" >}}) - [Scenarios]({{< relref "./docs/Container/scenarios-9.md" >}}) - [Usage Restrictions]({{< relref "./docs/Container/usage-restrictions-10.md" >}}) - [Usage Guide]({{< relref "./docs/Container/usage-guide-11.md" >}}) - + - [capabilities Security Configuration]({{< relref "./docs/Container/capabilities-security-configuration.md" >}}) - [Scenarios]({{< relref "./docs/Container/scenarios-12.md" >}}) - [Usage Restrictions]({{< relref "./docs/Container/usage-restrictions-13.md" >}}) - [Usage Guide]({{< relref "./docs/Container/usage-guide-14.md" >}}) - + - [SELinux Security Configuration]({{< relref "./docs/Container/selinux-security-configuration.md" >}}) - [Scenarios]({{< relref "./docs/Container/scenarios-15.md" >}}) - [Usage Restrictions]({{< relref "./docs/Container/usage-restrictions-16.md" >}}) @@ -364,17 +654,17 @@ headless: true - [Stopping a Secure Container]({{< relref "./docs/Container/stopping-a-secure-container.md" >}}) - [Deleting a Secure Container]({{< relref "./docs/Container/deleting-a-secure-container.md" >}}) - [Running a New Command in the Container]({{< relref "./docs/Container/running-a-new-command-in-the-container.md" >}}) - + - [Configuring Resources for a Secure Container]({{< relref "./docs/Container/configuring-resources-for-a-secure-container.md" >}}) - [Sharing Resources]({{< relref "./docs/Container/sharing-resources-29.md" >}}) - [Limiting CPU Resources]({{< relref "./docs/Container/limiting-cpu-resources.md" >}}) - [Limiting Memory Resources]({{< relref "./docs/Container/limiting-memory-resources.md" >}}) - [Limiting Block I/O Resources]({{< relref "./docs/Container/limiting-block-i-o-resources.md" >}}) - [Limiting File Descriptor Resources]({{< relref "./docs/Container/limiting-file-descriptor-resources.md" >}}) - + - [Configuring Networking for a Secure Container]({{< relref "./docs/Container/configuring-networking-for-a-secure-container.md" >}}) - [Monitoring Secure Containers]({{< relref "./docs/Container/monitoring-secure-containers.md" >}}) - + - [Appendix]({{< relref "./docs/Container/appendix-30.md" >}}) - [configuration.toml]({{< relref "./docs/Container/configuration-toml-31.md" >}}) - [APIs]({{< relref "./docs/Container/apis-32.md" >}}) @@ -419,12 +709,12 @@ headless: true - [Stopping and Deleting a Container]({{< relref "./docs/Container/stopping-and-deleting-a-container.md" >}}) - [Querying Container Information]({{< relref "./docs/Container/querying-container-information.md" >}}) - [Modification Operations]({{< relref "./docs/Container/modification-operations.md" >}}) - + - [Image Management]({{< relref "./docs/Container/image-management-38.md" >}}) - [Creating an Image]({{< relref "./docs/Container/creating-an-image.md" >}}) - [Viewing Images]({{< relref "./docs/Container/viewing-images.md" >}}) - [Deleting Images]({{< relref "./docs/Container/deleting-images-39.md" >}}) - + - [Command Reference]({{< relref "./docs/Container/command-reference.md" >}}) - [Container Engine]({{< relref "./docs/Container/container-engine.md" >}}) - [Container Management]({{< relref "./docs/Container/container-management-40.md" >}}) @@ -450,7 +740,7 @@ headless: true - [top]({{< relref "./docs/Container/top.md" >}}) - [update]({{< relref "./docs/Container/update.md" >}}) - [wait]({{< relref "./docs/Container/wait.md" >}}) - + - [Image Management]({{< relref "./docs/Container/image-management-43.md" >}}) - [build]({{< relref "./docs/Container/build.md" >}}) - [history]({{< relref "./docs/Container/history.md" >}}) @@ -465,7 +755,7 @@ headless: true - [save]({{< relref "./docs/Container/save.md" >}}) - [search]({{< relref "./docs/Container/search.md" >}}) - [tag]({{< relref "./docs/Container/tag.md" >}}) - + - [Statistics]({{< relref "./docs/Container/statistics.md" >}}) - [events]({{< relref "./docs/Container/events.md" >}}) - [info]({{< relref "./docs/Container/info.md" >}}) @@ -531,3 +821,74 @@ headless: true - [Acronyms and Abbreviations]({{< relref "./docs/A-Tune/acronyms-and-abbreviations.md" >}}) + + +- [Application Development Guide]({{< relref "./docs/ApplicationDev/application-development.md" >}}) + - [About This Document]({{< relref "./docs/ApplicationDev/about-this-document.md" >}}) + - [Preparation]({{< relref "./docs/ApplicationDev/preparation.md" >}}) + - [Configuring the Development Environment]({{< relref "./docs/ApplicationDev/configuring-the-development-environment.md" >}}) + - [Configuring a Repo Source]({{< relref "./docs/ApplicationDev/configuring-a-repo-source.md" >}}) + - [Installing the Software Package]({{< relref "./docs/ApplicationDev/installing-the-software-package.md" >}}) + - [Installing the JDK Software Package]({{< relref "./docs/ApplicationDev/installing-the-jdk-software-package.md" >}}) + - [Installing the rpm-build Software Package]({{< relref "./docs/ApplicationDev/installing-the-rpm-build-software-package.md" >}}) + - [Using the IDE for Java Development]({{< relref "./docs/ApplicationDev/using-the-ide-for-java-development.md" >}}) + - [Overview]({{< relref "./docs/ApplicationDev/overview.md" >}}) + - [Logging In to the Server Using MobaXterm]({{< relref "./docs/ApplicationDev/logging-in-to-the-server-using-mobaxterm.md" >}}) + - [Setting the JDK Environment]({{< relref "./docs/ApplicationDev/setting-the-jdk-environment.md" >}}) + - [Downloading and Installing the GTK Library]({{< relref "./docs/ApplicationDev/downloading-and-installing-the-gtk-library.md" >}}) + - [Setting X11 Forwarding]({{< relref "./docs/ApplicationDev/setting-x11-forwarding.md" >}}) + - [Downloading and Running IntelliJ IDEA]({{< relref "./docs/ApplicationDev/downloading-and-running-intellij-idea.md" >}}) + - [Using GCC for Compilation]({{< relref "./docs/ApplicationDev/using-gcc-for-compilation.md" >}}) + - [Overview]({{< relref "./docs/ApplicationDev/overview-0.md" >}}) + - [Basics]({{< relref "./docs/ApplicationDev/basics.md" >}}) + - [File Type]({{< relref "./docs/ApplicationDev/file-type.md" >}}) + - [Compilation Process]({{< relref "./docs/ApplicationDev/compilation-process.md" >}}) + - [Compilation Options]({{< relref "./docs/ApplicationDev/compilation-options.md" >}}) + - [Multi-file Compilation]({{< relref "./docs/ApplicationDev/multi-file-compilation.md" >}}) + - [Libraries]({{< relref "./docs/ApplicationDev/libraries.md" >}}) + - [Dynamic Link Library]({{< relref "./docs/ApplicationDev/dynamic-link-library.md" >}}) + - [Static Link Library]({{< relref "./docs/ApplicationDev/static-link-library.md" >}}) + - [Examples]({{< relref "./docs/ApplicationDev/examples.md" >}}) + - [Example for Using GCC to Compile C Programs]({{< relref "./docs/ApplicationDev/example-for-using-gcc-to-compile-c-programs.md" >}}) + - [Example for Creating and Using a DLL Using GCC]({{< relref "./docs/ApplicationDev/example-for-creating-and-using-a-dll-using-gcc.md" >}}) + - [Example for Creating and Using an SLL Using GCC]({{< relref "./docs/ApplicationDev/example-for-creating-and-using-an-sll-using-gcc.md" >}}) + - [Using Make for Compilation]({{< relref "./docs/ApplicationDev/using-make-for-compilation.md" >}}) + - [Overview]({{< relref "./docs/ApplicationDev/overview-1.md" >}}) + - [Basics]({{< relref "./docs/ApplicationDev/basics-2.md" >}}) + - [File Type]({{< relref "./docs/ApplicationDev/file-type-3.md" >}}) + - [make Work Process]({{< relref "./docs/ApplicationDev/make-work-process.md" >}}) + - [make Options]({{< relref "./docs/ApplicationDev/make-options.md" >}}) + - [Makefiles]({{< relref "./docs/ApplicationDev/makefiles.md" >}}) + - [Examples]({{< relref "./docs/ApplicationDev/examples-4.md" >}}) + - [Example of Using Makefile to Implement Compilation]({{< relref "./docs/ApplicationDev/example-of-using-makefile-to-implement-compilation.md" >}}) + - [Using JDK for Compilation]({{< relref "./docs/ApplicationDev/using-jdk-for-compilation.md" >}}) + - [Overview]({{< relref "./docs/ApplicationDev/overview-5.md" >}}) + - [Basics]({{< relref "./docs/ApplicationDev/basics-6.md" >}}) + - [File Type and Tool]({{< relref "./docs/ApplicationDev/file-type-and-tool.md" >}}) + - [Java Program Generation Process]({{< relref "./docs/ApplicationDev/java-program-generation-process.md" >}}) + - [Common JDK Options]({{< relref "./docs/ApplicationDev/common-jdk-options.md" >}}) + - [Class Library]({{< relref "./docs/ApplicationDev/class-library.md" >}}) + - [Examples]({{< relref "./docs/ApplicationDev/examples-7.md" >}}) + - [Compiling a Java Program Without a Package]({{< relref "./docs/ApplicationDev/compiling-a-java-program-without-a-package.md" >}}) + - [Compiling a Java Program with a Package]({{< relref "./docs/ApplicationDev/compiling-a-java-program-with-a-package.md" >}}) + - [Building an RPM Package]({{< relref "./docs/ApplicationDev/building-an-rpm-package.md" >}}) + - [Packaging Description]({{< relref "./docs/ApplicationDev/packaging-description.md" >}}) + - [Building an RPM Package Locally]({{< relref "./docs/ApplicationDev/building-an-rpm-package-locally.md" >}}) + - [Setting Up the Development Environment]({{< relref "./docs/ApplicationDev/setting-up-the-development-environment.md" >}}) + - [Creating a Hello World RPM Package]({{< relref "./docs/ApplicationDev/creating-a-hello-world-rpm-package.md" >}}) + - [Obtaining the Source Code]({{< relref "./docs/ApplicationDev/obtaining-the-source-code.md" >}}) + - [Editing the SPEC File]({{< relref "./docs/ApplicationDev/editing-the-spec-file.md" >}}) + - [Building an RPM Package]({{< relref "./docs/ApplicationDev/building-an-rpm-package-8.md" >}}) + - [Building an RPM Package Using the OBS]({{< relref "./docs/ApplicationDev/building-an-rpm-package-using-the-obs.md" >}}) + - [OBS Overview]({{< relref "./docs/ApplicationDev/obs-overview.md" >}}) + - [Building an RPM Software Package Online]({{< relref "./docs/ApplicationDev/building-an-rpm-software-package-online.md" >}}) + - [Building an Existing Software Package]({{< relref "./docs/ApplicationDev/building-an-existing-software-package.md" >}}) + - [Adding a Software Package]({{< relref "./docs/ApplicationDev/adding-a-software-package.md" >}}) + - [Obtaining the Software Package]({{< relref "./docs/ApplicationDev/obtaining-the-software-package.md" >}}) + - [Building a Software Package Using OSC]({{< relref "./docs/ApplicationDev/building-a-software-package-using-osc.md" >}}) + - [Installing and Configuring the OSC]({{< relref "./docs/ApplicationDev/installing-and-configuring-the-osc.md" >}}) + - [Building an Existing Software Package]({{< relref "./docs/ApplicationDev/building-an-existing-software-package-9.md" >}}) + - [Adding a Software Package]({{< relref "./docs/ApplicationDev/adding-a-software-package-10.md" >}}) + - [Obtaining the Software Package]({{< relref "./docs/ApplicationDev/obtaining-the-software-package-11.md" >}}) + + diff --git "a/content/zh/docs/Administration/\345\256\211\350\243\205\346\227\266\345\207\272\347\216\260\350\275\257\344\273\266\345\214\205\345\206\262\347\252\201-\346\226\207\344\273\266\345\206\262\347\252\201\346\210\226\347\274\272\345\260\221\350\275\257\344\273\266\345\214\205\345\257\274\350\207\264\345\256\211\350\243\205\345\244\261\350\264\245.md" "b/content/zh/docs/Administration/\345\256\211\350\243\205\346\227\266\345\207\272\347\216\260\350\275\257\344\273\266\345\214\205\345\206\262\347\252\201-\346\226\207\344\273\266\345\206\262\347\252\201\346\210\226\347\274\272\345\260\221\350\275\257\344\273\266\345\214\205\345\257\274\350\207\264\345\256\211\350\243\205\345\244\261\350\264\245.md" index 1ab2984fd8bf30a9f5c07af2b052f9364c4769cb..4efb63c41c35bee884af5aa8cb355555df4f9209 100644 --- "a/content/zh/docs/Administration/\345\256\211\350\243\205\346\227\266\345\207\272\347\216\260\350\275\257\344\273\266\345\214\205\345\206\262\347\252\201-\346\226\207\344\273\266\345\206\262\347\252\201\346\210\226\347\274\272\345\260\221\350\275\257\344\273\266\345\214\205\345\257\274\350\207\264\345\256\211\350\243\205\345\244\261\350\264\245.md" +++ "b/content/zh/docs/Administration/\345\256\211\350\243\205\346\227\266\345\207\272\347\216\260\350\275\257\344\273\266\345\214\205\345\206\262\347\252\201-\346\226\207\344\273\266\345\206\262\347\252\201\346\210\226\347\274\272\345\260\221\350\275\257\344\273\266\345\214\205\345\257\274\350\207\264\345\256\211\350\243\205\345\244\261\350\264\245.md" @@ -30,7 +30,7 @@ Error: - problem with installed package python2-blivet-1:3.1.1-5.noarch(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) ``` -## 问题原因 +## 原因分析 - openEuler提供的软件包中,有些软件包虽然名称不同,但功能相同,导致两个软件包无法同时安装。 - openEuler提供的软件包中,有些软件包虽然名称不同,但功能相同,导致安装时安装后的文件相同,从而产生了文件冲突。 diff --git "a/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-28.md" "b/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-28.md" index dfbc1f66daba84bccbf5e41527b447961d89a373..45c8d8d0579741eb4660dc74e2cae794a65a7802 100644 --- "a/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-28.md" +++ "b/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-28.md" @@ -22,6 +22,6 @@ mysql -h hostname -P portnumber -u username -ppassword databasename < infile \#恢复数据库。 ``` -# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 > db1.sql +# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 < db1.sql ``` diff --git "a/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-53.md" "b/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-53.md" index 81631d3c6c37763a9b05cfb36ce24ade9d4d7d15..b1fa5b16b1f622ec7f009d865a341e2fed3e2080 100644 --- "a/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-53.md" +++ "b/content/zh/docs/Administration/\346\201\242\345\244\215\346\225\260\346\215\256\345\272\223-53.md" @@ -22,6 +22,6 @@ mysql -h hostname -P portnumber -u username -ppassword databasename < infile \#恢复数据库。 ``` -# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 > db1.sql +# mysql -h 192.168.202.144 -P 3306 -uroot -p123456 -t db1 < db1.sql ``` diff --git "a/content/zh/docs/Administration/\346\237\245\347\234\213\350\247\222\350\211\262.md" "b/content/zh/docs/Administration/\346\237\245\347\234\213\350\247\222\350\211\262.md" index 23edb3e1b4b5dca6d75af28eda4f543f1353072f..5f6a484be09795de18bb8032a2caade97b339734 100644 --- "a/content/zh/docs/Administration/\346\237\245\347\234\213\350\247\222\350\211\262.md" +++ "b/content/zh/docs/Administration/\346\237\245\347\234\213\350\247\222\350\211\262.md" @@ -1,6 +1,6 @@ # 查看角色 -可以使用SELEC语句或psql的元命令\\du查看角色。 +可以使用SELECT语句或psql的元命令\\du查看角色。 ``` SELECT rolename FROM pg_roles; diff --git "a/content/zh/docs/Administration/\347\256\241\347\220\206\347\263\273\347\273\237\346\234\215\345\212\241.md" "b/content/zh/docs/Administration/\347\256\241\347\220\206\347\263\273\347\273\237\346\234\215\345\212\241.md" index 08c489a90470a66005c31a9db749852922335b49..39ce078153917c52a273321265b83f1235911311 100644 --- "a/content/zh/docs/Administration/\347\256\241\347\220\206\347\263\273\347\273\237\346\234\215\345\212\241.md" +++ "b/content/zh/docs/Administration/\347\256\241\347\220\206\347\263\273\347\273\237\346\234\215\345\212\241.md" @@ -307,7 +307,8 @@ gdm.service - GNOME Display Manager Loaded: loaded (/usr/lib/systemd/system/gd Main PID: 1029 (gdm) CGroup: /system.slice/gdm.service ├─1029 /usr/sbin/gdm - ├─1037 /usr/libexec/gdm-simple-slave --display-id /org/gno... └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager. + ├─1037 /usr/libexec/gdm-simple-slave --display-id /org/gno... + └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager. ``` ## 运行服务 diff --git "a/content/zh/docs/Administration/\347\256\241\347\220\206\351\200\273\350\276\221\345\215\267.md" "b/content/zh/docs/Administration/\347\256\241\347\220\206\351\200\273\350\276\221\345\215\267.md" index fa20ee114d552a36eb190f36e4917de538bb1b08..0b7c116974e5147298ccd470d40696a453aabae4 100644 --- "a/content/zh/docs/Administration/\347\256\241\347\220\206\351\200\273\350\276\221\345\215\267.md" +++ "b/content/zh/docs/Administration/\347\256\241\347\220\206\351\200\273\350\276\221\345\215\267.md" @@ -109,7 +109,7 @@ lvextend -L +100M /dev/vg1/lv1 ## 收缩逻辑卷 -可通过vgreduce命令减少逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。 +可通过lvreduce命令减少逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。 ``` lvreduce [option] lvname diff --git "a/content/zh/docs/ApplicationDev/make\351\200\211\351\241\271.md" "b/content/zh/docs/ApplicationDev/make\351\200\211\351\241\271.md" index 68082b99c330efb637fad39ebc4addb671f6ab9c..eab22da4710593b8ce2f7440098eacb471b74bad 100644 --- "a/content/zh/docs/ApplicationDev/make\351\200\211\351\241\271.md" +++ "b/content/zh/docs/ApplicationDev/make\351\200\211\351\241\271.md" @@ -6,7 +6,7 @@ make命令格式为:**make** \[_option_\]... \[_targe_t\]... _option_:参数选项。 -_ftarget_:Makefile中指定的目标。 +_target_:Makefile中指定的目标。 常用make的_option_取值如[表1](#table261872312343)所示。 diff --git "a/content/zh/docs/ApplicationDev/\344\275\277\347\224\250IDE\350\277\233\350\241\214Java\345\274\200\345\217\221.md" "b/content/zh/docs/ApplicationDev/\344\275\277\347\224\250IDE\350\277\233\350\241\214Java\345\274\200\345\217\221.md" index 971c2ddb724c77da98f9210b5fd64afb3dcc8faa..a55ade07a8622a13d6e69a0cd6fb1c252c16084c 100644 --- "a/content/zh/docs/ApplicationDev/\344\275\277\347\224\250IDE\350\277\233\350\241\214Java\345\274\200\345\217\221.md" +++ "b/content/zh/docs/ApplicationDev/\344\275\277\347\224\250IDE\350\277\233\350\241\214Java\345\274\200\345\217\221.md" @@ -1,6 +1,6 @@ # 使用IDE进行Java开发 -对于小型的Java程序,可以直接[使用JDK编译](使用JDK编译.md)得到可运行Java应用。但是对于大中型Java应用,这种方式已经无法满足开发者的需求。因此您可以参考如下步骤安装IDE并进行使用,以方便您在openEuler系统上的Java开发工作。 +对于小型的Java程序,可以直接参考“使用JDK编译”章节得到可运行Java应用。但是对于大中型Java应用,这种方式已经无法满足开发者的需求。因此您可以参考如下步骤安装IDE并进行使用,以方便您在openEuler系统上的Java开发工作。 diff --git "a/content/zh/docs/ApplicationDev/\345\256\211\350\243\205\345\271\266\351\205\215\347\275\256osc.md" "b/content/zh/docs/ApplicationDev/\345\256\211\350\243\205\345\271\266\351\205\215\347\275\256osc.md" index 0051ea8bebe62be3ac0d1c7bb5a3fdbdb60435b2..6abd6a702890ead57f16748f2d7b6b4ccf78b60f 100644 --- "a/content/zh/docs/ApplicationDev/\345\256\211\350\243\205\345\271\266\351\205\215\347\275\256osc.md" +++ "b/content/zh/docs/ApplicationDev/\345\256\211\350\243\205\345\271\266\351\205\215\347\275\256osc.md" @@ -22,21 +22,21 @@ # vi ~/.oscrc ``` - 2. 在\~/.oscrc中添加user和pass字段,如下所示,它们的取值 _userName_ _和_ _passWord_ 分别是用户在OBS网页([https://build.openeuler.org/](https://build.openeuler.org/))上已经注册的账号和密码。 + 2. 在\~/.oscrc中添加user和pass字段,如下所示,它们的取值 _userName_ _和_ _passWord_ 分别是用户在OBS网页([http://openeuler-build.huawei.com/](http://openeuler-build.huawei.com/))上已经注册的账号和密码。 ``` [general] - apiurl = https://build.openeuler.org + apiurl = http://openeuler-build.huawei.com/ no_verify = 1 - [https://build.openeuler.org] + [http://openeuler-build.huawei.com/] user=userName pass=passWord ``` - 3. 如果域名build.openeuler.org无法解析,则可以在/etc/hosts文件中手动添加如下一行。其中, _ip-address_ 是obs的ip地址,为http://117.78.1.88/。 + 3. 如果域名openeuler-build.openeuler.org无法解析,则可以在/etc/hosts文件中手动添加如下一行。其中, _ip-address_ 是obs的ip地址,为http://117.78.1.88/。 ``` - ip-address build.openeuler.org + ip-address openeuler-build.openeuler.org ``` diff --git "a/content/zh/docs/ApplicationDev/\346\236\204\345\273\272\345\267\262\346\234\211\350\275\257\344\273\266\345\214\205.md" "b/content/zh/docs/ApplicationDev/\346\236\204\345\273\272\345\267\262\346\234\211\350\275\257\344\273\266\345\214\205.md" index e3ed6210b8b83312e30de9e8963b6a594e8dc277..d01d79659935554ccd1c607ecb3535ffa7041d7c 100644 --- "a/content/zh/docs/ApplicationDev/\346\236\204\345\273\272\345\267\262\346\234\211\350\275\257\344\273\266\345\214\205.md" +++ "b/content/zh/docs/ApplicationDev/\346\236\204\345\273\272\345\267\262\346\234\211\350\275\257\344\273\266\345\214\205.md" @@ -6,7 +6,7 @@ 使用OBS网页端,修改已有软件的源代码,并将修改后的源文件构建为RPM软件包的操作方法如下: -1. 登录OBS界面,地址为:[http://117.78.1.88/](http://117.78.1.88/)。 +1. 登录OBS界面,地址为:[http://openeuler-build.huawei.com/](http://openeuler-build.huawei.com/)。 2. 单击“All Projects”进入所有工程页面。 3. 单击需要修改的对应工程,进入该工程的详情页面,例如单击“openEuler:Mainline”。 4. 在工程详情页面的搜索框查找需要修改的软件包,然后单击该软件包包名,进入该软件包详请页面。 diff --git "a/content/zh/docs/ApplicationDev/\347\216\257\345\242\203\350\246\201\346\261\202.md" "b/content/zh/docs/ApplicationDev/\347\216\257\345\242\203\350\246\201\346\261\202.md" index 3ac8d538b5945a1c9df8278c5fd6bdb2c196c614..74e50afe5791ac1d7180279ef167d8c58690f231 100644 --- "a/content/zh/docs/ApplicationDev/\347\216\257\345\242\203\350\246\201\346\261\202.md" +++ "b/content/zh/docs/ApplicationDev/\347\216\257\345\242\203\350\246\201\346\261\202.md" @@ -15,7 +15,7 @@

架构

-
  • AArch64
  • x86
+
  • AArch64
  • x86_64
  • 支持Arm的64位架构。
  • 支持Intel的x86 64位架构。
@@ -59,7 +59,7 @@

架构

-
  • AArch64
  • x86
+
  • AArch64
  • x86_64

-

@@ -80,7 +80,7 @@

硬盘

-

不小于1032GB(为了获得更好的应用体验,建议不小于120GB)

+

不小于32GB(为了获得更好的应用体验,建议不小于120GB)

-

diff --git "a/content/zh/docs/ApplicationDev/\350\256\276\347\275\256JDK\347\216\257\345\242\203.md" "b/content/zh/docs/ApplicationDev/\350\256\276\347\275\256JDK\347\216\257\345\242\203.md" index 8ef6cb874c9cc5d7609e91c52fb53008e160aa7f..5f39cedcf8cfe3bc6a55579c667348a4bdfc51b3 100644 --- "a/content/zh/docs/ApplicationDev/\350\256\276\347\275\256JDK\347\216\257\345\242\203.md" +++ "b/content/zh/docs/ApplicationDev/\350\256\276\347\275\256JDK\347\216\257\345\242\203.md" @@ -1,6 +1,6 @@ # 设置JDK环境 -在设置JAVA\_HOME之前您需要先找到JDK的安装路径。在[安装JDK软件包](安装JDK软件包.md)中您已经学会了如何安装JDK,如果您还没安装好JDK,请提前安好。 +在设置JAVA\_HOME之前您需要先找到JDK的安装路径。在“开发环境准备 \> 安装软件包 \> 安装JDK软件包”章节中您已经学会了如何安装JDK,如果您还没安装好JDK,请提前安好。 查看java路径,命令如下: diff --git "a/content/zh/docs/ApplicationDev/\351\235\231\346\200\201\351\223\276\346\216\245\345\272\223.md" "b/content/zh/docs/ApplicationDev/\351\235\231\346\200\201\351\223\276\346\216\245\345\272\223.md" index decb384057a35f986a3e9f2ed228916b8bffee55..19161d4127675a96ce017d6d5a52334cfbb21531 100644 --- "a/content/zh/docs/ApplicationDev/\351\235\231\346\200\201\351\223\276\346\216\245\345\272\223.md" +++ "b/content/zh/docs/ApplicationDev/\351\235\231\346\200\201\351\223\276\346\216\245\345\272\223.md" @@ -13,8 +13,10 @@ ar rcs libtest.a test1.o test2.o test3.o ar将目标文件打包成静态链接库的命令格式为: -ar rcs 静态库文件名 目标文件列表 +ar rcs _Sllfilename_ _Targetfilelist_ +- _Sllfilename_: 静态库文件名。 +- _Targetfilelist_:目标文件列表。 - r: 替换库中已有的目标文件,或者加入新的目标文件。 - c: 创建一个库,不管库否存在,都将创建。 - s: 创建目标文件索引,在创建较大的库时能提高速度。 diff --git "a/content/zh/docs/Installation/figures/\345\256\211\350\243\205\345\274\225\345\257\274\347\225\214\351\235\242.png" "b/content/zh/docs/Installation/figures/\345\256\211\350\243\205\345\274\225\345\257\274\347\225\214\351\235\242.png" index 9dadf8b0a5044aa83cbe7179fce17c9807b9188c..b147fa7ac745eb313ebe5a7a887d1c0f5d8efdb0 100644 Binary files "a/content/zh/docs/Installation/figures/\345\256\211\350\243\205\345\274\225\345\257\274\347\225\214\351\235\242.png" and "b/content/zh/docs/Installation/figures/\345\256\211\350\243\205\345\274\225\345\257\274\347\225\214\351\235\242.png" differ diff --git "a/content/zh/docs/Installation/\345\256\211\350\243\205\346\226\271\345\274\217\344\273\213\347\273\215.md" "b/content/zh/docs/Installation/\345\256\211\350\243\205\346\226\271\345\274\217\344\273\213\347\273\215.md" index 14911d27be7c333771252b39b3840758cef10e14..00c462512ce1f02db2aa1c8f09ee88ef55bd2e9f 100644 --- "a/content/zh/docs/Installation/\345\256\211\350\243\205\346\226\271\345\274\217\344\273\213\347\273\215.md" +++ "b/content/zh/docs/Installation/\345\256\211\350\243\205\346\226\271\345\274\217\344\273\213\347\273\215.md" @@ -1,7 +1,7 @@ # 安装方式介绍 >![](public_sys-resources/icon-notice.gif) **须知:** ->- 硬件服务器仅支持Taishan 200服务器,具体支持的服务器型号可参考“安装准备-\>硬件兼容支持”章节;虚拟化平台仅支持openEuler自有的虚拟化组件(HostOS为openEuler,虚拟化组件为发布包中的qemu、KVM)创建的虚拟化平台和华为公有云的x86虚拟化平台。 +>- 硬件服务器仅支持Taishan 200服务器和FusionServer Pro 机架服务器,具体支持的服务器型号可参考“安装准备 \> 物理机的安装要求 \> 硬件兼容支持”章节;虚拟化平台仅支持openEuler自有的虚拟化组件(HostOS为openEuler,虚拟化组件为发布包中的qemu、KVM)创建的虚拟化平台和华为公有云的x86虚拟化平台。 >- 安装方式当前仅支持光盘、USB盘安装、网络安装、qcow2镜像安装和私有镜像安装。其中仅华为公有云的x86虚拟化平台支持私有镜像安装。 diff --git "a/content/zh/docs/Installation/\347\275\221\347\273\234\351\205\215\347\275\256\347\272\246\346\235\237\351\231\220\345\210\266.md" "b/content/zh/docs/Installation/\347\275\221\347\273\234\351\205\215\347\275\256\347\272\246\346\235\237\351\231\220\345\210\266.md" index a3c9cb10afb13aa655d2adfd074b47ec24ef43ed..e44ada87ee7a0ebb7c1674ee7519abbf09719f9a 100644 --- "a/content/zh/docs/Installation/\347\275\221\347\273\234\351\205\215\347\275\256\347\272\246\346\235\237\351\231\220\345\210\266.md" +++ "b/content/zh/docs/Installation/\347\275\221\347\273\234\351\205\215\347\275\256\347\272\246\346\235\237\351\231\220\345\210\266.md" @@ -14,7 +14,7 @@ NetworkManager、network两个服务均是网络服务管理包,两个服务 ``` >![](public_sys-resources/icon-note.gif) **说明:** - >nmcli命令使用参考“nmcli --help”或者“man nmcli”。 + >nmcli命令使用参考“nmcli \--help”或者“man nmcli”。 - 如果要使用ip/ifconfig/route等命令来管理网络,请先关闭NetworkManager服务,使用如下命令: diff --git "a/content/zh/docs/Installation/\350\256\276\347\275\256\346\227\266\351\227\264\345\222\214\346\227\245\346\234\237.md" "b/content/zh/docs/Installation/\350\256\276\347\275\256\346\227\266\351\227\264\345\222\214\346\227\245\346\234\237.md" index d462cd920ada1406cfcc2ee529fd783969ee7b99..3110ea9cef3bd987994d52a513c7fef25b1d7161 100644 --- "a/content/zh/docs/Installation/\350\256\276\347\275\256\346\227\266\351\227\264\345\222\214\346\227\245\346\234\237.md" +++ "b/content/zh/docs/Installation/\350\256\276\347\275\256\346\227\266\351\227\264\345\222\214\346\227\245\346\234\237.md" @@ -8,7 +8,7 @@ >![](public_sys-resources/icon-note.gif) **说明:** >- 手动设置时区时,请先关闭右上角“网络时间”同步开关。 ->- 如需使用网络时间,请保证网络能连通远程NTP服务器,设置网络具体请参见“安装指导 \> (推荐)通过图形化模式安装 \> 设置安装参数 \> 设置网络和主机名”章节。 +>- 如需使用网络时间,请保证网络能连通远程NTP服务器,设置网络具体请参见“安装指导 \> 通过图形化模式安装 \> 设置安装参数 \> 设置网络和主机名”章节。 **图 1** 日期和时间 ![](figures/日期和时间.png "日期和时间") diff --git "a/content/zh/docs/Installation/\351\200\232\350\277\207qcow2\351\225\234\345\203\217\345\256\211\350\243\205.md" "b/content/zh/docs/Installation/\351\200\232\350\277\207qcow2\351\225\234\345\203\217\345\256\211\350\243\205.md" index 9ee5d9f4e7636b7fa6f1b90e0689efc236b76f06..3fd69068711bffa61e94b6db55b66484d22a2145 100644 --- "a/content/zh/docs/Installation/\351\200\232\350\277\207qcow2\351\225\234\345\203\217\345\256\211\350\243\205.md" +++ "b/content/zh/docs/Installation/\351\200\232\350\277\207qcow2\351\225\234\345\203\217\345\256\211\350\243\205.md" @@ -18,10 +18,10 @@ 其中,各参数含义如下: - - _imgFormat_:镜像格式,取值为raw, qcow2等。 - - _fileOption_:文件选项,用于设置镜像文件的特性,如指定后端镜像文件,压缩,加密等特性。 - - _f__ileName_:文件名称。 - - _diskSize_:磁盘大小,用于指定块磁盘设备的大小,支持的单位有K、M、G、T,分别代表KiB、MiB、GiB、TiB。 + - _imgFormat_ :镜像格式,取值为raw, qcow2等。 + - _fileOption_ :文件选项,用于设置镜像文件的特性,如指定后端镜像文件,压缩,加密等特性。 + - _f__ileName_ :文件名称。 + - _diskSize_ :磁盘大小,用于指定块磁盘设备的大小,支持的单位有K、M、G、T,分别代表KiB、MiB、GiB、TiB。 例如,创建一个磁盘设备大小为32GB、格式为qcow2的镜像文件openEuler-imge.qcow2,命令和回显如下: diff --git "a/content/zh/docs/Quickstart/\345\277\253\351\200\237\345\205\245\351\227\250\346\214\207\345\215\227.md" "b/content/zh/docs/Quickstart/\345\277\253\351\200\237\345\205\245\351\227\250\346\214\207\345\215\227.md" index 37c50b6355b9cadad19ef9545df98444ed8c9bd4..55547672bcc112b30cb13a6540de7776ce6e9b94 100644 --- "a/content/zh/docs/Quickstart/\345\277\253\351\200\237\345\205\245\351\227\250\346\214\207\345\215\227.md" +++ "b/content/zh/docs/Quickstart/\345\277\253\351\200\237\345\205\245\351\227\250\346\214\207\345\215\227.md" @@ -1,21 +1,7 @@ -# 快速入门指南 +# 快速入门 本文档以TaiShan 200服务器上安装openEuler 20.03 LTS为例,旨在指导用户快速地安装和使用openEuler操作系统,更详细的安装要求和安装方法请参考《[openEuler 20.03 LTS 安装指南](https://openeuler.org/zh/docs/20.03_LTS/docs/Installation/installation.html)》。 -## 法律声明 - -**版权所有 © 2020 华为技术有限公司。** - -您对“本文档”的复制、使用、修改及分发受知识共享\(Creative Commons\)署名—相同方式共享4.0国际公共许可协议\(以下简称“CC BY-SA 4.0”\)的约束。为了方便用户理解,您可以通过访问[https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) 了解CC BY-SA 4.0的概要 \(但不是替代\)。CC BY-SA 4.0的完整协议内容您可以访问如下网址获取:[https://creativecommons.org/licenses/by-sa/4.0/legalcode](https://creativecommons.org/licenses/by-sa/4.0/legalcode)。 - -**商标声明** - -openEuler为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 - -**免责声明** - -本文档仅作为使用指导,除非适用法强制规定或者双方有明确书面约定, 华为技术有限公司对本文档中的所有陈述、信息和建议不做任何明示或默示的声明或保证,包括但不限于不侵权,时效性或满足特定目的的担保。 - ## 安装要求 - 硬件兼容支持 @@ -125,7 +111,9 @@ openEuler为华为技术有限公司的商标。本文档提及的其他所有 -为了防止软件包在传输过程中由于网络原因或者存储设备原因出现下载不完整的问题,在获取到软件包后,可按一下步骤获取到的openEuler的软件包的进行完整性校验。 +## 发布包完整性校验 + +为了防止软件包在传输过程中由于网络原因或者存储设备原因出现下载不完整的问题,在获取到软件包后,可按以下步骤将获取到的openEuler的软件包进行完整性校验。 1. 获取校验文件中的校验值。执行命令如下: @@ -184,7 +172,7 @@ openEuler为华为技术有限公司的商标。本文档提及的其他所有 >- 安装物理机时,如果使用键盘上下键无法选择启动选项,按“Enter”键无响应,可以单击BMC界面上的鼠标控制图标“![](figures/zh-cn_image_0229420473.png)”,设置“键鼠复位”。 **图 5** 安装引导界面 - ![](figures/安装引导界面.png "安装引导界面") + 9. 在安装引导界面,按“Enter”,进入默认选项“Test this media & install openEuler 20.03 LTS”的图形化安装界面。 @@ -195,52 +183,53 @@ openEuler为华为技术有限公司的商标。本文档提及的其他所有 1. 设置安装语言,默认为英语,用户可根据实际情况进行调整,如[图6](#fig874344811484)所示,选择“中文”。 **图 6** 选择语言 - ![](figures/选择语言.png "选择语言") + 2. 在安装概览界面,根据实际情况设置各配置项。 + - 配置项有告警符号的,表示用户必须完成该选项配置后,告警符号消失,才能进行下一步操作。 - 配置项无告警符号的,表示该配置项已有默认配置。 - 所有配置项均无告警符号时用户才能单击“开始安装”进行系统安装。 - **图 7** 安装概览 - ![](figures/安装概览.png "安装概览") + **图 7** 安装概览 + - 1. 选择“软件选择”,设置“软件选择”配置项。 + 1. 选择“软件选择”,设置“软件选择”配置项。 - 用户需要根据实际的业务需求,在左侧选择一个“最小安装”,在右侧选择安装环境的附加选项,如[图8](#fig4938114285)所示。 + 用户需要根据实际的业务需求,在左侧选择一个“最小安装”,在右侧选择安装环境的附加选项,如[图8](#fig1133717611109)所示。 - **图 8** 软件选择 - ![](figures/软件选择.png "软件选择") + **图 8** 软件选择 + - >![](public_sys-resources/icon-note.gif) **说明:** - >- 在最小安装的环境下,并非安装源中所有的包都会安装。如果用户需要使用的包未安装,可将安装源挂载到本地制作repo源,通过DNF工具单独安装。 - >- 选择“虚拟化主机”时会默认安装虚拟化组件qemu、libvirt、edk2,且可在附件选项处选择是否安装ovs等组件。 + >![](public_sys-resources/icon-note.gif) **说明:** + >- 在最小安装的环境下,并非安装源中所有的包都会安装。如果用户需要使用的包未安装,可将安装源挂载到本地制作repo源,通过DNF工具单独安装。 + >- 选择“虚拟化主机”时会默认安装虚拟化组件qemu、libvirt、edk2,且可在附件选项处选择是否安装ovs等组件。 - 设置完成后,请单击左上角“完成”返回“安装概览”页面。 + 设置完成后,请单击左上角“完成”返回“安装概览”页面。 - 2. 选择“安装位置”,设置“安装位置”配置项。 + 2. 选择“安装位置”,设置“安装位置”配置项。 - 在安装位置页面中,您可以选择计算机中的本地可用存储设备,也可以通过单击“添加磁盘”,添加指定的附加设备或者网络设备。您还需要进行存储配置以便对系统分区。您可以手动配置分区,也可以选择让安装程序自动分区。如果是在未使用过的存储设备中执行全新安装,或者不需要保留该存储设备中任何数据,建议选择“自动”进行自动分区。如[图9](#fig1195417125015)所示。 + 在安装位置页面中,您可以选择计算机中的本地可用存储设备,也可以通过单击“添加磁盘”,添加指定的附加设备或者网络设备。您还需要进行存储配置以便对系统分区。您可以手动配置分区,也可以选择让安装程序自动分区。如果是在未使用过的存储设备中执行全新安装,或者不需要保留该存储设备中任何数据,建议选择“自动”进行自动分区。如[图9](#fig153381468101)所示。 - >![](public_sys-resources/icon-notice.gif) **须知:** - >在选择您需要安装的设备时,建议不要选择NVMe SSD存储介质作为操作系统的安装磁盘。 + >![](public_sys-resources/icon-notice.gif) **须知:** + >在选择您需要安装的设备时,建议不要选择NVMe SSD存储介质作为操作系统的安装磁盘。 - **图 9** 安装目标位置 - ![](figures/安装目标位置.png "安装目标位置") + **图 9** 安装目标位置 + - >![](public_sys-resources/icon-note.gif) **说明:** - >- 在进行分区时,出于系统性能和安全的考虑,建议您划分如下单独分区:/boot、/var、/var/log 、/var/log/audit、/home、/tmp。 - >- 系统如果配置了swap分区,当系统的物理内存不够用时,会使用swap分区。虽然 swap分区可以增大物理内存大小的限制,但是如果由于内存不足使用到swap分区,会增加系统的响应时间,性能变差。因此在物理内存充足或者性能敏感的系统中,不建议配置swap分区。 - >- 如果需要拆分逻辑卷组则需要选择“自定义”进行手动分区,并在“手动分区”界面单击“卷组”区域中的“修改”按钮重新配置卷组。 + >![](public_sys-resources/icon-note.gif) **说明:** + >- 在进行分区时,出于系统性能和安全的考虑,建议您划分如下单独分区:/boot、/var、/var/log 、/var/log/audit、/home、/tmp。 + >- 系统如果配置了swap分区,当系统的物理内存不够用时,会使用swap分区。虽然 swap分区可以增大物理内存大小的限制,但是如果由于内存不足使用到swap分区,会增加系统的响应时间,性能变差。因此在物理内存充足或者性能敏感的系统中,不建议配置swap分区。 + >- 如果需要拆分逻辑卷组则需要选择“自定义”进行手动分区,并在“手动分区”界面单击“卷组”区域中的“修改”按钮重新配置卷组。 - 设置完成后,请单击左上角“完成”返回“安装概览”页面。 + 设置完成后,请单击左上角“完成”返回“安装概览”页面。 - 3. 设置其他配置项,其他配置项可以使用默认配置。 + 3. 设置其他配置项,其他配置项可以使用默认配置。 3. 单击“开始安装”进行系统安装,如[图10](#fig1717019357392)所示。 **图 10** 开始安装 - ![](figures/开始安装.png "开始安装") + 4. 设置root密码。 @@ -279,14 +268,14 @@ openEuler为华为技术有限公司的商标。本文档提及的其他所有 **图 11** root密码 - ![](figures/root密码.png "root密码") + 5. 创建用户。 单击“创建用户”,弹出创建用户的界面如[图12](#zh-cn_topic_0186390266_zh-cn_topic_0122145909_fig1237715313319)所示。输入用户名,并设置密码,其中密码复杂度要求与root密码复杂度要求一致。另外您还可以通过“高级”选项设置用户主目录、用户组等,如[图13](#zh-cn_topic_0186390266_zh-cn_topic_0122145909_fig128716531312)所示。 **图 12** 创建用户 - ![](figures/创建用户.png "创建用户") + **图 13** 高级用户配置 ![](figures/高级用户配置.png "高级用户配置") @@ -298,7 +287,7 @@ openEuler为华为技术有限公司的商标。本文档提及的其他所有 openEuler完成安装,如[图14](#zh-cn_topic_0186390267_zh-cn_topic_0122145917_fig1429512116338)所示。单击“重启”后,系统将重新启动。 **图 14** 完成安装 - ![](figures/完成安装.png "完成安装") + ## 查看系统信息 diff --git a/rdocs/en/openEuler 20.03 LTS Administrator Guide.pdf b/rdocs/en/openEuler 20.03 LTS Administrator Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2039b90984988ae4c8e0214ebd9f033fd8490ebd Binary files /dev/null and b/rdocs/en/openEuler 20.03 LTS Administrator Guide.pdf differ diff --git a/rdocs/en/openEuler 20.03 LTS Application Development Guide.pdf b/rdocs/en/openEuler 20.03 LTS Application Development Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5c132a743d2c7b3a27c15397c7c3acdebc8a8d1e Binary files /dev/null and b/rdocs/en/openEuler 20.03 LTS Application Development Guide.pdf differ diff --git a/rdocs/en/openEuler 20.03 LTS Installation Guide.pdf b/rdocs/en/openEuler 20.03 LTS Installation Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9e72c47cae20bb7f523d4423d1c87c492a1a9d51 Binary files /dev/null and b/rdocs/en/openEuler 20.03 LTS Installation Guide.pdf differ diff --git "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\256\211\350\243\205\346\214\207\345\215\227.pdf" "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\256\211\350\243\205\346\214\207\345\215\227.pdf" index f8ec347379e9fc3fab0cdef915393e031a880416..6c2b9eef6dea506d9cc731b4aa83054a3163e45c 100644 Binary files "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\256\211\350\243\205\346\214\207\345\215\227.pdf" and "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\256\211\350\243\205\346\214\207\345\215\227.pdf" differ diff --git "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\272\224\347\224\250\345\274\200\345\217\221\346\214\207\345\215\227.pdf" "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\272\224\347\224\250\345\274\200\345\217\221\346\214\207\345\215\227.pdf" index b3fceabc14b5cc61cd344cc697d2e8ba19bdb6d4..7b120d4c9d07fbd2822b457b233c55e57d4cc4c3 100644 Binary files "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\272\224\347\224\250\345\274\200\345\217\221\346\214\207\345\215\227.pdf" and "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \345\272\224\347\224\250\345\274\200\345\217\221\346\214\207\345\215\227.pdf" differ diff --git "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \347\256\241\347\220\206\345\221\230\346\214\207\345\215\227.pdf" "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \347\256\241\347\220\206\345\221\230\346\214\207\345\215\227.pdf" index 93d55d61701fc18ee97d17b7ef7b6bc46fe94071..262ef388677ae150e2062085396e1aed6e1235c9 100644 Binary files "a/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \347\256\241\347\220\206\345\221\230\346\214\207\345\215\227.pdf" and "b/rdocs/zh/openEuler 20.03 LTS_20200324/openEuler 20.03 LTS \347\256\241\347\220\206\345\221\230\346\214\207\345\215\227.pdf" differ