【Linux相識相知】yum的配置使用和程式包的編譯安裝

来源:http://www.cnblogs.com/liubinsh/archive/2017/09/11/7503082.html
-Advertisement-
Play Games

在上一篇博客中,寫到瞭如何使用rpm命令來安裝、卸載軟體等,但是大家都知道,各個軟體包之間可能存在依賴關係,如果安裝某個軟體需要額外的依賴其他若幹的包,那麼我們就需要將其他額外的包一個一個的安裝上去,這樣的一個過程是非常耗時的,所以出現了一個前端工具,如yum,dnf,apt-get等,本次博客就c ...


在上一篇博客中,寫到瞭如何使用rpm命令來安裝、卸載軟體等,但是大家都知道,各個軟體包之間可能存在依賴關係,如果安裝某個軟體需要額外的依賴其他若幹的包,那麼我們就需要將其他額外的包一個一個的安裝上去,這樣的一個過程是非常耗時的,所以出現了一個前端工具,如yum,dnf,apt-get等,本次博客就centos上的yum和程式包的編譯安裝做出詳細的描述,最後還通過實際的例子介紹了程式包的編譯安裝。

 

yum的實現原理

yum實現軟體包的獲取其實是基於C/S架構的,C為你的主機,S為yum repository(文件伺服器或者本地yum  repository),yum repository裡面存儲了眾多的rpm包,以及包的相關元數據文件(包含軟體包的列表和依賴關係等)和計算出來的特征碼,一般放在repodata目錄下麵。

當我們使用yum安裝一個軟體包的時候,會進行如下幾個步驟:

1.本地主機會在配置文件裡面找到yum repository的指向,並建立連接;

2.從yum repository獲取元數據文件和特征碼放在緩存裡面;

3.通過查看元數據文件獲知需要安裝的軟體包和其依賴的軟體的名稱並向yum repository發起請求;

4.本地主機獲取到軟體包後進行安裝。

5.安裝好後,rpm包會被刪除,但是元數據文件和特征碼會被保存下來,其目的是為了當你再向yum repository發起連接的時候,先會向yum repository獲取到特征碼和本地緩存的特征碼做對比,如果相同則說明yum repository裡面的文件沒有發生改變,如果不同,則說明yum repository裡面的文件發生了改變,這時候就需要重新向yum repository獲取元數據文件了。

 

通常情況下yum repository都是文件伺服器,你可以通過URL進行訪問,如:

ftp://path/to/repository/    通過FTP進行訪問和傳輸

http://path/to/repository/  通過http進行訪問和傳輸

nfs://path/to/repository/   通過nfs進行訪問和傳輸

file:///path/to/repository/  用於本地的yum倉庫

 

yum的配置文件

yum的配置文件有:

/etc/yum.conf:為所有倉庫提供公共配置

/etc/yum.repos.d/下以repo結尾的文件:為倉庫的指向提供配置

yum.conf的內容:

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
yum.conf的內容

cachedir:緩存目錄,預設情況下在"/var/cache/yum";

keepcache:是否保存緩存,0是不保存,1是保存;

debuglevel:Debug信息的輸出等級,範圍為0-10,預設為2

logfile:存放log的文件路徑

exactarch:是否精確匹配平臺,預設是1,精確匹配平臺

obsolete:這個選項僅僅會影響升級,簡單的說相當於upgrade,允許更新舊版本的rpm包

gpgcheck:是否經驗安裝包的來源合法性

plugins:是否允許使用插件安裝插件,1表示安裝

installonly_limit:允許同時保持的內核包

bugtracker_url:bug的追蹤的url

distroverpkg:指定一個軟體包,yum會根據這個包判斷你的發行版本,這裡是centos-release

具體的可以是使用命令man yum.conf查看

下麵我們來看一下/etc/yum.repos.d/下的文件

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

這裡就有很多以repo結尾的文件,都是yum repository的指向:

讓我們來看一下/etc/yum.repo.d/CentOS-Base.repo,其他裡面的yum repository都是disable的:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS-Base.repo

