Linux:Gentoo系統的安裝筆記(四)

来源:https://www.cnblogs.com/q596044192/archive/2018/09/18/9588250.html
-Advertisement-
Play Games

本來以為結束,誰知離正常的系統還是比較遠,不過不放棄,這期的筆記我敢肯定是最後一期了,寫了那麼多我也覺得煩,被gentoo折磨煩了。 安裝KDE桌面 選擇正確的配置文件 先獲取root許可權來安裝桌面環境: 先eselect profile list來看看配置正,如果選不對的話KDE桌面環境是無法正常 ...


 本來以為結束,誰知離正常的系統還是比較遠,不過不放棄,這期的筆記我敢肯定是最後一期了,寫了那麼多我也覺得煩,被gentoo折磨煩了。

安裝KDE桌面

選擇正確的配置文件

先獲取root許可權來安裝桌面環境:

先eselect profile list來看看配置正,如果選不對的話KDE桌面環境是無法正常安裝的。

建議選擇適當的概要文件(儘管不是必需的),因為它設置了許多全局和特定於包的使用標誌,以簡化安裝並確保KDE的流暢體驗。
為了選擇最合適的配置文件,首先列出可用的:

對於KDE Plasma 5桌面環境,請選擇帶有OpenRC的desktop/ Plasma或帶有systemd的desktop/ Plasma /systemd:

我的第19項就是帶有Plasma的那項。(不知道的話可以回頭看我的第二期筆記,裡面有截圖)

首先先測試網路,沒網路一切空談:

看,有網路了,如果沒有網路的該怎麼辦呢?下麵為我的解決方法:(網路正常的請忽略)

我是這樣解決的,由於gentoo預設是使用DHCP的,所以第三期的筆記教程中的DHCP客戶端是一定要裝的。

如果你在第三期筆記的網路信息中的配置網路環節中,即是編輯/etc/conf.d/net時沒有添加config_(網路介面名,如我的是eno16777736)=“dhcp”或沒有這樣編輯的,重啟到新的gentoo系統,是沒法進行聯網的。(不記得網路介面名的請使用ifconfig命令查看)

這時我們可以這樣解決,你可以在新的gentoo系統中修改/etc/conf.d/net,如果不行的話請運行Live CD,重新恢復安裝步驟併進入新環境,再編輯/etc/conf.d/net,編輯完後可以按重啟系統的步驟重啟系統,編輯/etc/conf.d/net的具體操作在本期筆記中,自己認真閱讀吧!解決方法到此為止。

啟動相應的服務(這個建議配置,但如果能夠不需要開啟這些也能正常使用KDE,請忽略)

在安裝KDE相關軟體之前,建議先設置其他幾個服務;如果使用了桌面/等離子或桌面配置文件,其中一部分將自動安裝,但仍然需要正確設置,這些服務包括:

1.D-Bus:啟用D-Bus消息匯流排系統。
2.polkit:啟用polkit框架來控制系統範圍服務的特權。
3.udisk:支持某些與存儲相關的服務。

首先先編輯/etc/portage/make.conf:

添加完成後請按Ctrl+X,按Y並按回車鍵即可完成保存和退出。(建議在這裡也把USE=“consolekit”添加上去,因為下麵會用到。)

然後更新下系統以便使更改生效:(時間很長,耐心等待)

配置步驟完成後,啟動D-Bus:

要在引導時啟動D-Bus,將其添加為預設運行級別:(可選配置)

提示:即使不將D-Bus添加到預設運行級別,它通常也會由依賴D-Bus的服務啟動,這應該可以解釋為什麼D-Bus會神秘地啟動,儘管它還沒有正式添加到系統運行級別。

