//轻量级Centos定制发行版
====================================================================================================
一、基础

//操作环境:
VM+CentOS-6.4-x86_64-minimal.iso

//基本软件
yum -y install createrepo genisoimage

//VM需设置1个光驱 挂载DVD1
安装centos6.4X 86_64系统,所需组件自行定义,安装后得到install.log和anaconda-ks.cfg文件

//初始目录
mkdir /mnt/cd1 #建立光盘的挂载目录
mount /dev/cdrom /mnt/cd1 #挂载DVD
mkdir -p /root/centos_1905/Packages #建立定制光盘文件目录

二、定制系统文件的准备

新定制系统由以上系统组件包说决定,文件由install.log安装日志得来

vi /root/cp_files.sh

#!/bin/bash
for i in $(awk '/Installing/ {print $2}' install.log)
do
cp /mnt/cd1/Packages/${i}.rpm /root/centos_1905/Packages
[ $? != 0 ] && echo "copy ${i} is faied"
done

//拷贝文件
rsync -a --exclude=Packages /mnt/cd1/ /root/centos_1905/

三、下载Development Tools相关软件

另找机器,通过yum -y groupinstall "Development Tools"缓存相关软件包

需安装其他基础依赖包,都可通过yum准备相关文件。

//开启缓存
vi /etc/yum.conf
keepcache=1

拷贝相关软件到Packages下

//find . -name "*.rpm"|xargs -i mv {} ~/temp

三、ks文件准备 (非自动安装忽略此步)

ks文件由系统安装所得anaconda-ks.cfg进行修改所得 (也可用 system-config-kickstart 生成)
密码生成工具 grub-crypt

vi /root/centos_1905/isolinux/ks.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
network --onboot no --device eth1 --bootproto dhcp --noipv6
rootpw --iscrypted $6$ap3J1vcG32p9wu7m$Q4YQJdR4jvxNjhTDNhw0d/qFdcd/TufkoZ3GZ4VZ7fkna3oZEnAYrXAqrBk11b6S6.gAWqsb8.EBAuerI8k/l.
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Chongqing
bootloader --location=mbr --driveorder=xvda --append="crashkernel=auto console=hvc0 rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=xvda
#volgroup VolGroup --pesize=4096 pv.202002
#logvol /home --fstype=ext4 --name=lv_home --vgname=VolGroup --grow --size=100
#logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=4000 --maxsize=4000

#part /boot --fstype=ext4 --size=500
#part pv.202002 --grow --size=1

#repo --name="CentOS" --baseurl=cdrom:xvdd --cost=100

%packages --nobase
@core
%end

四、让系统从kickstart配置启动安装 (非自动安装忽略此步)

vi /root/centos_1905/isolinux/isolinux.cfg

default auto
timeout 600
display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label auto
menu label ^Auto Install system
menu default
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img

label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -

五、重新生成comps.xml