repository指向的定義:

[repositoryID]   #具有唯一性
name=some name for this repository
baseurl=url://path/to/repository  #yum repository的url可以為多個,路徑下必須有repodata
enable=1   #是否開啟,1為開啟,0為關閉,不寫的話,預設開啟
gpgckeck=1
gpgkey=URL
cost=1000
enablegroup=1 #是否允許使用包組,預設是允許
但是我們可以看到CentOS-Base.repo裡面沒有baseurl而是mirrorlist,mirrorlist指向的URL就是存放了baseurl的位置。 yum的repo配置文件中的可用的變數:
$releasever:當前os的發行版的主版本號
$arch:平臺
$basearch:基礎平臺
$YUM0-$YUM9:用戶自定義的變數

 

yum命令的用法

yum [options] [command] [package ...]
       command is one of:
        * install package1 [package2] [...]
        * update [package1] [package2] [...]
        * update-to [package1] [package2] [...]
        * update-minimal [package1] [package2] [...]
        * check-update
        * upgrade [package1] [package2] [...]
        * upgrade-to [package1] [package2] [...]
        * distribution-synchronization [package1] [package2] [...]
        * remove | erase package1 [package2] [...]
        * autoremove [package1] [...]
        * list [...]
        * info [...]
        * provides | whatprovides feature1 [feature2] [...]
        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
        * makecache [fast]
        * groups [...]
        * search string1 [string2] [...]
        * shell [filename]
        * resolvedep dep1 [dep2] [...]
           (maintained for legacy reasons only - use repoquery or yum provides)
        * localinstall rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use install)
        * localupdate rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use update)
        * reinstall package1 [package2] [...]
        * downgrade package1 [package2] [...]
        * deplist package1 [package2] [...]
        * repolist [all|enabled|disabled]
        * repoinfo [all|enabled|disabled]
        * repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-
yum命令

1.顯示repository列表:

repolist [all|enabled|disabled]
all:顯示所有的yum repository
enable:不帶參數預設顯示啟用的yum repository
disable:顯示關閉的yum repository
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.cn99.com
 * updates: mirrors.aliyun.com
repo id                                            repo name                                           status
!base/7/x86_64                                     CentOS-7 - Base                                     9,363
!extras/7/x86_64                                   CentOS-7 - Extras                                     451
!updates/7/x86_64                                  CentOS-7 - Updates                                  2,146
[root@localhost yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.cn99.com
 * updates: mirrors.aliyun.com
repo id                                          repo name                                         status
C7.0.1406-base/x86_64                            CentOS-7.0.1406 - Base                            disabled
C7.0.1406-centosplus/x86_64                      CentOS-7.0.1406 - CentOSPlus                      disabled
C7.0.1406-extras/x86_64                          CentOS-7.0.1406 - Extras                          disabled
C7.0.1406-fasttrack/x86_64                       CentOS-7.0.1406 - CentOSPlus                      disabled
C7.0.1406-updates/x86_64                         CentOS-7.0.1406 - Updates                         disabled
C7.1.1503-base/x86_64                            CentOS-7.1.1503 - Base                            disabled
C7.1.1503-centosplus/x86_64                      CentOS-7.1.1503 - CentOSPlus                      disabled
C7.1.1503-extras/x86_64                          CentOS-7.1.1503 - Extras                          disabled
C7.1.1503-fasttrack/x86_64                       CentOS-7.1.1503 - CentOSPlus                      disabled
C7.1.1503-updates/x86_64                         CentOS-7.1.1503 - Updates                         disabled
C7.2.1511-base/x86_64                            CentOS-7.2.1511 - Base                            disabled
C7.2.1511-centosplus/x86_64                      CentOS-7.2.1511 - CentOSPlus                      disabled
C7.2.1511-extras/x86_64                          CentOS-7.2.1511 - Extras                          disabled
C7.2.1511-fasttrack/x86_64                       CentOS-7.2.1511 - CentOSPlus                      disabled
C7.2.1511-updates/x86_64                         CentOS-7.2.1511 - Updates                         disabled
!base/7/x86_64                                   CentOS-7 - Base                                   enabled: 9,363
base-debuginfo/x86_64                            CentOS-7 - Debuginfo                              disabled
base-source/7                                    CentOS-7 - Base Sources                           disabled
c7-media                                         CentOS-7 - Media                                  disabled
centosplus/7/x86_64                              CentOS-7 - Plus                                   disabled
centosplus-source/7                              CentOS-7 - Plus Sources                           disabled
cr/7/x86_64                                      CentOS-7 - cr                                     disabled
!extras/7/x86_64                                 CentOS-7 - Extras                                 enabled:   451
extras-source/7                                  CentOS-7 - Extras Sources                         disabled
fasttrack/7/x86_64                               CentOS-7 - fasttrack                              disabled
!updates/7/x86_64                                CentOS-7 - Updates                                enabled: 2,146
updates-source/7                                 CentOS-7 - Updates Sources                        disabled
yum repolist舉例

2.顯示程式包

yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]