(Tips:D-Bus的用法:https://wiki.gentoo.org/wiki/D-Bus

然後配置polkit,具體操作如下:(polkit(以前是PolicyKit)是一種授權API,用於向非特權程式提供服務的特權程式(例如系統守護進程)。)

註:Polkit使用D-Bus和ConsoleKit,所以首先設置它們。另外,確保在內核中設置CONFIG_FUTEX=y。如果不選擇此選項,polkitd進程可能生成高CPU。

所以先在內核設置CONFIG_FUTEX=y,先看下麵設置:

然後在裡面看看找到CONFIG_FUTEX=y這個選項:

這麼多,如何找?請按Ctrl+W查找,然後輸入上面的選項,即可找到CONFIG_FUTEX=y。

所以一般genkernel自動配置內核都會配置這個選項的,手動配置就不知道了,如何手動配置沒有的話,請在Live CD下找到該文件編譯,然後再重新編譯一次,最後再把該文件載入到引導中去,否則導致高CPU容易造成卡頓,甚至系統崩潰!!!

至於ConsoleKit,下麵將會說到,現在開始配置:(如果不明白為什麼配置請看https://wiki.gentoo.org/wiki/Polkit

請按Ctrl+X,按Y並按回車鍵即可完成保存和退出。

請按Ctrl+X,按Y並按回車鍵即可完成保存和退出。(polkit的用法:https://wiki.gentoo.org/wiki/Polkit

udisk是一個提供存儲相關服務的D-Bus守護進程,接下來就是配置udisk:

先決條件:udisk使用D-Bus和polkit,所以先設置它們,上面已經設置好了,udisk使用polkit來處理許可權,接下來就是配置了。

由於udisk無法配置,這應該是手動配置內核時沒有勾選相關選項,如果你的內核手動配置時有挑選以下的選項的話,請參考:https://wiki.gentoo.org/wiki/Udisks 繼續配置。

設備管理器

一、在其中選擇一個:
eudev: Gentoo的udev分支,目標是獲得更好的相容性。它是桌面/等離子配置文件的預設值。
udev:支持udev Linux動態和持久設備命名。
systemd:使用systemd的設備管理器部分。systemd的用戶不需要在這裡採取任何其他主動。

eudev

先安裝eudev,為了避免在world設置中註冊,應該使用oneshot選項:

當安裝完畢後進行配置:(RC的名字是udev,而不是eudev。它需要在sysinit運行級別中註冊。)

提示:從syfs /udev-init-scripts版本29開始,udev-trigger也應該添加到sysinit運行級別。

如果系統使用multilib,例如,有abi_x86_64(32)使用標誌對舊的udev包是活動的,那麼不要忘記更改它:(當然如果是32的,請把64改為32即可。)

按Ctrl+X,按Y並重命名為:eth0(傳統經典命名),然後退出並保存。

為了保持經典的命名,可以在/etc/udev/rules.中使用相同命名的空文件覆蓋此規則d目錄:

使用新的“可預測的”命名,新的網路介面命名約定不一樣,因此需要重新鏈接介面。使用/etc/init.d/net.lo作為需要添加的任何介面名稱的鏈接目標。請確保將下麵命令中的替換為系統中出現的乙太網(本人使用的是NET)介面名稱。通過運行ifconfig命令可以發現存在哪些介面:

為/etc/init中的現有介面創建符號鏈接:(使用剛剛命名的eth0)

將腳本添加到預設運行級別,使介面自動啟動:

(剩下的兩個要理解的話請點擊上方的udev,syetemd即可閱讀相關文章)

註:如果啟動系統時出現錯誤標誌,請把eth0設置為你原本的網路介面名稱,例如我的:eno16777736。

會話跟蹤

在以下其中任選一個:

1.ConsoleKit:用於定義和跟蹤用戶、登錄會話和座位的框架。它是桌面/等離子配置文件的預設值。

2.elogind: 從systemd項目中提取的獨立logind包,用於OpenRC或其他init系統。

3.systemd:使用系統的會話跟蹤部分,systemd的用戶不需要在這裡採取任何其他主動。

ConsoleKit

介紹:ConsoleKit是一個定義和跟蹤用戶、登錄會話和座位的框架,ConsoleKit的主要功能是支持多用戶設置。它也適用於單個用戶,但與現有方法相比沒有任何好處。

ConsoleKit是一個D-Bus守護進程,為每個PAM會話創建自己的會話,快速用戶切換是一個由ConsoleKit提供支持的特性。當切換時,設備文件許可權被更改為新的活動用戶,舊會話中的應用程式被通知,因此它們可以基於ConsoleKit信息撤銷授予。

ConsoleKit支持關閉/重新啟動處理,這樣只有本地的活躍用戶可以關閉或重新啟動系統。

先決條件:本文D-Bus已經預先配置好。

安裝ConsoleKit,首先Kernel內核要開啟以下選項:

Required options for ConsoleKit
    General setup --->
      [*] Auditing support
      [*] Enable system-call auditing support

由於我使用的是genkernel自動配置編譯內核,所以並不知道是否配置到,所以先進行以下的測試:

按Ctrl+X,按Y並按回車鍵即可完成保存和退出。

如果使用變數設置為consolekit,則需要更新系統:(又要等比較長的時間)

startx集成:要在使用startx啟動X伺服器(而不是顯示管理器)時創建一個ConsoleKit會話,請向每個用戶添加以下內容~/。xinitrc文件:

~/.xinitrc
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session <WINDOW_MANAGER>

開啟Consolekit:

/etc/init.d/consolekit start

啟動控制台工具包:

rc-update add consolekit boot

用法:ck-list-sessions:顯示所有當前會話的細節。對於本地用戶,active和is-local應該為真。(我的沒有配置完成,應該是內核編譯時沒有選中上方的相關選項)

註:對於Wayland的支持,需要一個logind實現。Gentoo提供了elogind作為systemd的替代方案。
按照鏈接瞭解如何設置這些服務。註意,在這個概要文件中設置的其他使用標誌組合在技術上是可能的(特別是如果選擇的應用程式是運行而不是一個完整的KDE等離子桌面環境),但可能不受支持,未經測試,或導致意外的功能損失。

設置X環境:(建議設置)

配置內核

介紹:X.Org server, X的一部分。Org release是X Window system的主要組件,它提供了硬體上的服務,併為大多數圖形用戶界面(如桌面環境或視窗管理器)及其應用程式提供了基礎。(更多請詳細查看:https://wiki.gentoo.org/wiki/Xorg/Guide

安裝xorg-server要比安裝整個xorg包輕得多,並且具有擁有完整功能GUI(例如plasma)所需的所有組件,接下來就是安裝了:

(在安裝Xorg之前,需要為它準備好系統。首先,我們將設置內核來支持輸入設備和顯卡。然後我們編輯/etc/portage/makeconf以便構建和安裝正確的驅動程式和Xorg包。)

以下的為內核配置,請使用make meunconfig或genkernel --meunconfig all(當然如果使用genkernel all的選這個)來手動配置內核:

接下來配置內核,為顯卡使用正確的KMS驅動程式,英特爾、英偉達和AMD/ATI是最常見的顯卡,所以請按照下麵的代碼列出每一張顯卡:

Enabling evdev in the kernel
Device Drivers --->
  Input device support --->
  <*>  Event interface

註:KMS與遺留framebuffer驅動程式衝突,後者必須在內核配置中禁用。

Disable legacy framebuffer support and enable basic console FB support
Device Drivers --->
   Graphics support --->
      Frame Buffer Devices --->
         <*> Support for frame buffer devices --->
         ## (Disable all drivers, including VGA, Intel, nVidia, and ATI, except EFI-based Framebuffer Support, only if you are using UEFI)
 
    ## (Further down, enable basic console support. KMS uses this.)
    Console display driver support --->
      <*>  Framebuffer Console Support

有關Intel顯卡,請參閱Intel文章的內核部分

英偉達顯卡:

 nVidia settings
Device Drivers --->
   Graphics support --->
      <M/*>  Nouveau (nVidia) cards

對於較新的AMD/ATI卡(RadeonHD 2000及以上版本),出現系統內核/linux-固件(包括radeon和amdgpu;單獨的包x11驅動程式/radeon-ucode已經不存在了)。一旦安裝了這些包中的一個,將Radeon驅動程式作為內核中的一個模塊,或者(可選地)配置內核,如Radeon文章的固件部分詳細介紹,或者,對於較新的AMD顯卡(GCN1.1+),在AMDGPU文章的固件部分:

 AMD/ATI Radeon settings
## (Setup the kernel to use the radeon-ucode firmware)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # ATI card specific, (see Radeon page for details which firmware files to include)
   (radeon/<CARD-MODEL>.bin ...)
  ## # Specify the root directory
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Enable Radeon KMS support)
Device Drivers --->
   Graphics support --->
   <M/*>    ATI Radeon
   [*]      Enable modesetting on radeon by default
   [ ]      Enable userspace modesetting on radeon (DEPRECATED)
 AMDGPU settings
## (Setup the kernel to use the amdgpu firmware)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # AMD card specific, (see AMDGPU page for details which firmware files to include)
   (amdgpu/<CARD-MODEL>.bin ...)
  ## # Specify the root directory
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Enable Radeon KMS support)
Device Drivers --->
   Graphics support --->
   <M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
   <M/*> AMD GPU
         [ /*] Enable amdgpu support for SI parts
         [ /*] Enable amdgpu support for CIK parts 
         [*]   Enable AMD powerplay component  
         ACP (Audio CoProcessor) Configuration  ---> 
             [*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
         Display Engine Configuration  --->
             [*] AMD DC - Enable new display engine
             [ /*] DC support for Polaris and older ASICs
             [ /*] AMD FBC - Enable Frame Buffer Compression
             [ /*] DCN 1.0 Raven family
   <M/*> HSA kernel driver for AMD GPU devices

註1:舊的Radeon card (X1900系列和更老)不需要額外的固件或任何固件配置。對於它們,只需啟用直接呈現管理器(DRM)和ATI Radeon modesetting。

註2:Linux內核>= 3.9在預設情況下不具有radeon上的Enable modesetting,因為它在預設情況下是隱含的。如果發現新內核中缺少此選項,請不要驚慌。

註3:Linux內核>= 4.15確實包含顯示核心(DC),這是AMDGPU工作所必需的。這個更新的驅動程式是為GCN5.0 Vega和DCN1.0 Raven Ridge (APU)編寫的,但是也為舊的Radeon顯卡增加了額外的功能,從GCN1.1出現和更新版本開始。它計劃將這個對舊的Radeon卡的額外支持作為標準,所以如果您發現這個選項在新的內核中丟失了,不要驚慌。

退出內核配置,重新構建內核並重新引導。(重新引導和構建內核請看:https://wiki.gentoo.org/wiki/Kernel/Rebuild

現在已經建立了KMS,繼續下一步:

現在內核已經準備好了,/etc/portage/make.conf中有兩個重要的變數在安裝Xorg之前,必須配置conf文件:

第一個變數是VIDEO_CARDS(配置請點擊這裡)。這是用來設置你打算使用的視頻驅動程式,通常是基於你擁有的視頻卡。第二個變數是INPUT_DEVICES(配置請點擊這裡),用於確定要為輸入設備構建哪些驅動程式,要檢查當前激活的內容,運行:

portageq envvar INPUT_DEVICES

如果需要其他輸入設備,比如筆記本電腦的Synaptics touchpad,請確保將它們添加到/etc/portage/make.conf的INPUT_DEVICES中配置文件:

 Sample make.conf entries
## (For mouse, keyboard, and Synaptics touchpad support)
INPUT_DEVICES="libinput synaptics"
## (For nVidia cards)
VIDEO_CARDS="nouveau"
## (For AMD/ATI cards)
VIDEO_CARDS="radeon"

安裝X(如果你嫌上面設置太過恐怖,請直接從此處開始,當然最好是設置完上面的配置)

如果建議的設置不起作用,請安裝x11-base/xorg-drivers包(參見下麵的步驟)。檢查所有可用的選項並選擇適用於系統的選項,這個例子是一個有鍵盤、滑鼠、Synaptics觸摸板和Radeon顯卡的系統。(當然我用於虛擬機並不太在意這個要求)

下載安裝時間短,設置所有必要的變數後,可以安裝Xorg:

註:可以安裝x11-base/xorg-x11包,而不是安裝更輕量的x11-base/xorg-server。在功能上,x11-base/xorg-x11和x11-base/xorg-server是相同的,但是x11-base/xorg-x11帶來了許多大多數系統可能不需要的更多包。附加包包括許多語言中的大量字體分類。對於工作的X11框架來說,它們不是必需的。(這個隨自己選擇)

emerge --ask x11-base/xorg-x11

當然我選擇x11-base/xorg-server,安裝時間較短:

安裝完畢後,需要重新初始化一些環境變數,然後才能繼續。使用以下命令源配置文件:

對於英偉達的用戶,可以運行nvida -xconfig來生成一個可以工作的xorg可能是有益的。選定顯卡的conf文件。沒有這個步驟,xorg.conf文件需要手動創建,如下所述。錯過了xorg,當嘗試startx時,conf有時會在終端上產生“未找到屏幕”錯誤。另外,NVidia驅動程式只能在重新引導後才能工作,所以在運行nvida -xconfig之後一定要重新啟動系統:

nvidia-xconfig

將OpenGL渲染器設置為硬體渲染器而不是軟體渲染器是可行的,建議這樣做:

eselect opengl set nvidia

註:嘗試在不編輯任何配置文件的情況下使用startx。如果Xorg無法啟動,或者存在其他問題,則需要手動配置Xorg。如果對內核進行了更改,不要忘記在使用startx之前重新啟動系統,以便使用新構建的內核。如果內核在進程中更新到一個新版本,那麼很可能需要同時更新引導裝載程式的配置文件。

註:在xorg.conf.d中配置文件應該被視為最後的選擇。如果可能的話,不需要任何特殊配置就可以運行Xorg。(Xorg的大多數配置文件都存儲在/etc/ x11 / xorg.conf.d /中。)

Start X

嘗試startx啟動X伺服器。startx是一個執行X會話的腳本(由x11-apps/xinit安裝);也就是說,它啟動X伺服器和一些圖形應用程式。它決定使用以下邏輯運行哪些應用程式:
如果主目錄中存在一個名為.xinitrc的文件,它將執行這裡列出的命令。

否則,它將從/etc/env中讀取XSESSION變數在/etc/90xsession.d文件並相應執行相關會話。XSESSION的值可以在/etc/ x11 / sessions/中找到。要設置系統範圍內的預設會話運行:

這將創建90xsession文件,並將預設的X會話設置為Xfce。記住在對90xsession進行更改後運行env-update。

註:如果沒有安裝視窗管理器,則會出現一個純黑屏。因為這也可能是錯誤的標誌,所以只能安裝x11-wm/twm和x11-terms/xterm包來測試X。

由上圖可知出現了錯誤,我們安裝下x11-wm/twm和x11-terms/xterm進行測試:

裝完後startx測試下。

額,看起來怪怪的。

會話(要開始的程式)也可以作為startx的參數:

startx /usr/bin/startfluxbox

您還可以通過在X11伺服器選項前面加雙破折號:

startx -- vt7

現在startX已經可以進入了,但是感覺怪怪的,下麵我們要調整下X的設置。

調整X設置

設置屏幕解析度:

編輯/etc/X11/xorg.conf.d/40-monitor.conf:

Section "Device"
  Identifier  "RadeonHD 4550"
  Option      "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
  Identifier  "DVI screen"
  Option      "PreferredMode" "1440x900"
EndSection

運行X (startx)以發現它使用了所需的解析度。

多個顯示器:可以在/etc/ x11 / xorg.con.d /中建立多個監視器。給每個監視器一個唯一的標識符,然後列出它的物理位置,例如“RightOf”或“Above”另一個監視器。下麵的示例演示如何配置DVI和VGA監視器,將VGA監視器作為右側屏幕:

編輯:/etc/X11/xorg.conf.d/40-monitor.conf

Section "Device"
  Identifier "RadeonHD 4550"
  Option     "Monitor-DVI-0" "DVI screen"
  Option     "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
  Identifier "DVI screen"
EndSection
Section "Monitor"
  Identifier "VGA screen"
  Option     "RightOf" "DVI screen"
EndSection

配置鍵盤(要設置X以使用國際鍵盤):

編輯/etc/X11/xorg.conf.d/30-keyboard.conf

Section "InputClass"
  Identifier "keyboard-all"
  Driver "evdev"
  Option "XkbLayout" "us,cz"
  Option "XkbModel" "logitech_g15"
  Option "XkbRules" "xorg"
  Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
  Option "XkbVariant" ",qwerty"
  MatchIsKeyboard "on"
EndSection

最終安裝X已完成,可以成功通過startX來工作了,如果不想配置內核,請從文章中的“安裝X”開始安裝xorg,之後的設置X自己參考即可,接下來是支持X服務。

配置X

Portage知道X USE標誌用於在其他包中支持X(在所有桌面配置文件中預設)。確保將此使用標誌添加到使用標誌列表中,以確保X相容系統範圍:

按Ctrl+X,按Y並按回車鍵即可完成保存和退出。

如果acl USE標誌是全局啟用的,並且正在使用ConsoleKit(預設為桌面配置文件)的視頻卡許可權,將自動處理。可以使用getfacl檢查許可權:

getfacl /dev/dri/card0 | grep lida
user:lida:rw-

更廣泛的解決方案是將需要訪問視頻卡的用戶添加到視頻組:

顯示管理器(必須配置,建議完成所有的安裝步驟再來設置這裡,別忘了這裡)

(有時稱為登錄管理器)向用戶顯示圖形登錄屏幕,以啟動X伺服器會話:

在大多數情況下,OpenRC init系統(Gentoo的預設init系統)將用於啟動顯示管理器。XDM init腳本處理顯示管理器的啟動。需要配置conf.d文件來設置系統的預設顯示管理器。
下麵的示例將SDDM設置為預設的顯示管理器。根據需要調整其他顯示管理器:

編輯 /etc/conf.d/xdm,將SDDM設置為預設的顯示管理器:

按Ctrl+X,按Y並按回車鍵即可完成保存和退出。

DISPLAYMANAGER="sddm"

要在啟動時啟動SDDM,請將XDM init腳本添加到系統的預設運行級別:(建議你配置完後面的安裝步驟再來設置這裡吧!)

rc-update add xdm default

要立即啟動SDDM,請運行:

rc-service xdm start

systemd用戶的請看這裡:https://wiki.gentoo.org/wiki/Display_manager

安裝KDE(關鍵時刻)

為了防止配置文件失效,再次配置一下,先eselect profile list查看配置文件,我的是19項,選擇:eselect profile set 19。

kde-plasma/ Plasma -meta包提供完整的Plasma 5套件,開始安裝:

目前KDE最新版本為5.12.5,然後我激動的心情同時也很崩潰

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • DSkin封裝的WebUI開發模式開發桌面應用,使用Vue很方便。使用起來有點像WPF 下麵用 element-UI 做個簡單的例子。 運行效果;可以自己根據需求改佈局效果。 主框架的element-UI 模板代碼 其中 activeIndex 是模板中定義的一個屬性, handleSelect 是 ...
  • 本來想搞一個nas系統,結果上來linux的賊船。本來是看上了deepin深度linux,結果看到排名第一的manjaro 就忍不住手。通過hyper-v虛擬機安裝,發現這個所謂的第一不知道第一在哪裡,效率不是很高,源又少,我想要的vscode莫名其妙的沒有,網上的資料很多事落後的。pacman包管... ...
  • 1.修飾符是什麼? 修飾符是用於限定類型以及類型成員的聲明的一種符號。【百度百科】 2.修飾符分類 13種修飾符,按功能可分為三類:訪問修飾符,類修飾符和成員修飾符.【百度百科】 作 用:限定類型以及類型成員 C#中的修飾符被用來定義類型和成員方法,.Net3.5共有下麵十三種: 修飾符 說明 ab ...
  • 1.增、刪、改通用方法 /// <summary> /// 增、刪、改通用方法 /// </summary> /// <param name="commandText">Command對象的CommandText屬性(sql語句或存儲過程名稱)</param> /// <param name="co ...
  • /// /// 調用微吼直播API /// /// /// /// 介面地址 /// Json格式的參數(公共參數+介面參數) /// public string GetLiveList(string appKey,string secrectKey,string url,string paramJ... ...
  • C# 獲取文件名及擴展名 string aFirstName = aFile.Substring(aFile.LastIndexOf("\\") + 1, (aFile.LastIndexOf(".") - aFile.LastIndexOf("\\") - 1)); //文件名string aLa ...
  • 1、為root用戶設置密碼 sudo passwd root 2、設置用戶登陸界面 sudo gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf 1 user-session=ubuntu 2 greeter-show-manu... ...
  • 調度器面對的情形就是這樣, 其任務是在程式之間共用CPU時間, 創造並行執行的錯覺, 該任務分為兩個不同的部分, 其中一個涉及 調度策略 , 另外一個涉及 上下文切換 . 1 背景知識 1.1 什麼是調度器 通常來說,操作系統是應用程式和可用資源之間的媒介。 典型的資源有記憶體和物理設備。但是CPU也 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...