1.GCC 源码编译安装
2.å¦ä½å¨å·²å®è£
çsuselinux10.2ä¸ å®è£
g++
3.SUSE加入欧拉(openEuler)开源社区,解源打造本地化操作系统基石
4.suse linux 怎么装软件
GCC 源码编译安装
前言
本文主要介绍如何在特定条件下,码包命令码通过源码编译安装GCC(GNU Compiler Collection)4.8.5版本。解源在Linux环境下,码包命令码特别是解源遇到较老工程代码和低版本GCC适配问题时,网络仓库不可用,码包命令码网页框架源码可通过下载源码进行本地编译安装。解源文章总结了该过程的码包命令码步骤,以期帮助读者解决类似需求。解源
Linux系统版本:SUSE Linux Enterprise Server SP5 (aarch) - Kernel \r (\l)
GCC版本:gcc-4.8.5
步骤如下:
1,码包命令码源码下载
直接在Linux终端执行:wget ftp.gnu.org/gnu/gcc/gcc...
或手动下载:ftp://gcc.gnu.org/pub/gcc/infrastructure
选取对应的解源gcc版本下载。
2,码包命令码解压并进入目录
解压下载的解源tar包:tar -jxvf gcc-4.8.5.tar.bz2
进入解压后的目录:cd gcc-4.8.5
3,配置依赖库
联网情况下:cd gcc-4.8.5/
./contrib/download_prerequisites
无法联网时,码包命令码手动下载依赖库(如mpfr、解源gmp、mpc)并上传到指定目录,然后分别解压、重命名并链接。
4,创建编译存放目录
在gcc-4.8.5目录下执行:mkdir gcc-build-4.8.5
5,生成Makefile文件
cd gcc-build-4.8.5
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
推荐配置时,根据环境调整参数,如X_环境下的`--disable-libsanitizer`。
6,执行编译
make(可能耗时较长)
解决可能出现的电脑源码外泄问题,如libc_name_p和struct ucontext uc,通过参考gcc.gnu.org/git或直接覆盖相关文件。
7,安装GCC
在gcc-build-4.8.5目录下执行:make install
安装完成后,可直接解压并安装。
8,配置环境变量
执行命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/gcc-4.8.5/mpc:/root/gcc-4.8.5/gmp:/root/gcc-4.8.5/mpfr
确保路径一致,执行 source /etc/profile 使环境变量生效。
9,检查安装情况
通过`gcc -v`和`g++ -v`验证GCC版本。
,库升级
遇到动态库未找到问题时,需升级gcc库,通过查找和替换最新库文件解决。
,卸载系统自带的gcc
以root用户执行:rpm -qa |grep gcc | xargs rpm -e --nodeps
,修改ld.so.conf文件
编辑文件:vi /etc/ld.so.conf,在最下面添加实际路径,如/usr/local/lib和/usr/local/lib。
执行 ldconfig /etc/ld.so.conf。
,修改GCC链接
确保GCC及其相关工具的正确链接,使用`ll /usr/bin/gcc*`和`ll /usr/bin/g++*`检查链接结果。
至此,GCC源码编译安装流程完成,双卡源码可满足特定环境下的GCC版本需求。
å¦ä½å¨å·²å®è£ çsuselinux.2ä¸ å®è£ g++
EMAIL:mangohappy@qq.com
ä½ ç¡®å®éé¢æ²¡æå®è£ G++å
ç¨å½ä»¤æ¥çæ¯å¦å·²ç»å®è£ äº
rpm -qa|grep gcc
æ人ç»äºrpmçï¼æç»ä¸ªdebç,å¨è¿æ¥ç½ç»çæ åµä¸,ç¨root
apt-get install build-essential
æ
g++ *.cpp -o runfile //ç¼è¯C++ç¨åº
gcc *.c -o runfile //ç¼è¯Cç¨åº
cygwinæ¬æ¥å°±èªä»£äºgccç¼è¯å¨.
å½ä»¤è¡æ¨¡å¼è¿è¡ gcc 1.cç¼è¯æåå./a.outæ§è¡.
å®è£ g++ åæ¾ä¸å°g++å½ä»¤
ä½ å¯è½åå° /usr/bin/g++4.1 æè 类似çæ件 cd /usr/bin/ sudo ln -s g++4.1 g++ è¿æ ·å°±å¯ä»¥æ¾å°g++å½ä»¤äºã
ä½ ç¨LINUXåãå®è£ åç´æ¥å¯ä»¥å¨å½ä»¤è¡ä½¿ç¨ã
gccç®ä»
Linuxç³»ç»ä¸çgccï¼GNU C Compilerï¼æ¯GNUæ¨åºçåè½å¼ºå¤§ãæ§è½ä¼è¶çå¤å¹³å°ç¼è¯å¨ï¼æ¯GNUç代表ä½åä¹ä¸ãgccæ¯å¯ä»¥å¨å¤ç§ç¡¬ä½å¹³å°ä¸ç¼è¯åºå¯æ§è¡ç¨åºçè¶ çº§ç¼è¯å¨ï¼å ¶æ§è¡æçä¸ä¸è¬çç¼è¯å¨ç¸æ¯å¹³åæçè¦é«%~%ã
gccç¼è¯å¨è½å°CãC++è¯è¨æºç¨åºãæ±ç¨å¼ååºåç®æ ç¨åºç¼è¯ãè¿æ¥æå¯æ§è¡æ件ï¼å¦æ没æç»åºå¯æ§è¡æ件çååï¼gccå°çæä¸ä¸ªå为a.outçæ件ãå¨Linuxç³»ç»ä¸ï¼å¯æ§è¡æ件没æç»ä¸çåç¼ï¼ç³»ç»ä»æ件çå±æ§æ¥åºåå¯æ§è¡æ件åä¸å¯æ§è¡æ件ãègccåéè¿åç¼æ¥åºå«è¾å ¥æ件çç±»å«ï¼ä¸é¢æ们æ¥ä»ç»gccæéµå¾ªçé¨å约å®è§åã
.c为åç¼çæ件ï¼Cè¯è¨æºä»£ç æ件ï¼
.a为åç¼çæ件ï¼æ¯ç±ç®æ æ件ææçæ¡£æ¡åºæ件ï¼
.Cï¼.ccæ.cxx 为åç¼çæ件ï¼æ¯C++æºä»£ç æ件ï¼
.h为åç¼çæ件ï¼æ¯ç¨åºæå å«ç头æ件ï¼
.i 为åç¼çæ件ï¼æ¯å·²ç»é¢å¤çè¿çCæºä»£ç æ件ï¼
.ii为åç¼çæ件ï¼æ¯å·²ç»é¢å¤çè¿çC++æºä»£ç æ件ï¼
.m为åç¼çæ件ï¼æ¯Objective-Cæºä»£ç æ件ï¼
.o为åç¼çæ件ï¼æ¯ç¼è¯åçç®æ æ件ï¼
.s为åç¼çæ件ï¼æ¯æ±ç¼è¯è¨æºä»£ç æ件ï¼
.S为åç¼çæ件ï¼æ¯ç»è¿é¢ç¼è¯çæ±ç¼è¯è¨æºä»£ç æ件ã
gccçæ§è¡è¿ç¨
è½ç¶æ们称gccæ¯Cè¯è¨çç¼è¯å¨ï¼ä½ä½¿ç¨gccç±Cè¯è¨æºä»£ç æ件çæå¯æ§è¡æ件çè¿ç¨ä¸ä» ä» æ¯ç¼è¯çè¿ç¨ï¼èæ¯è¦ç»åå个ç¸äºå ³èçæ¥éª¤â¶é¢å¤ç(ä¹ç§°é¢ç¼è¯ï¼Preprocessing)ãç¼è¯(Compilation)ãæ±ç¼(Assembly)åè¿æ¥(Linking)ã
å½ä»¤gccé¦å è°ç¨cppè¿è¡é¢å¤çï¼å¨é¢å¤çè¿ç¨ä¸ï¼å¯¹æºä»£ç æ件ä¸çæ件å å«(include)ãé¢ç¼è¯è¯å¥(å¦å®å®ä¹defineç)è¿è¡åæãæ¥çè°ç¨cc1è¿è¡ç¼è¯ï¼è¿ä¸ªé¶æ®µæ ¹æ®è¾å ¥æ件çæ以.o为åç¼çç®æ æ件ãæ±ç¼è¿ç¨æ¯é对æ±ç¼è¯è¨çæ¥éª¤ï¼è°ç¨asè¿è¡å·¥ä½ï¼ä¸è¬æ¥è®²ï¼.S为åç¼çæ±ç¼è¯è¨æºä»£ç æ件åæ±ç¼ã.s为åç¼çæ±ç¼è¯è¨æ件ç»è¿é¢ç¼è¯åæ±ç¼ä¹åé½çæ以.o为åç¼çç®æ æ件ãå½ææçç®æ æ件é½çæä¹åï¼gccå°±è°ç¨ldæ¥å®ææåçå ³é®æ§å·¥ä½ï¼è¿ä¸ªé¶æ®µå°±æ¯è¿æ¥ãå¨è¿æ¥é¶æ®µï¼ææçç®æ æ件被å®æå¨å¯æ§è¡ç¨åºä¸çæ°å½çä½ç½®ï¼åæ¶ï¼è¯¥ç¨åºæè°ç¨å°çåºå½æ°ä¹ä»åèªæå¨çæ¡£æ¡åºä¸è¿å°åéçå°æ¹ã
gccçåºæ¬ç¨æ³åé项
å¨ä½¿ç¨gccç¼è¯å¨çæ¶åï¼æä»¬å¿ é¡»ç»åºä¸ç³»åå¿ è¦çè°ç¨åæ°åæ件å称ãgccç¼è¯å¨çè°ç¨åæ°å¤§çº¦æå¤ä¸ªï¼å ¶ä¸å¤æ°åæ°æ们å¯è½æ ¹æ¬å°±ç¨ä¸å°ï¼è¿éåªä»ç»å ¶ä¸æåºæ¬ãæ常ç¨çåæ°ã
gccæåºæ¬çç¨æ³æ¯â¶gcc [options] [filenames]
å ¶ä¸optionså°±æ¯ç¼è¯å¨æéè¦çåæ°ï¼filenamesç»åºç¸å ³çæ件å称ã
-cï¼åªç¼è¯ï¼ä¸è¿æ¥æ为å¯æ§è¡æ件ï¼ç¼è¯å¨åªæ¯ç±è¾å ¥ç.cçæºä»£ç æ件çæ.o为åç¼çç®æ æ件ï¼é常ç¨äºç¼è¯ä¸å å«ä¸»ç¨åºçåç¨åºæ件ã
-o output_filenameï¼ç¡®å®è¾åºæ件çå称为output_filenameï¼åæ¶è¿ä¸ªå称ä¸è½åæºæ件ååãå¦æä¸ç»åºè¿ä¸ªé项ï¼gccå°±ç»åºé¢è®¾çå¯æ§è¡æ件a.outã
-gï¼äº§ç符å·è°è¯å·¥å ·(GNUçgdb)æå¿ è¦ç符å·èµè®¯ï¼è¦æ³å¯¹æºä»£ç è¿è¡è°è¯ï¼æä»¬å°±å¿ é¡»å å ¥è¿ä¸ªé项ã
-Oï¼å¯¹ç¨åºè¿è¡ä¼åç¼è¯ãè¿æ¥ï¼éç¨è¿ä¸ªé项ï¼æ´ä¸ªæºä»£ç ä¼å¨ç¼è¯ãè¿æ¥è¿ç¨ä¸è¿è¡ä¼åå¤çï¼è¿æ ·äº§ççå¯æ§è¡æ件çæ§è¡æçå¯ä»¥æé«ï¼ä½æ¯ï¼ç¼è¯ãè¿æ¥çé度就ç¸åºå°è¦æ ¢ä¸äºã
-O2ï¼æ¯-Oæ´å¥½çä¼åç¼è¯ãè¿æ¥ï¼å½ç¶æ´ä¸ªç¼è¯ãè¿æ¥è¿ç¨ä¼æ´æ ¢ã
-Idirnameï¼å°dirnameææåºçç®å½å å ¥å°ç¨åºå¤´æ件ç®å½å表ä¸ï¼æ¯å¨é¢ç¼è¯è¿ç¨ä¸ä½¿ç¨çåæ°ãCç¨åºä¸ç头æ件å å«ä¸¤ç§æ åµâ¶
A)#include
B)#include âmyinc.hâ
å ¶ä¸ï¼A类使ç¨å°æ¬å·(< >)ï¼B类使ç¨åå¼å·(â â)ã对äºAç±»ï¼é¢å¤çç¨åºcppå¨ç³»ç»é¢è®¾å å«æ件ç®å½(å¦/usr/include)ä¸æ寻ç¸åºçæ件ï¼è对äºBç±»ï¼cppå¨å½åç®å½ä¸æ寻头æ件ï¼è¿ä¸ªé项çä½ç¨æ¯åè¯cppï¼å¦æå¨å½åç®å½ä¸æ²¡ææ¾å°éè¦çæ件ï¼å°±å°æå®çdirnameç®å½ä¸å»å¯»æ¾ãå¨ç¨åºè®¾è®¡ä¸ï¼å¦ææ们éè¦çè¿ç§å å«æ件åå«åå¸å¨ä¸åçç®å½ä¸ï¼å°±éè¦é个使ç¨-Ié项ç»åºæ索路å¾ã
-Ldirnameï¼å°dirnameææåºçç®å½å å ¥å°ç¨åºå½æ°æ¡£æ¡åºæ件çç®å½å表ä¸ï¼æ¯å¨è¿æ¥è¿ç¨ä¸ä½¿ç¨çåæ°ãå¨é¢è®¾ç¶æä¸ï¼è¿æ¥ç¨åºldå¨ç³»ç»çé¢è®¾è·¯å¾ä¸(å¦/usr/lib)寻æ¾æéè¦çæ¡£æ¡åºæ件ï¼è¿ä¸ªé项åè¯è¿æ¥ç¨åºï¼é¦å å°-Læå®çç®å½ä¸å»å¯»æ¾ï¼ç¶åå°ç³»ç»é¢è®¾è·¯å¾ä¸å¯»æ¾ï¼å¦æå½æ°åºåæ¾å¨å¤ä¸ªç®å½ä¸ï¼å°±éè¦ä¾æ¬¡ä½¿ç¨è¿ä¸ªé项ï¼ç»åºç¸åºçåæ¾ç®å½ã
-lnameï¼å¨è¿æ¥æ¶ï¼è£ è½½åå为âlibname.aâçå½æ°åºï¼è¯¥å½æ°åºä½äºç³»ç»é¢è®¾çç®å½æè ç±-Lé项确å®çç®å½ä¸ãä¾å¦ï¼-lm表示è¿æ¥å为âlibm.aâçæ°å¦å½æ°åºã
ä¸é¢æ们ç®è¦ä»ç»äºgccç¼è¯å¨æ常ç¨çåè½å主è¦åæ°é项ï¼æ´ä¸ºè¯¦å°½çèµæå¯ä»¥åçLinuxç³»ç»çèæºå¸®å©ã
åå®æ们æä¸ä¸ªç¨åºå为test.cçCè¯è¨æºä»£ç æ件ï¼è¦çæä¸ä¸ªå¯æ§è¡æ件ï¼æç®åçåæ³å°±æ¯â¶
gcc test.c
è¿æ¶ï¼é¢ç¼è¯ãç¼è¯è¿æ¥ä¸æ¬¡å®æï¼çæä¸ä¸ªç³»ç»é¢è®¾çå为a.outçå¯æ§è¡æ件ï¼å¯¹äºç¨ä¸ºå¤æçæ åµï¼æ¯å¦æå¤ä¸ªæºä»£ç æ件ãéè¦è¿æ¥æ¡£æ¡åºæè æå ¶ä»æ¯è¾ç¹å«çè¦æ±ï¼å°±è¦ç»å®éå½çè°ç¨é项åæ°ãåçä¸ä¸ªç®åçä¾åã
æ´ä¸ªæºä»£ç ç¨åºç±ä¸¤ä¸ªæ件testmain.c åtestsub.cç»æï¼ç¨åºä¸ä½¿ç¨äºç³»ç»æä¾çæ°å¦åºï¼åæ¶å¸æç»åºçå¯æ§è¡æ件为testï¼è¿æ¶çç¼è¯å½ä»¤å¯ä»¥æ¯â¶
gcc testmain.c testsub.c â¡lm â¡o test
å ¶ä¸ï¼-lm表示è¿æ¥ç³»ç»çæ°å¦åºlibm.aï¼è¿ä¸ªè¿ç¨å¯ä»¥ç¨å¾-1æ¡å¾æè¿°ã
gccçé误类åå对ç
gccç¼è¯å¨å¦æåç°æºç¨åºä¸æé误ï¼å°±æ æ³ç»§ç»è¿è¡ï¼ä¹æ æ³çææç»çå¯æ§è¡æ件ã为äºä¾¿äºä¿®æ¹ï¼gccç»åºé误èµè®¯ï¼æä»¬å¿ é¡»å¯¹è¿äºé误èµè®¯é个è¿è¡åæãå¤çï¼å¹¶ä¿®æ¹ç¸åºçè¯è¨ï¼æè½ä¿è¯æºä»£ç çæ£ç¡®ç¼è¯è¿æ¥ãgccç»åºçé误èµè®¯ä¸è¬å¯ä»¥å为å大类ï¼ä¸é¢æ们åå«è®¨è®ºå ¶äº§ççåå å对çã
第ä¸ç±»â¶Cè¯æ³é误
é误èµè®¯â¶æ件source.cä¸ç¬¬nè¡æè¯æ³é误(syntex errror)ãè¿ç§ç±»åçé误ï¼ä¸è¬é½æ¯Cè¯è¨çè¯æ³é误ï¼åºè¯¥ä»ç»æ£æ¥æºä»£ç æ件ä¸ç¬¬nè¡å该è¡ä¹åçç¨åºï¼ææ¶ä¹éè¦å¯¹è¯¥æ件æå å«ç头æ件è¿è¡æ£æ¥ãæäºæ åµä¸ï¼ä¸ä¸ªå¾ç®åçè¯æ³é误ï¼gccä¼ç»åºä¸å¤§å é误ï¼æ们æ主è¦çæ¯è¦ä¿ææ¸ éç头èï¼ä¸è¦è¢«å ¶ååï¼å¿ è¦çæ¶åååèä¸ä¸Cè¯è¨çåºæ¬ææã
第äºç±»â¶å¤´æ件é误
é误èµè®¯â¶æ¾ä¸å°å¤´æ件head.h(Can not find include file head.h)ãè¿ç±»é误æ¯æºä»£ç æ件ä¸çå å«å¤´æ件æé®é¢ï¼å¯è½çåå æ头æ件åé误ãæå®ç头æ件æå¨ç®å½åé误çï¼ä¹å¯è½æ¯é误å°ä½¿ç¨äºåå¼å·åå°æ¬å·ã
第ä¸ç±»â¶æ¡£æ¡åºé误
é误èµè®¯â¶è¿æ¥ç¨åºæ¾ä¸å°æéçå½æ°åºï¼ä¾å¦â¶
ld: -lm: No such file or directory
è¿ç±»é误æ¯ä¸ç®æ æ件ç¸è¿æ¥çå½æ°åºæé误ï¼å¯è½çåå æ¯å½æ°åºåé误ãæå®çå½æ°åºæå¨ç®å½å称é误çï¼æ£æ¥çæ¹æ³æ¯ä½¿ç¨findå½ä»¤å¨å¯è½çç®å½ä¸å¯»æ¾ç¸åºçå½æ°åºåï¼ç¡®å®æ¡£æ¡åºåç®å½çå称并修æ¹ç¨åºä¸åç¼è¯é项ä¸çå称ã
第åç±»â¶æªå®ä¹ç¬¦å·
é误èµè®¯â¶ææªå®ä¹ç符å·(Undefined symbol)ãè¿ç±»é误æ¯å¨è¿æ¥è¿ç¨ä¸åºç°çï¼å¯è½æ两ç§åå â¶ä¸æ¯ä½¿ç¨è èªå·±å®ä¹çå½æ°æè å ¨å±åéæå¨æºä»£ç æ件ï¼æ²¡æ被ç¼è¯ãè¿æ¥ï¼æè å¹²èè¿æ²¡æå®ä¹ï¼è¿éè¦ä½¿ç¨è æ ¹æ®å®é æ åµä¿®æ¹æºç¨åºï¼ç»åºå ¨å±åéæè å½æ°çå®ä¹ä½ï¼äºæ¯æªå®ä¹ç符å·æ¯ä¸ä¸ªæ åçåºå½æ°ï¼å¨æºç¨åºä¸ä½¿ç¨äºè¯¥åºå½æ°ï¼èè¿æ¥è¿ç¨ä¸è¿æ²¡æç»å®ç¸åºçå½æ°åºçå称ï¼æè æ¯è¯¥æ¡£æ¡åºçç®å½å称æé®é¢ï¼è¿æ¶éè¦ä½¿ç¨æ¡£æ¡åºç»´æ¤å½ä»¤aræ£æ¥æ们éè¦çåºå½æ°å°åºä½äºåªä¸ä¸ªå½æ°åºä¸ï¼ç¡®å®ä¹åï¼ä¿®æ¹gccè¿æ¥é项ä¸ç-lå-L项ã
æé¤ç¼è¯ãè¿æ¥è¿ç¨ä¸çé误ï¼åºè¯¥è¯´è¿åªæ¯ç¨åºè®¾è®¡ä¸æç®åãæåºæ¬çä¸ä¸ªæ¥éª¤ï¼å¯ä»¥è¯´åªæ¯å¼äºä¸ªå¤´ãè¿ä¸ªè¿ç¨ä¸çé误ï¼åªæ¯æ们å¨ä½¿ç¨Cè¯è¨æè¿°ä¸ä¸ªç®æ³ä¸æ产ççé误ï¼æ¯æ¯è¾å®¹ææé¤çãæ们åä¸ä¸ªç¨åºï¼å°ç¼è¯ãè¿æ¥éè¿ä¸ºæ¢ï¼åºè¯¥è¯´ååå¼å§ï¼ç¨åºå¨è¿è¡è¿ç¨ä¸æåºç°çé®é¢ï¼æ¯ç®æ³è®¾è®¡æé®é¢ï¼è¯´å¾æ´çç¹æ¯å¯¹é®é¢ç认è¯åç解ä¸å¤ï¼è¿éè¦æ´å æ·±å ¥å°æµè¯ãè°è¯åä¿®æ¹ãä¸ä¸ªç¨åºï¼ç¨ä¸ºå¤æçç¨åºï¼å¾å¾è¦ç»è¿å¤æ¬¡çç¼è¯ãè¿æ¥åæµè¯ãä¿®æ¹ãä¸é¢æ们å¦ä¹ çç¨åºç»´æ¤ãè°è¯å·¥å ·åçæ¬ç»´æ¤å°±æ¯å¨ç¨åºè°è¯ãæµè¯è¿ç¨ä¸ä½¿ç¨çï¼ç¨æ¥è§£å³è°æµé¶æ®µæåºç°çé®é¢ã
å¸æå¯¹ä½ æ帮å©ã
SUSE加入欧拉(openEuler)开源社区,打造本地化操作系统基石
SUSE加入欧拉(openEuler)开源社区,共同发布数硕Linux,引发国内关注。
数硕Linux的诞生,旨在解决Linux源代码库和补丁包位置对安全可控性的影响问题。该操作系统是SUSE的中文翻译,通过与openEuler社区合作,强化了其企业级Linux开发经验,如性能优化、版本构建等功能,为openEuler社区带来了巨大提升。
云计算技术进入新阶段,开源协同开发模式成为主流。国电南瑞采用结合openEuler技术的麒麟信安操作系统,成功打造智能电网调度控制系统,部署在多个站点,为电力系统提供稳定运行保障。
容器技术和微服务架构成为企业低成本开发、灵活适配和管理调度编排的需求新选择。SUSE通过收购Rancher,成为企业级Linux、容器、Kubernetes、opc协议源码边缘计算领域的首选开源公司,创新虚拟化和云原生之间的统一管理、调度和编排技术。
openEuler作为开放社区,欢迎SUSE加入,通过与SUSE合作,openEuler工程能力得到巨大提升,同时国内社区也从SUSE立足中国的发展中获益。openEuler当前版本覆盖多种指令集,支持多样化算力和边缘计算、嵌入式电子设备等新场景,加速研究成果转化,让其在企业中真正可用。
SUSE在工程方面积累了丰富的经验,加入欧拉开源社区,使欧拉开源操作系统对高性能介质的支持上了一个新台阶。SUSE与openEuler合作,通过贡献经验与技术,推动欧拉开源操作系统的发展。
Linux操作系统自年发布以来,成为学术交流和技术创新的重要平台。在企业上云趋势下,选择开放、兼容、自由的源码安装jenkins解决方案成为关键,云计算技术进入全新阶段。数硕Linux的出现,标志着SUSE与openEuler社区的合作,为欧拉开源社区和行业客户带来了重大利好。
数硕Linux通过整合SUSE的工程经验和Rancher相关云原生产品技术,推动欧拉开源操作系统在服务器、云、边缘计算和容器各方向的持续创新。SUSE不仅参与国产Linux操作系统国内大循环,还推动国内国际双循环,携手中国开源走向世界。
suse linux 怎么装软件
可以下载安装也可以网络安装。网络安装你必须在yast里添加尽可能多的安装源,也可以一健安装,去http://software.opensuse.org/search搜索,点击就可以安装了。下载安装就有不同格式的安装包了,给你复制粘贴了:先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。
RPM格式软件包的安装
1.简介
几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。
RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。
大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i.rpm 。
2.安装RPM包软件
# rpm -ivh MYsoftware-1.2 -1.i.rpm
RPM命令主要参数:
-i 安装软件。
-t 测试安装,不是真的安装。
-p 显示安装进度。
-f 忽略任何错误。
-U 升级安装。
-v 检测套件是否正确安装。
这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
3.卸载软件
# rpm -e 软件名
需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i.rpm这个包时,应执行:
#rpm -e software
4.强行卸载RPM包
有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:
## rpm -e xsnow
error: removing these packages would break dependencies:
/usr/XR6/bin/xsnow is needed by x-amusements-1.0-1
在这种情况下,可以用--force选项重新安装xsnow:
## rpm -ivh --force xsnow-1.-1.i.rpm
xsnow
这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。详细情况请查看年《开放系统世界》第期。
5.安装.src.rpm类型的文件
目前RPM有两种模式,一种是已经过编码的(i.rpm),一种是未经编码的(src.rpm)。
rpm --rebuild Filename.src.rpm
这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i,具体情况和Linux发行版本有关。然后执行下面代码即可:
rpm -ivh /usr/src/regflag/RPMS/i/Filename.rpm
使用deb打包的软件安装
deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
1. 安装
# dpkg -i MYsoftware-1.2.-1.deb
2. 卸载
# dpkg -e MYsoftware
使用源代码进行软件安装
和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。
现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail.org )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:
1.解压数据包
源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同.
2.编译软件
成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。
在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。
通常的安装方法是从安装包的目录执行以下命令:
gunzip soft1.tar.gz
cd soft1
#. /configure #配置#
make #调用make#
make install #安装源代码#
删除安装时产生的临时文件:
#make clean
卸载软件:
#make uninstall
有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。
.bin文件安装
扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux_libc6_i_a1.bin)就非常简单了:
#chmod +x r1p1_linux_libc6_i_a1.bin
./ r1p1_linux_libc6_i_a1.bin
接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。
.bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。
Linux绿色软件
Linux也有一些绿色软件,不过不是很多。Linux系统提供一种机制:自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口,或者是中间件。程序员编写的程序可以直接拷贝分发,不用安装,只要点击程序的图标,访问操作系统提供的接口,设定好就可以工作。若要删除软件,直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。