3.安裝程式包

yum install package1 [package2] [...]
yum reinstall package1 [package2] [...]  (重新安裝)

4.升級程式包

yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降級)

5.檢查可用升級

yum check-update

6.卸載程式包

yum remove | erase package1 [package2] [...]

7.查看程式包information

yum info package1 [package2] [...]

8.查看指定的特性(可以是某文件)是由哪個程式包所提供的

yum provides | whatprovides feature1 [feature2] [...]
[root@localhost yum.repos.d]# yum provides /bin/ls
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.cn99.com
 * updates: mirrors.aliyun.com
coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : base
Matched from:
Filename    : /bin/ls



coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : @anaconda
Matched from:
Filename    : /bin/ls
yum provides舉例

 9.清理本地緩存

yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

10.構建緩存

yum makecache

11.搜索

yum search string1 [string2] [...] #以指定的關鍵字搜索程式包及Summary信息

12.查看指定包所依賴的capabilities

yum deplist package1 [package2] [...]

13.查看yum事務歷史

yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

14.安裝及升級本地程式包

yum localinstall rpmfile1 [rpmfile2] [...]
   (maintained for legacy reasons only - use install)
yum localupdate rpmfile1 [rpmfile2] [...]
   (maintained for legacy reasons only - use update)

15.包組管理的相關命令

yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo group1 [...]

16.yum的命令選項

--nogpgcheck:禁止進行gpg check;
-y: 自動回答為“yes”;
-q:靜默模式;
--disablerepo=repoidglob:臨時禁用此處指定的repo;
--enablerepo=repoidglob:臨時啟用此處指定的repo;
--noplugins:禁用所有插件;

 

如何使用光碟當作本地yum repository?

(1)掛載光碟至某目錄,例如/media/cdrom

[root@localhost yum.repos.d]# mount -r /dev/sr0 /media/cdrom/
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/mapper/cl-root  17811456 2824736  14986720  16% /
devtmpfs               489004       0    489004   0% /dev
tmpfs                  499980       0    499980   0% /dev/shm
tmpfs                  499980    6728    493252   2% /run
tmpfs                  499980       0    499980   0% /sys/fs/cgroup
/dev/sda1             1038336  123500    914836  12% /boot
tmpfs                  100000       0    100000   0% /run/user/0
/dev/sr0              4276440 4276440         0 100% /media/cdrom
(2)創建配置文件 先把本地的CentOS-Base.repo備份一下
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# vim CentOS-Local.repo
[CentOS7]
name=CentOS7 rpm from disk
baseurl=file:///media/cdrom/
gpgcheck=0
[root@localhost cdrom]# yum repolist #顯示可用的倉庫列表
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                       repo name                                                    status
CentOS7                                       CentOS7 rpm from disk                                        3,831
repolist: 3,831
[root@localhost cdrom]# 

 

如何創建yum倉庫?

