Linux 编译服务器环境搭建

avatar
作者
筋斗云
阅读量:0

前情提要

一、戴尔R740服务器

Dell PowerEdge R740 2U机架式服务器

名称规格数量
CPU英特尔® 至强®银牌 4210R 2.4G, 10C/20T, 9.6GT/s 2UPI, 13.75M 缓存, Turbo, HT (85W) DDR4-2400,可扩展双路cpu,每个处理器多达 28 个核心1
内存32GB RDIMM, 3200MT/s, 双列, x4 带宽2
SSD硬盘1.92T SATA SSD 2.5英寸热插拔硬盘1
机械硬盘8TB 7.2K RPM NLSAS 512n 3.5英寸热插拔硬盘,最大支持8块4
RAID卡PERC H750 RAID 控制器, 8GB NV 线缆,PCIE1
电源750W 单电源1
RAIL001ReadyRails™ 静态导轨1

原厂建议安装 ubuntu20.04.2 以上版本

二、Ubuntu 20.04.6系统安装

1、安装界面语言选择

  • English

2、Install Ubuntu Serve

  • Select a language
    • English
  • Select your location
    • Asia
      • China
  • Configure locales
    • en_US.UTF-8
  • Configure the keyboard
    • No
      • English(US)
  • Configure the network
    • Hostname
      • LinuxBuildServer
  • Set up users and passwords
    • Full name for the new user
      • Linux Server Administrator
    • Username for your account(默认具有sudo权限的账号)
      • lsa
    • Choose a password for the new user
      • xxxxxxxx
    • Encrypt your home directory?
      • No
  • Configure the clock(自动探测时区)
    • 若正确 -> Yes
    • 否则 -> 手动选择对应时区
  • Partition disks
    • / 分区 主分区 ext4 64G 固态
    • swap 逻辑分区 64G 固态 (内存的两倍)
    • boot 逻辑分区 1G 固态
    • home分区 17.830T
    • document 4T 文件存储、固件发布
    • Hso 1.619T 固态
    • Finish partitioning and write changes to disk
  • Installing the system
  • Configure the package manager
    • HTTP proxy information(blank for none)
    • Configuring apt
    • Configuring tasksel
      • Install security updates automatically
    • Software selection
      • [*] Samba file server
      • [*] OpenSSH server
    • Install the GRUB boot loader on a hard disk
      • Yes
    • Finish the installation
      • Continue

3、系统配置

3.1 切换更新源
    sudo vim /etc/apt/sources.list     :%s/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g     或:%s/cn.archive.ubuntu.com/mirrors.aliyun.com/g     sudo apt-get update     sudo apt-get upgrade     sudo reboot 
3.2 安装编译 Android & Linux 所需包
    sudo apt-get install vim ssh git git-core git-doc git-email \     rssh ctags vim-doc vim-scripts python python3 dos2unix ascii      sudo apt-get install gawk wget diffstat zip unzip texinfo \     tcl uuid uuid-dev  texlive scrollkeeper \     gcc-multilib g++-multilib libc6-dev-i386 \     build-essential chrpath socat libsdl1.2-dev \     flex bison gperf libxml2-utils python-networkx \     zlib1g zlib1g-dev zlib1g-dev:i386 \     liblz-dev liblzo2-2 liblzo2-dev  lzop \     u-boot-tools mtd-utils android-tools-fsutils \     gettext libgtk2.0-dev rpm m4 libfreetype6-dev \     libdbus-glib-1-dev liborbit2-dev intltool \     bc ccache ncurses-dev libtool \     asciidoc texlive-latex-base dblatex xutils-dev \     lib32z1 lib32ncurses5  \     openjdk-8-jdk 
3.3 固定 IP 访问

sudo vim /etc/netplan/00-installer-config.yaml

network:   ethernets:     eno1:       addresses:       - 192.168.xxx.xx/24(固定静态IP)       gateway4: 192.168.xxx.xxx(默认网关)       nameservers:         addresses:         - 192.168.xxx.xxx(DNS服务器地址) 