//清空repodata
rm -rf /root/centos_1905/repodata/*

//生成XML(详见附录)
vi /root/centos_1905/repodata/comps.xml

//生成依赖 comps.xml
createrepo -g /root/centos_1905/repodata/comps.xml /root/centos_1905/

mv /root/centos_1905/repodata/*-comps.xml /root/centos_1905/repodata/comps.xml

cd /root/centos_1905/
declare -x discinfo=$(head -1 .discinfo)
createrepo -u "media://$discinfo" -g /root/centos_1905/repodata/comps.xml /root/centos_1905/

六、ISO文件的生成

mkisofs -o Centos_1905-text-6.4-x86_64-minimal.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -joliet-long -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -V centos_1905 -T /root/centos_1905

mkisofs -o Centos_1905_all_6_14-6.4-x86_64-minimal.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -joliet-long -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -V centos_1905 -T /root/centos_1905

mkisofs -o Centos_text-6.5-x86_64-minimal.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -joliet-long -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -V centos_1905 -T /root/centos_1905

mkisofs -o Centos_1905-6.5-x86_64-minimal.iso -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -joliet-long -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -V centos_1905 -T /root/centos_1905

//打包普通
mkisofs -o m1905.iso -input-charset utf-8 -joliet-long -R -J -v -V centos_1905 -T /root/shell

七、生成检验
//yum install anaconda

/usr/bin/implantisomd5 /root/iso/Centos_1905-6.5-x86_64-minimal.iso

//拷贝去安装
scp Centos_1905-6.5-x86_64-minimal.iso root@192.168.3.200:/home/public/ISO

//绿色+开发包
Centos_text-6.5-x86_64-minimal.iso
===================================================================================
yum -y groupinstall "Development tools"
yum -y install wget
yum -y install lrzsz

//绿色+开发包+自带监控+票务基础包
Centos_1905-6.5-x86_64-minimal.iso
===================================================================================
基于上面系统

wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -ivh epel-release-6-8.noarch.rpm

yum -y install ntp
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
yum -y install cmake ncurses ncurses-devel libaio libaio-devel
yum -y install libxml2 libxml2-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel giflib giflib-devel freetype freetype-devel gd gd-devel glibc glibc-devel glib2 glib2-devel curl curl-devel e2fsprogs e2fsprogs-devel openssl openssl-devel libmcrypt-devel mhash mhash-devel
yum -y install lzo lzo-devel pam pam-devel automake pkgconfig

yum -y install openvpn
yum -y install salt-minion
yum -y install zabbix22-agent

//绿色+开发包+自带监控+票务基础包+票务系统
Centos_1905_pw-6.5-x86_64-minimal.iso

//绿色+开发包+自带监控+票务基础包+票务TMS
Centos_1905_tms-6.5-x86_64-minimal.iso

//绿色+开发包+自带监控+票务基础包+中心系统
Centos_1905_center-6.5-x86_64-minimal.iso

//聚包
mkdir ~/packages
find /mnt/cd1/Packages/ -name "*.rpm"|xargs -i cp {} ~/Packages
find /var/cache/yum/x86_64/6/ -name "*.rpm"|xargs -i cp {} ~/Packages

//快速配置文件
1、相关软件包
ls *.rpm > rpm_list.txt

2、RPM 截取包名和版本号 生成相关XML文件

//快速安装
======================================================
mkdir -p /root/centos_1905/Packages

cp ks.cfg /root/centos_1905/isolinux/ks.cfg
cp isolinux.cfg /root/centos_1905/isolinux/isolinux.cfg

附录 剔除低版本RPM 生成comps.xml
======================================================
1、将所有RPM包放到一个文件夹下 find /var/cache/yum -name *.rpm | xargs -i cp {} ~/pk/
2、整理出RPM包列表 ls *.rpm > rpm_list.txt
3、运行如下脚本 生成 comps.xml

<?php

//rpm_list.txt
//ls *.rpm > rpm_list.txt

$list = file_get_contents('rpm_list.txt');

$list_arr = explode("\n",$list);

$ok_arr = array();
$no_arr = array();

foreach($list_arr as $val)
{
if($val)
{

//正则分割 软件名 + 版本
$val_t_arr = preg_split("/(-[\d].)(.*)/",$val,0,3);

$key = $val_t_arr[0];
$val = $val_t_arr[1].$val_t_arr[2];

if(isset($ok_arr[$key]))
{
$re = strcmp($ok_arr[$key],$val);

//var_dump($ok_arr[$key]);
//var_dump($val);
//var_dump($re);

if($re > 0)
{
$no_arr[$key] = $val;
}
else
{
$no_arr[$key] = $ok_arr[$key];
$ok_arr[$key] = $val;
}

}
else
{
$ok_arr[$key] = $val;
}
}
}

//var_dump($ok_arr);
$list = '';
foreach($ok_arr as $key => $val)
{
$list .= " <packagereq type='mandatory'>".$key."</packagereq>"."\n";
}

$head = "<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
<id>core</id>
<name>Core</name>
<name xml:lang="af">Kern</name>
<name xml:lang="am">ማዕከላዊ ቦታ</name>
<name xml:lang="ar">اللبّ</name>
<name xml:lang="as">ভিত্তি</name>
<name xml:lang="bal">هستگ</name>
<name xml:lang="be">Падмурак</name>
<name xml:lang="bg">Основа</name>
<name xml:lang="bn">কোর</name>
<name xml:lang="bn_IN">কোর</name>
<name xml:lang="bs">Jezgra</name>
<name xml:lang="ca">Nucli</name>
<name xml:lang="cs">Úplný základ</name>
<name xml:lang="cy">Craidd</name>
<name xml:lang="da">Grundlæggende</name>
<name xml:lang="de">Kern</name>
<name xml:lang="el">Πυρήνας</name>
<name xml:lang="en_GB">Core</name>
<name xml:lang="es">Núcleo</name>
<name xml:lang="et">Tuum</name>
<name xml:lang="fa">اصل</name>
<name xml:lang="fi">Keskeiset</name>
<name xml:lang="fr">Core</name>
<name xml:lang="gl">Núcleo</name>
<name xml:lang="gu">મૂળ</name>
<name xml:lang="he">ליבה</name>
<name xml:lang="hi">कोर</name>
<name xml:lang="hr">Jezgra</name>
<name xml:lang="hu">Mag</name>
<name xml:lang="hy">Հիմք</name>
<name xml:lang="ia">Nucleo</name>
<name xml:lang="id">Inti</name>
<name xml:lang="ilo">Bugas</name>
<name xml:lang="is">Lágmarkskerfi</name>
<name xml:lang="it">Principale</name>
<name xml:lang="ja">コア</name>
<name xml:lang="ka">ბირთვი</name>
<name xml:lang="kn">ಅಂತಸ್ಸಾರ</name>
<name xml:lang="ko">핵심</name>
<name xml:lang="lv">Pamatsistēma</name>
<name xml:lang="mai">कोर</name>
<name xml:lang="mk">Основни</name>
<name xml:lang="ml">കോറ്‍</name>
<name xml:lang="mr">कोर</name>
<name xml:lang="ms">Teras</name>
<name xml:lang="nb">Kjerne</name>
<name xml:lang="ne">कोर</name>
<name xml:lang="nl">Kern</name>
<name xml:lang="no">Kjerne</name>
<name xml:lang="nso">Bogare</name>
<name xml:lang="or">ପ୍ରମୂଖ</name>
<name xml:lang="pa">ਮੂਲ</name>
<name xml:lang="pl">Rdzeń</name>
<name xml:lang="pt">Núcleo</name>
<name xml:lang="pt_BR">Núcleo</name>
<name xml:lang="ro">Nucleu</name>
<name xml:lang="ru">Основа</name>
<name xml:lang="si">න්‍යෂ්ඨිය</name>
<name xml:lang="sk">Jadro</name>
<name xml:lang="sl">Jedro</name>
<name xml:lang="sq">Bërthama</name>
<name xml:lang="sr">Срж</name>
<name xml:lang="sr@latin">Srž</name>
<name xml:lang="sr@Latn">Srž</name>
<name xml:lang="sv">Grund</name>
<name xml:lang="ta">கோர்</name>
<name xml:lang="te">అంతర్భాగం</name>
<name xml:lang="tg">Система</name>
<name xml:lang="th">แกนหลัก</name>
<name xml:lang="tr">Çekirdek</name>
<name xml:lang="uk">Основа</name>
<name xml:lang="ur">مرکز</name>
<name xml:lang="vi">Lõi</name>
<name xml:lang="zh_CN">核心</name>
<name xml:lang="zh_TW">核心</name>
<name xml:lang="zu">Okuyikhona</name>
<description>Smallest possible installation.</description>
<description xml:lang="as">ন্যূনতম ইনস্টল।</description>
<description xml:lang="bn">ন্যূনতম ইনস্টলেশন।</description>
<description xml:lang="bn_IN">ন্যূনতম ইনস্টলেশন।</description>
<description xml:lang="cs">Nejmenší možná instalace.</description>
<description xml:lang="de">Kleinstmögliche Installation.</description>
<description xml:lang="es">La instalación más pequeña posible.</description>
<description xml:lang="fr">Plus petite installation possible.</description>
<description xml:lang="gu">નાનામાં નાના શક્ય સ્થાપન.</description>
<description xml:lang="hi">लघुतम संभावित संस्थापन.</description>
<description xml:lang="ia">Le minime possibile installation.</description>
<description xml:lang="it">Minima installazione possibile.</description>
<description xml:lang="ja">最小限のインストール</description>
<description xml:lang="kn">ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ.</description>
<description xml:lang="ko">가능한 최소 설치</description>
<description xml:lang="ml">സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്‍സ്റ്റലേഷന്‍.</description>
<description xml:lang="mr">शक्यतया सर्वात लहान प्रतिष्ठापन.</description>
<description xml:lang="or">କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନା।</description>
<description xml:lang="pa">ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ।</description>
<description xml:lang="pl">Najmniejsza możliwa instalacja.</description>
<description xml:lang="pt_BR">Menor instalação possível</description>
<description xml:lang="ru">Минимально возможная установка</description>
<description xml:lang="sv">Minsta möjliga installation</description>
<description xml:lang="ta">மிகச் சிறிய செயல்படுத்தக்கூடிய நிறுவல்.</description>
<description xml:lang="te">సాధ్యమగు అతిచిన్న సంస్థాపన.</description>
<description xml:lang="uk">Мінімально можливе встановлення.</description>
<description xml:lang="zh_CN">最小可能安装。</description>
<description xml:lang="zh_TW">最小型安裝。</description>
<default>false</default>
<uservisible>false</uservisible>
<packagelist>
";

$boot = " <packagereq type="default">aic94xx-firmware</packagereq>
<packagereq type="default">alsa-firmware</packagereq>
<packagereq type="default">bfa-firmware</packagereq>
<packagereq type="default">dracut-config-rescue</packagereq>
<packagereq type="default">ivtv-firmware</packagereq>
<packagereq type="default">iwl100-firmware</packagereq>
<packagereq type="default">iwl1000-firmware</packagereq>
<packagereq type="default">iwl105-firmware</packagereq>
<packagereq type="default">iwl135-firmware</packagereq>
<packagereq type="default">iwl2000-firmware</packagereq>
<packagereq type="default">iwl2030-firmware</packagereq>
<packagereq type="default">iwl3160-firmware</packagereq>
<packagereq type="default">iwl3945-firmware</packagereq>
<packagereq type="default">iwl4965-firmware</packagereq>
<packagereq type="default">iwl5000-firmware</packagereq>
<packagereq type="default">iwl5150-firmware</packagereq>
<packagereq type="default">iwl6000-firmware</packagereq>
<packagereq type="default">iwl6000g2a-firmware</packagereq>
<packagereq type="default">iwl6000g2b-firmware</packagereq>
<packagereq type="default">iwl6050-firmware</packagereq>
<packagereq type="default">iwl7260-firmware</packagereq>
<packagereq type="default">iwl7265-firmware</packagereq>
<packagereq type="default">kernel-tools</packagereq>
<packagereq type="default">libertas-sd8686-firmware</packagereq>
<packagereq type="default">libertas-sd8787-firmware</packagereq>
<packagereq type="default">libertas-usb8388-firmware</packagereq>
<packagereq type="default">libsysfs</packagereq>
<packagereq type="default">linux-firmware</packagereq>
<packagereq type="default">microcode_ctl</packagereq>
<packagereq type="default">NetworkManager</packagereq>
<packagereq type="default">NetworkManager-team</packagereq>
<packagereq type="default">NetworkManager-tui</packagereq>
<packagereq type="default">NetworkManager-wifi</packagereq>
<packagereq type="default">postfix</packagereq>
<packagereq type="default">ql2100-firmware</packagereq>
<packagereq type="default">ql2200-firmware</packagereq>
<packagereq type="default">ql23xx-firmware</packagereq>
<packagereq type="default">rdma</packagereq>
<packagereq type="optional">dracut-config-generic</packagereq>
<packagereq type="optional">dracut-fips</packagereq>
<packagereq type="optional">dracut-fips-aesni</packagereq>
<packagereq type="optional">dracut-network</packagereq>
<packagereq type="optional">openssh-keycat</packagereq>
<packagereq type="optional">selinux-policy-mls</packagereq>
<packagereq type="optional">tboot</packagereq>
</packagelist>
</group>
<environment>
<id>minimal</id>
<name>Minimal Install</name>
<name xml:lang="as">নূন্যতম ইনস্টল</name>
<name xml:lang="bn_IN">ন্যূনতম ইনস্টল</name>
<name xml:lang="cs">Minimální instalace</name>
<name xml:lang="de">Minimale Installation</name>
<name xml:lang="es">Instalación mínima</name>
<name xml:lang="fr">Installation minimale</name>
<name xml:lang="gu">ન્યૂનતમ સ્થાપન</name>
<name xml:lang="hi">न्यूनतम संस्थापन</name>
<name xml:lang="it">Installazione minima</name>
<name xml:lang="ja">最小限のインストール</name>
<name xml:lang="kn">ಕನಿಷ್ಟ ಅನುಸ್ಥಾಪನೆ</name>
<name xml:lang="ko">최소 설치</name>
<name xml:lang="ml">ഏറ്റവും കുറഞ്ഞ ഇന്‍സ്റ്റോള്‍</name>
<name xml:lang="mr">किमान इंस्टॉल</name>
<name xml:lang="or">ସର୍ବନିମ୍ନ ସ୍ଥାପନ</name>
<name xml:lang="pa">ਘੱਟ ਤੋਂ ਘੱਟ ਇੰਸਟਾਲ</name>
<name xml:lang="pl">Minimalna instalacja</name>
<name xml:lang="pt_BR">Instalações Mínimas</name>
<name xml:lang="ru">Минимальная установка</name>
<name xml:lang="ta">குறைந்தபட்ச நிறுவல்</name>
<name xml:lang="te">కనీసపు సంస్థాపన</name>
<name xml:lang="uk">Мінімальна система</name>
<name xml:lang="zh_CN">最小安装</name>
<name xml:lang="zh_TW">最小型安裝</name>
<description>Basic functionality.</description>
<description xml:lang="as">মৌলি কাৰ্য্যকৰীতা।</description>
<description xml:lang="bn_IN">প্রাথমিক বৈশিষ্ট্য।</description>
<description xml:lang="cs">Základní funkcionalita.</description>
<description xml:lang="de">Grundlegende Funktionalität.</description>
<description xml:lang="es">Funcionalidad básica.</description>
<description xml:lang="fr">Fonctionnalité de base.</description>
<description xml:lang="gu">મૂળભૂત વિધેય.</description>
<description xml:lang="hi">मौलिक प्रकार्यात्मकता.</description>
<description xml:lang="it">Funzione di base.</description>
<description xml:lang="ja">基本的な機能です。</description>
<description xml:lang="kn">ಮೂಲಭೂತ ಕ್ರಿಯಾಶೀಲತೆ.</description>
<description xml:lang="ko">기본적인 기능입니다.</description>
<description xml:lang="ml">അടിസ്ഥാന പ്രവൃത്തിവിശേഷണം.</description>
<description xml:lang="mr">मूळ कार्यक्षमता.</description>
<description xml:lang="or">ସାଧାରଣ କାର୍ଯ୍ୟକାରିତା।</description>
<description xml:lang="pa">ਮੁੱਢਲੀ ਕਾਰਜਸ਼ੀਲਤਾ।</description>
<description xml:lang="pl">Podstawowa funkcjonalność.</description>
<description xml:lang="pt_BR">Função básica</description>
<description xml:lang="ru">Базовая функциональность.</description>
<description xml:lang="ta">அடிப்படை செயலம்சம்.</description>
<description xml:lang="te">ప్రాథమిక ఫంక్షనాలిటి.</description>
<description xml:lang="uk">Основні можливості.</description>
<description xml:lang="zh_CN">基本功能。</description>
<description xml:lang="zh_TW">基本功能。</description>
<display_order>5</display_order>
<grouplist>
<groupid>core</groupid>
<groupid>core</groupid>
</grouplist>
</environment>
</comps>
";

$xml = $head.$list.$boot;

file_put_contents('comps.xml',$xml);

//var_dump($no_arr);

foreach($no_arr as $key => $val)
{
echo 'rm -rf '.$key.$val.";\n";
}

//替换图片
==============================================

1、找到 images/install.img

2、挂在images
mount -o loop -t squashfs install.img /mnt

3、拷贝出内容
mkdir ~/tmp
rsync -av /mnt/ ~/tmp

4、更换图片
cd ~/tmp/usr/share/anaconda/pixmaps

5、重新打包
mksquashfs ~/tmp/ install_v1.img -all-root

6、更替install.img

//更换欢迎语
==============================================

1、找到 isolinux/initrd.img

2、解压
mkdir ~/tmp2
cd ~/tmp2
xz -dc ~/centos_1905_micro_6.5/isolinux/initrd.img | cpio -id

3、修改
vi .buildstamp

4、重新打包
find . | cpio -c -o | xz -9 --format=lzma > ~/initrd_v1.img

5、更替initrd.img

定制centos发行版的更多相关文章

  1. 自己定制Linux发行版(资料)

    /******************************************************************** * 自己定制Linux发行版(资料) * 声明: * 随着L ...

  2. 快速构建自己的CentOS发行版

    一.制作LTOS具体过程 光盘结构介绍 * isolinux 目录存放光盘启动时的安装界面信息 * images 目录包括了必要的启动映像文件 * CentOS 目录存放安装软件包及信息 * .dis ...

  3. 安装软件(基于redhat、centos发行版)

    yum 命令的使用: yum local install package_name.rpm 安装本地rpm包yum list updates 列出所有可以更新的安装包yum update packag ...

  4. 2016 最佳 Linux 发行版排行榜

    2015年,不管在企业市场还是个人消费市场都是 Linux非常重要的一年.作为一个自2005年起就开始使用 Linux的 Linuxer ,我门见证了 Linux在过去十年的成长.2016 Linux ...

  5. 2016年最佳Linux发行版排行榜

    2015年,不管在企业市场还是个人消费市场都是 Linux 非常重要的一年. 最好的回归发行版:openSUSE openSUSE 背后的 SUSE 公司是最老的 Linux 企业,它成立于 Linu ...

  6. 2016 最佳 Linux 发行版排行榜【转】

    转自:http://www.linuxstory.org/the-best-linux-distros-of-2016/?utm_source=tuicool&utm_medium=refer ...

  7. 1.9 初学者应选择哪个Linux发行版?

    前面章节中,已经对几个常见的 Linux 发行版做了简单的介绍,那么对于初学者来说,选择哪个发行版的性价比更高呢? 通常情况下,初学者学习 Linux,是为了找一份和 Linux 相关的工作,那么问题 ...

  8. Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

    Linux,最早由Linus Benedict Torvalds在1991年开始编写.在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及 ...

  9. 【转帖】Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

     Linux发行版:CentOS.Ubuntu.RedHat.Android.Tizen.MeeGo作者:阳光岛主 原文在这儿 Linux,最早由Linus Benedict Torvalds在199 ...

  10. Linux发行版,分类,CentOS下载

    目录 Debian 系(dpkg) 1. 包管理 2. 发行版 Red Hat 系(rpm) 1. 包管理 2. 发行版 其他发行版   Debian 系(dpkg) 1. 包管理 包管理器:dpkg ...

随机推荐

  1. vue provide inject 方法

    上级组件: provide() { return { changeSelectOptions: this.changeSelectOptions, switchTabs: () => this. ...

  2. mybatis自增主键的获取

    实体类 package org.example.entity; public class User { private Integer id; private String name; private ...

  3. js两个数组对象中,获取不相同的值 非交集元素对象

    查看前端面试题小程序 大量面试题和答案,请微信查看 var array1 = [ {"Num": "A " },{"Num": " ...

  4. linux离线安装gcc 和g++

    1.先到有网的机器上下载依赖包 sudo yum install --downloadonly --downloaddir=/home/mjb/soft/gcc gcc sudo yum instal ...

  5. 杭电oj 素数判定

    Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数.   I ...

  6. The operation was rejected by your operating system.

    我在新项目开启的时候使用npm install来初始化前端代码的开发环境 但是遇到一个问题,一直报: The operation was rejected by your operating syst ...

  7. jenkins +docker+python接口自动化之docker下安装jenkins(一)

    1.下载jenkins启动docker服务之后,首先搜索可用的jenkins镜像 docker search jenkins 第一个是官方版本,但是已标明废弃了,让用第二个jenkisn/jenkin ...

  8. js遍历出数组重复的数据,及重复的个数(简单有效)

    const res={} ["s","s","a"].forEach((key)=>{ if(res[key]){ res[key]+ ...

  9. Linux系统安装&VMware安装一

    本次安装使用的VMware版本是15.5pro,镜像文件是centos7_x86 如果你还没有VMware和镜像文件,这里给你提供: https://my.vmware.com/cn/web/vmwa ...

  10. Cxf框架中@WebService注解的使用

    最近工作中总是不可避免的使用WebService来对接功能,经过自己一番摸索,总结出了一些使用方法,做一下记录: 记录了两个SpringBoot版本使用WebService的一些问题和用法,Sprin ...