前面寫到baseurl指向的yum repository的下必須有repodata目錄,repodata目錄下存放著元數據和特征碼等信息,那麼如何生存呢?

我們現在/xfs目錄下放了一些關於xfs的rpm包:

[root@localhost xfs]# ll
total 3980
-rw-r--r--. 1 root root 942156 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.i686.rpm
-rw-r--r--. 1 root root 916492 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.x86_64.rpm
-rw-r--r--. 1 root root 942328 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.i686.rpm
-rw-r--r--. 1 root root 916296 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.x86_64.rpm
-rw-r--r--. 1 root root  68316 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.i686.rpm
-rw-r--r--. 1 root root  68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64(1).rpm
-rw-r--r--. 1 root root  68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64.rpm
-rw-r--r--. 1 root root  68184 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.i686.rpm
-rw-r--r--. 1 root root  68148 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.x86_64.rpm

使用createrepo來生成:

[root@localhost ~]# createrepo /xfs/
Spawning worker 0 with 5 pkgs
Spawning worker 1 with 4 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost ~]# ll /xfs/
total 3984
drwxr-xr-x. 2 root root   4096 Sep 10 10:46 repodata
-rw-r--r--. 1 root root 942156 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.i686.rpm
-rw-r--r--. 1 root root 916492 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.x86_64.rpm
-rw-r--r--. 1 root root 942328 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.i686.rpm
-rw-r--r--. 1 root root 916296 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.x86_64.rpm
-rw-r--r--. 1 root root  68316 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.i686.rpm
-rw-r--r--. 1 root root  68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64(1).rpm
-rw-r--r--. 1 root root  68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64.rpm
-rw-r--r--. 1 root root  68184 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.i686.rpm
-rw-r--r--. 1 root root  68148 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.x86_64.rpm
[root@localhost ~]# ll /xfs/repodata/
total 32
-rw-r--r--. 1 root root 1615 Sep 10 10:46 048072895365ec38b370d70bc209f3fd08a54bba535a2feb497448fa7b3d622e-other.xml.gz
-rw-r--r--. 1 root root 3885 Sep 10 10:46 29cf78ac1dcc6c2443c5a2d9a135a4a7f1591f44a1964c984c1664000ac86ee6-other.sqlite.bz2
-rw-r--r--. 1 root root 1239 Sep 10 10:46 2a83ee6cbdb7d0ca6063f91aa8e382271a05ae1e868f637beb0549758511325b-filelists.xml.gz
-rw-r--r--. 1 root root 3144 Sep 10 10:46 40f7e90c6dc338f5292d2cb1ee3d2153241fb714eca0365d2419eadfe7fda2e0-filelists.sqlite.bz2
-rw-r--r--. 1 root root 7501 Sep 10 10:46 5c4be0e2d956a133454d00f51c3833d44d13c60375937bf59bce4258210d9075-primary.sqlite.bz2
-rw-r--r--. 1 root root 2376 Sep 10 10:46 5c7e3e89ad6e3210fee5ca5519fcd26bb60f4356d9035da5e273bb69521b8be3-primary.xml.gz
-rw-r--r--. 1 root root 2975 Sep 10 10:46 repomd.xml #特征碼
createrepo生成repodata

 然後在配置文件裡面添加就行了,這樣本地創建的yum repository就生效了:

[root@localhost yum.repos.d]# vim CentOS-Local.repo
[CentOS7]
name=CentOS7 rpm from disk
baseurl=file:///media/cdrom/
gpgcheck=0
enable=1

[xfs]
name=xfs for centos7
baseurl=file:///xfs/
gpgcheck=0
enable=1

 

程式包的編譯安裝

我們有的時候並不能獲取到相應軟體的rpm包或者是原本就是沒有rpm包的,但是一般項目網站都會給我們提供對應的源代碼,然後我們可以使用工具進行編譯安裝。

編譯C源代碼的前提:
提供開發環境及開發工具。

開發工具:make,gcc等

開發環境:開發庫,頭文件,標準庫等