sudo systemctl restart NetworkManage

三、Ubuntu 20.04 服务器管理

3.1 账号创建

sudo useradd -m -U user-name -s /bin/bash
sudo passwd user-name
sudo smbpasswd -a user-name

3.2 账号删除

删除账号和其home目录所有内容:
sudo userdel -rf user-name

只删除账号,不删除home目录:
sudo userdel user-name

3.3 密码修改

ssh账号
sudo passwd user-name

samba账号
sudo smbpasswd user-name

3.4 添加sudo权限(慎行)

加入sudo group后此账号就会拥有服务器的全部管理权限
sudo usermod -aG sudo test

// 精准控制权限 sudo vim /etc/sudoers  // user-name可以无密码使用sudo权限来运行/usr/bin/rpm和/opt/freescale/ltib/usr/bin/rpm这两个程序   添加:user-name ALL = NOPASSWD:/usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm   

3.5 其他指令

3.5.1 who
  • 查询登录状态
  • 账号|console名
  • tty1代表本地登录,pts通常代表远程登录
3.5.2 踢出已登录的账号

sudo pkill -kill -t pts/1

// 踢出前,先通知命令 sudo write test pts/1  write: warning: write will appear from lsa I will kill you login, please save your work now. 最后使用Ctrl-D结束通知。 
3.5.3 wall
  • 给所有登录账号发送信息
  • sudo wall ‘Server will be shut down after 5 minutes.’
所有登录账号都会收到这条通知,像下面的格式:                          Broadcast message from lsa@LinuxBuildServer (pts/0) (Wed Aug 15 15:42:53 2018): Server will be shut down after 5 minutes. 
3.5.4 ps
  • 查看当前的进程:ps a
  • 查看包括系统进程在内的所有进程列表:ps ax
  • 中止出问题的进程:kill problem-progress
3.5.5 top
  • 查询运行状态
  • 当前服务器的运行状态,包括CPU占用及内存占用等信息
3.5.6 scp
  • 服务器之间拷贝文件命令
  • scp -r src-file/ user-name@192.168.xxx.xx:/home/user-name
  • scp -r user-name@192.168.xxx.xx:/home/user-name/src-file /home/user-name/
3.5.7 ssh切换

ssh -l user-name 192.168.xxx.xx

3.5.8 查看文件夹大小

du -ah --max-depth=1

3.6 问题记录

3.6.1 检测到时钟偏差,文件更改时间与系统时间不同步

find ./ -type f | xargs touch

3.6.2 发起评审时出现invalid committer
原因:本次commit的提交者没有与gerrit上的账号一致 解决方法: git config user.name XXXX git config user.email XXXX git commit --amend --reset-author(弹出界面,不用保存,直接退出即可) 
3.6.3 jack-service端口号冲突
// 查看自己端口号是多少?  cat ~/.jack-settings cat ~/.jack-server/config.properties  // 判断端口(如8073)是否被占用: netstat -apn | grep 8073  // 替换两个未被占用的端口号为自己的端口号: vim ~/.jack-settings vim ~/.jack-server/config.properties     cd prebuilts/sdk/tools/ ./jack-admin kill-server ./jack-admin start-server 
3.6.4 kernel编译报错error:forbidden warning
原因:GCC高版本默认将警告当成错误处理 vim kernel/scripts/gcc-wrapper.py 屏蔽#interpret_warning(line) 
3.6.5 缺少依赖包问题

问题现象:

FAILED: /bin/bash -c "mkisofs -o out/target/product/msm8953_64/system/etc/cdrom_install.iso  device/qcom/msm8953_64/cdrom_res" /bin/bash: mkisofs: command not found 

问题解决:
sudo apt install mkisofs

3.6.6 服务器时间与实际时间相差8小时

timedatectl set-timezone Asia/Shanghai

3.6.5 不同版本gcc、python管理

sudo update-alternatives --config gcc
apt-cache policy g+±5
update-alternatives --config python

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!