zoukankan      html  css  js  c++  java
  • yum仓库搭建、http源码编译和磁盘分区

    自建yum仓库,分别为网络源和本地源

    1、在centos7安装yum源:

    1、本地自建yum仓库:首先需要启动神奇目录ls  /misc/cd,用来挂载光盘,

    1、  安装autofs软件,并启动。

    [root@centos7-2 ~]# yum install autofs   # 安装autofs
    [root@centos7-2 ~]# systemctl start autofs  # 启动autofs
    [root@centos7-2 ~]# systemctl enable autofs  # 下次开机启动autofs
    [root@centos7-2 yum.repos.d]# rm -rf repo.*  #  删除yum源多余的文件
    

    2、配置yum仓库

    [root@centos7-2 yum.repos.d]#vim development.repo  创建Yum仓库
    [development] baseurl=file:///misc/cd #gpgcheck=0 gpgcheck=file:///misc/cd/RPM-GPG-KEY-CenstOS-7 enable=1

    3、yum repolist  加载当前的yum源仓库 

    2、光盘挂载到httpd服务上的yum源仓库

    1、安装Http服务,并讲/dev/sr0挂载到指定的目录下

    [root@centos7-2 yum.repos.d]#mkdir -pv  /var/www/html/centos/6/os/x86_64/ 新建一个类似光盘的路径目录
    [root@centos7-2 yum.repos.d]#yum install httpd -y  安装httpd服务
    [root@centos7-2 yum.repos.d]#systemctl start httpd  启动httpd服务
    [root@centos7-2 yum.repos.d]#mount /dev/sr0 /var/www/html/centos/6/os/x86_64  将本地光盘挂载到httpd网上
    

    2、创建yum仓库

    [root@centos7-2 yum.repos.d]#vim   base.repo  开始创建yum仓库
    [base]
    baseurl=http://192.168.34.101/CentOS/$releasever/os/$basearch
    gpgcheck= 0
    enable=1
    

    3、yum repolist  加载当前的Yum源仓库

    3、创建网络yum源仓库(ELPL源)

    [root@centos7-2 yum.repos.d]#cd /etc/yum.repos.d/

    1、直接在阿里官网找到elpl源仓库,将repodata上级所有目录都复制出来,放到baseurl指定的目录即可:

    [root@centos7-2 yum.repos.d]#vim elpl.repo
    
    [elpl]
    baseurl= https://mirrors.aliyun.com/epel/$releasever/x86_64
    gpgcheck=0
    enable=1
    

    2、yum repolist 加载当前的yum源仓库 

    源码编译httpd服务

    1、下载httpd源码包

    在官网上下载httpd源码包http://httpd.apache.org,也可以在linux中输入rpm -qi httpd查看到当前下载源码httpd的网址

    下载到linux的data目录下,然后进行解压:

    1
    2
    3
    [root@ansibledata]#rz
     
    [root@ansibledata]#tar xf httpd-2.4.39

    注意:一定要在解压后的httpd目录下安装,下面的编译需要用到httdp目录下的脚本,所以我用cd httpd把目录切换到httpd中去进入cd httpd-2.4.27/

    2、查看INSTALL、README 这些帮助信息

    查询 cat INSTALL,里边有简单的安装过程,和一些例子

     

    查询 cat README,(what is it ?)里边有一些Apache 的功能介绍

    3、configure脚本(检测当前编译环境)

    (1)./configure --help 查询这个脚本的用法,

    --prefix=PREFIX  指定默认安装总目录, 默认为/usr/local/

    --sysconfdir=/PATH 配置文件安装位置,默认就安装到指定安装总目录的下面

     Optional Features:  需要什么功能

    --disable-FEATURE 关闭某些功能

    --enable-FEATURE 开启某些功能

     

    下面我们就来执行这个脚本,添加一些简单的设置

    手工创建账号:

    1
    [root@ansiblehttpd-2.4.39]#useradd -r -u 80 -d /var/www  -s /sbin/nologin httpd

    (1)首先安装development-tools包,因为没有C编译工具,缺少gcc,这时候,我们需要下一个包组development tools

    yum -y groupinstall "Development Tools"

    1
    [root@ansiblehttpd-2.4.39]#yum groupinstall "development tools"

    (2)首次安装包,会有一些提示错误,第一次安装没有一些准备好的包,可以根据提示错误进行安装:

    1
    [root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

    (3)我们只需按照提示的错误,把需要的都安装上去(直到没有提示错误)

    先查询缺少的 yum search apr-devel(一般关于开发的都叫 devel)

    再安装 yum -y install apr-devel

    1
    [root@ansiblehttpd-2.4.39]#yum install apr-devel

     

    (4)此时缺少apr-util包,按照提示错误来进行下一步安装:

    1
    [root@ansiblehttpd-2.4.39]#yum install apr-util-devel
    1
    [root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

     

     (5)根据提示错误继续往下安装,此时缺少pcre包,安装pcre-devel包

    1
    [root@ansiblehttpd-2.4.39]#yum install pcre-devel

     继续执行指定路径的包安装

    1
    [root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

    (6)根据提示的错误,安装openssl-devel包:

    1
    [root@ansiblehttpd-2.4.39]#yum install openssl-devel

    (7)再执行指定路径的包安装,此时就已经完成指定路径包的安装。

    1
    [root@ansiblehttpd-2.4.39]#./configure  --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status

    (8)configure脚本完全执行成功(多了一个Makefile)没有Makefile 

     

    4、make和make install编译

    (1)进行make编译,make 编译后,多了很多.o .lo 文件 (二进制文件),在此之前的工作,任何用户都能做,并且都在httpd-2.4.27 这个目录下进行

    1
    [root@ansiblehttpd-2.4.39]#make

    (2)make install 安装到指定位置,只有root 能做,此时httpd的编译完成。

    1
    [root@ansiblehttpd]#make install

    (3)切换到/app/httpd/bin执行程序目录下,此时去执行服务启动,都必须是./apachectl start,不太方便,我们可以指定变量路径

    1
    2
    3
    4
    5
    [root@ansiblehttpd]#cd /app/httpd/bin
    [root@ansiblebin]#pwd
    /app/httpd/bin
    [root@ansiblebin]#echo 'PATH=/app/httpd/bin:$PATH'  > /etc/profile.d/httpd.sh 定义一个/app/httpd/bin的配置文件路径
    [root@ansiblebin]#apachectl start   启动当前编译的httpd服务

    此时在网上输入本机的IP地址就可以访问信息:

     5、安装后的配置

     导入帮助手册man           

      vim /etc/man_db.conf

      加入一行 MANDATORY_MANPATH                       /app/httpd/man

    3、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统 ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

    (1)先在/dev/sdb磁盘上创建一个2G的分区

    [root@centos6~]#fdisk /dev/sdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel with disk identifier 0xef64b475.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Command (m for help): m
    Command action
       a   toggle a bootable flag
       b   edit bsd disklabel
       c   toggle the dos compatibility flag
       d   delete a partition
       l   list known partition types
       m   print this menu
       n   add a new partition
       o   create a new empty DOS partition table
       p   print the partition table
       q   quit without saving changes
       s   create a new empty Sun disklabel
       t   change a partition's system id
       u   change display/entry units
       v   verify the partition table
       w   write table to disk and exit
       x   extra functionality (experts only)
    
    Command (m for help): p
    
    Disk /dev/sdb: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xef64b475
    
       Device Boot      Start         End      Blocks   Id  System
    
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-26108, default 1): 1
    Last cylinder, +cylinders or +size{K,M,G} (1-26108, default 26108): +2G  
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    查看此时的/dev/sdb的分区大小是2G

    [root@centos6~]#lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0     11:0    1  3.7G  0 rom  
    sda      8:0    0  200G  0 disk 
    ├─sda1   8:1    0    1G  0 part /boot
    ├─sda2   8:2    0 97.7G  0 part /
    ├─sda3   8:3    0 48.8G  0 part /data
    ├─sda4   8:4    0    1K  0 part 
    └─sda5   8:5    0    2G  0 part [SWAP]
    sdb      8:16   0  200G  0 disk 
    └─sdb1   8:17   0 15.7M  0 part 

    (2)指定磁盘空间及系统标记:块大小为2048byte,预留1%可用空间,文件系统 ext4,卷标为TEST

    [root@centos6~]#mkfs.ext4 -b 2048 -L "TEST" -m 1 /dev/sdb1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=TEST
    OS type: Linux
    Block size=2048 (log=1)
    Fragment size=2048 (log=1)
    Stride=0 blocks, Stripe width=0 blocks
    131560 inodes, 1052240 blocks
    10522 blocks (1.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=538968064
    65 block groups
    16384 blocks per group, 16384 fragments per group
    2024 inodes per group
    Superblock backups stored on blocks: 
    	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
    
    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 22 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    

    查看指定后的分区信息:

    lsblk  /dev/sdb1 

    [root@centos6~]#blkid /dev/sdb1
    /dev/sdb1: LABEL="TEST" UUID="9250f7d0-977b-4c0b-bba8-7dfca23c3dcd" TYPE="ext4" 
    

    查看文件系统的ACL功能:

    tune2fs  -l /dev/sdb1

    [root@centos6~]#tune2fs -l  /dev/sdb1
    tune2fs 1.41.12 (17-May-2010)
    Filesystem volume name:   TEST
    Last mounted on:          <not available>
    Filesystem UUID:          9250f7d0-977b-4c0b-bba8-7dfca23c3dcd
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
    Filesystem flags:         signed_directory_hash 
    Default mount options:    acl
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              131560
    Block count:              1052240
    Reserved block count:     10522
    Free blocks:              998252
    Free inodes:              131549
    First block:              0
    Block size:               2048
    Fragment size:            2048
    Reserved GDT blocks:      512
    Blocks per group:         16384
    Fragments per group:      16384
    Inodes per group:         2024
    Inode blocks per group:   253
    Flex block group size:    16
    Filesystem created:       Sun Nov 10 09:17:32 2019
    Last mount time:          n/a
    Last write time:          Sun Nov 10 09:21:25 2019
    Mount count:              0
    Maximum mount count:      22
    Last checked:             Sun Nov 10 09:17:32 2019
    Check interval:           15552000 (6 months)
    Next check after:         Fri May  8 09:17:32 2020
    Lifetime writes:          97 MB
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:	          256
    Required extra isize:     28
    Desired extra isize:      28
    Journal inode:            8
    Default directory hash:   half_md4
    Directory Hash Seed:      840447d7-3f85-4ff3-bec5-89fb0e95a853
    Journal backup:           inode block
    

    (3)开机挂载/dev/sdb1磁盘:

    vim /dev/fstab  将文件UUID写入到配置文件中即可:

    [root@centos6~]#cat /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Thu Aug 22 15:06:16 2019
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=26a9ab70-c62f-471f-bdf2-bb38c350526a /                       ext4    defaults        1 1
    UUID=e1f6dde3-d380-4e79-80cc-b41fbf93f404 /boot                   ext4    defaults        1 2
    UUID=7f570fd9-b234-46a1-9bc5-c8cf3942d9ca /data                   ext4    defaults        1 2
    UUID=be5f6d9c-1887-4895-ac3f-c795f2eaafac swap                    swap    defaults        0 0
    UUID=9250f7d0-977b-4c0b-bba8-7dfca23c3dcd /mnt/sdb1               ext4    defaults        0 0
    

    4、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

     (1)虚拟机上安上两个10G的虚拟硬盘,然后组合PV物理组:

    [root@ansiblehttpd]#pvcreate /dev/{sdc,sdd}
      Physical volume "/dev/sdc" successfully created.
      Physical volume "/dev/sdd" successfully created.
    

     (2)创建PE为16MB的VG组

    [root@ansiblehttpd]#vgcreate -s 16m vg0 /dev/sd{c,d} 
      Volume group "vg0" successfully created
    

     (3)将卷组创建成5G逻辑卷

    [root@ansiblehttpd]#lvcreate -n testly  -L 5G vg0
      Logical Volume "testly" already exists in volume group "vg0"
    

     (4)格式化当前的卷组

    [root@ansiblehttpd]#mkfs.ext4 /dev/vg0/testly
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=1024 (log=0)
    Fragment size=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    16384 inodes, 65536 blocks
    3276 blocks (5.00%) reserved for the super user
    First data block=1
    Maximum filesystem blocks=33685504
    8 block groups
    8192 blocks per group, 8192 fragments per group
    2048 inodes per group
    Superblock backups stored on blocks: 
    	8193, 24577, 40961, 57345
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    

    查看当前的卷组信息:

    [root@ansible~]#pvdisplay
      --- Physical volume ---
      PV Name               /dev/sdc
      VG Name               vg0
      PV Size               10.00 GiB / not usable 16.00 MiB
      Allocatable           yes 
      PE Size               16.00 MiB
      Total PE              639
      Free PE               635
      Allocated PE          4
      PV UUID               AYecKo-37eD-N6sC-jL33-kCrb-ACAV-ez47oc
       
      --- Physical volume ---
      PV Name               /dev/sdd
      VG Name               vg0
      PV Size               10.00 GiB / not usable 16.00 MiB
      Allocatable           yes 
      PE Size               16.00 MiB
      Total PE              639
      Free PE               639
      Allocated PE          0
      PV UUID               JMGIQr-CS6e-XpUb-1MNu-J4fW-faeW-twAMni

    (5)挂载卷组

    [root@ansiblehttpd]#mount /dev/vg0/testly /users
    

      

     

      

      

     

  • 相关阅读:
    scrapy xpath 定位节点获取数据
    pandas 获取增量数据
    10秒解决80端口被占用
    VS code 自定义快捷键
    解决npm 的 shasum check failed for错误
    JSON.parse与eval的区别
    display:flex,用这个布局就像开挂了!!!
    几款前端IDE工具:Sublime、Atom、VSCode比较
    npm install -S -D -g 有什么区别
    Vue框架学习——使用nvm下载8.12.0以后版本没有npm文件的解决办法
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/11831802.html
Copyright © 2011-2022 走看看