在centos中是通過“包組”提供開發組件

在centos6中:

yum groupinstall "Development Tools"
yum groupinstall "Server Platform Development"

在centos7中:

yum groupinstall "Development Tools" #即可

然後就可以開始編譯安裝了!

建議:安裝前查看install或者readme文件

第一步:

運行configure腳本(./configure):

(1)通過傳遞參數,指定啟動特性、安裝路徑等,執行時會參考用戶指定以及Makefile.in文件(有的時候可能沒有configure文件和Makefile.in文件,autoconf根據指定的配置文件可以生成configure文件,automake可以根據指定的配置文件生成Makefile.in文件),最終生成Makefile。

(2)檢查依賴到外部環境

選項:
--help:獲取其他支持的使用選項
--prefix=/PATH/TO/SOMEWHERE: 指定預設安裝位置;預設為/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置
Optional Features: 可選特性
    --disable-FEATURE
    --enable-FEATURE[=ARG]
Optional Packages: 可選包
    --with-PACKAGE[=ARG]
    --without-PACKAGE

如果不指定--prefix選項,安裝後可執行文件預設放在/usr/local/bin,庫文件預設放在/usr/local/lib,配置文件放在/usr/local/etc,其他的資源文件放在/usr/local/share。指定prefix的好處就是當你想卸載軟體的時候,直接刪除該安裝目錄就行了,也可以將整個目錄拷貝到其他的機器上使用,前提是同樣的操作系統。

 第二步:

make(make其實是一個項目的構建工具,它可以對代碼進行預處理、編譯等操作)

根據makefile文件,構建應用程式

第三步:
make install 

用來安裝,它從Makefile中讀取指令,安裝到指定的位置。

安裝後的配置:

(1)導出二進位程式目錄至PATH環境變數中:          編輯文件/etc/profile.d/NAME.sh          export PATH=/PATH/TO/BIN:$PATH          再讓shell進程重新讀配置文件 source /PATH/FROM/CONFI_FILE (2)導出庫文件路徑          編輯/etc/ld.so.conf.d/NAME.conf          添加新的庫文件所在目錄至此文件中          讓系統重新生成緩存:ldconfig [-v] (3)導出頭文件          基於鏈接的方式實現:ln -sv  (4)導出幫助手冊          編輯/etc/man_db.config文件,添加一個MANPATH。

 

 編譯安裝apache 2.2並啟動此服務

1.解壓縮並展開文件:

[root@localhost ~]# tar xf httpd-2.2.34.tar.bz2 

2.查看目錄下的文件:

[root@localhost ~]# cd httpd-2.2.34
[root@localhost httpd-2.2.34]# 
[root@localhost httpd-2.2.34]# ll
total 1160
-rw-r--r--.  1 1001 1001  14882 Nov 21  2004 ABOUT_APACHE
-rw-r--r--.  1 1001 1001  18613 Jul  6  2012 acinclude.m4
-rw-r--r--.  1 1001 1001  56952 Oct  5  2010 Apache.dsw
drwxr-xr-x.  6 1001 1001   4096 Jul  6 15:19 build
-rw-r--r--.  1 1001 1001   2644 Aug 24  2007 BuildAll.dsp
-rw-r--r--.  1 1001 1001   2692 Jul 29  2009 BuildBin.dsp
-rwxr-xr-x.  1 1001 1001   5786 Sep 19  2012 buildconf
-rw-r--r--.  1 1001 1001 147887 Jun 28 20:16 CHANGES
-rw-r--r--.  1 1001 1001  11701 Feb 27  2012 config.layout
-rwxr-xr-x.  1 1001 1001 574593 Jul  6 15:19 configure
-rw-r--r--.  1 1001 1001  24720 May 25  2015 configure.in
drwxr-xr-x.  9 1001 1001    124 Jul  6 15:19 docs
-rw-r--r--.  1 1001 1001    403 Nov 21  2004 emacs-style
-rw-r--r--.  1 1001 1001   1248 May  7  2011 httpd.dep
-rw-r--r--.  1 1001 1001   4124 Jun 11  2008 httpd.dsp
-rw-r--r--.  1 1001 1001   8994 May  6  2011 httpd.mak
-rw-r--r--.  1 1001 1001  12053 Jul  6 15:19 httpd.spec
drwxr-xr-x.  2 1001 1001   4096 Jul  6 15:19 include
-rw-r--r--.  1 1001 1001   5129 Jan  9  2017 INSTALL
-rw-r--r--.  1 1001 1001   2909 Dec  7  2006 InstallBin.dsp
-rw-r--r--.  1 1001 1001   5145 Nov 29  2005 LAYOUT
-rw-r--r--.  1 1001 1001  30119 May  7  2011 libhttpd.dep
-rw-r--r--.  1 1001 1001  17039 Jan 12  2007 libhttpd.dsp
-rw-r--r--.  1 1001 1001  28503 May  6  2011 libhttpd.mak
-rw-r--r--.  1 1001 1001  28690 Jan 18  2008 LICENSE
-rw-r--r--.  1 1001 1001   8739 Nov 25  2008 Makefile.in
-rw-r--r--.  1 1001 1001  34759 Jan 19  2014 Makefile.win
drwxr-xr-x. 20 1001 1001   4096 Jul  6 15:19 modules
-rw-r--r--.  1 1001 1001    828 Jan  2  2017 NOTICE
-rw-r--r--.  1 1001 1001  12894 Mar 15  2012 NWGNUmakefile
drwxr-xr-x.  9 1001 1001    149 Jul  6 15:19 os
-rw-r--r--.  1 1001 1001   5954 Jan 10  2007 README
-rw-r--r--.  1 1001 1001   4178 Aug 27  2014 README.platforms

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

-Advertisement-
Play Games
更多相關文章
  • 出現這種錯誤明顯就是 mysql_connect 之後忘記 mysql_close;當大量的connect之後,就會出現Too many connections的錯誤,mysql預設的連接為100個,而什麼情況下會出現這種錯誤呢?正常的mysql_connect 之後調用 mysql_close() ...
  • 我用的是phpstudy安裝的mysql資料庫,但是在服務中沒有mysql的啟動項(不影響使用),原因是在安裝mysql的時候沒有安裝mysql 服務 解決辦法如下: 1. 用管理員身份運行cmd.exe(註意管理員身份!) 2. 進入mysql的bin目錄 3. 安裝mysql服務 安裝服務:my ...
  • 1、查詢工資為2500到4000的人數 方式一: select count(*) from emp where sal>=2500 and sal<=4000; 方式二: select count(*) from emp where sal between 2500 and 4000; 2、查詢每個 ...
  • 本文出處:http://www.cnblogs.com/wy123/p/7501261.html (保留出處並非什麼原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為後續對可能存在的一些錯誤進行修正或補充,無他) 資料庫在處理併發事物的過程中,在不同的隔離級別下有不同的鎖表現,在非可序列 ...
  • MySQL事務: 1.MySQL事務控制語句 (1).開啟事務 begin; (2).提交事務 commit; (3).回滾事務 rollback; (4).設置事務是否自動提交 set autocommit = {0 | 1}; // 0不自動提交,1自動提交 例如: begin;// 開啟事務 ...
  • 1、連接池概念 用池來管理Connection,這樣可以重覆使用Connection。有了池,我們就不用自己來創建Connection,而是通過池來獲取Connection對象。當使用完Connection後,調用Connection的close()方法也不會真的關閉Connection,而是把Co ...
  • 命名規範: 命令中的選項和參數: ...
  • 在管理端一鍵部署nfs rsync 並且實時同步 實現非密碼非互動式一鍵部署 還會繼續增加新的東西 未完待續 ip:管理 61 nfs 131 rsync 141 web 108 管理端 : 齊天大聖的總的腳本 [root@m01 tools]# cat quanwang.sh#!/bin/bash ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...