1.linux系统主流的几个版本有什么区别?
2.å¦ä½å¨UbuntuåLinuxMintä¸å®è£
Python 3.6.0
3.å¦ä½å¨ Ubuntu/Debian/Linux Mint ä¸ç¼è¯åå®è£
wxWidgets
linux系统主流的几个版本有什么区别?
1、Arch Linux也许 Arch 最主要的特点之一就是,它是一个独立的开放源代码的发行版(这意味着它不基于任何其他的发行版),
由于 Arch 采用滚动发布模式,因此你只要使用 pacman 执行定期的系统更新就可以获得最新的软件。
2、反通道源码 CentOS
虽然社区企业操作系统(Community ENTerprise Operating System)是用于 Linux 服务器的最有名、最常用的发行版,但是它的桌面版本还在继续不断完善中。
另外,它的稳健性、稳定性、和 % 的二进制兼容性,也使之成为了 Red Hat Enterprise Linux 的头号备选——特别是对云 VPS 供应商而言——也许这就是发行版持续增长的主要原因之一。
3、Manjaro
基于 Arch Linux 的 Manjaro,目标在于利用让 Arch 成为一个伟大发行版的功能优势,同时提供一个更舒适的安装和运行体验,无论是水产门户源码新手还是有经验的 Linux 用户,都可以开箱即用。
Manjaro 预装了桌面环境、图形应用程序(包括软件中心)和用于播放音频和视频的多媒体解码器。
4、 Mageia
作为现在已经消失的 Mandriva Linux 的衍生品,受非盈利性组织支持的 Mageia 诞生于年,自那时起,成为了台式机和服务器上的著名的安全而稳定的 Linux 发行版。
5. Fedora
由 Red Hat 支持的共享影视app 源码 Fedora Project 构建和维护,这是一个世界性的志愿者和开发人员社区,Fedora 之所以能够持续几年成为使用最广泛的发行版之一,是因为它有三个主要的可用版本:Workstation (用于台式机) ,Server 和 Cloud 镜像,以及ARM 版本用于基于 ARM(通常为无操控外设)的服务器。
不过,也许 Fedora 最显着的特点是,它总是在率先将新的软件包版本和技术整合到发行版中。此外,php免费精品源码 Red Hat Enterprise Linux 和 CentOS 的新版本都是基于 Fedora 的。
6、openSUSE
既是一个滚动发布版本,又可当作是一个独立的定期发布版本,openSUSE 根据其开发人员的不同,是系统管理员、开发人员和桌面用户 Linux 的发行版之选,无论你的经验水平处于哪种级别(受到初学者和极客们的一致好评)。最重要的java 动态报表 源码是,著名又屡获殊荣的 SUSE Linux Enterprise 产品基于 openSUSE。
7、 Ubuntu
Canonical,这个 Ubuntu 背后的公司,一直致力于使 Ubuntu 成为一个流行和普遍的发行版,并且现在你可在智能手机、平板电脑、个人电脑、服务器和云 VPS 的上面看到 Ubuntu 的身影。
此外,Ubuntu 基于 Debian,并且是一款非常受新用户欢迎的发行版——这可能就是 Ubuntu 在一段时间内持续增长的原因。虽然在这个排名中没有计算进来,但 Ubuntu 是其他 Canonical 系列发行版,如 Kubuntu、Xubuntu、Lubuntu 的基础。
8. Debian
作为一个坚如磐石的 Linux 发行版,Debian 每2年发布新的稳定版本,并且你放心,每个版本都已经过彻底的测试。
虽然它主要用于服务器上,但现在它的桌面版本已经在功能和外观上得到了明显的改善。
9、 Linux Mint
Linux Mint 的著名口号 “From freedom came elegance” ,不只是说说而已。基于 Ubuntu 的 Linux Mint,是一个稳定、功能强大、完整、易于使用的 Linux 发行版——我们还有很多很多的褒义词可以用来形容 Mint。
Mint 最显著的特点之一是,在安装过程中允许你从一个列表中选择桌面环境,并且你可以放心,一旦它安装完了之后,你无需任何额外的配置步骤就能播放音乐和视频文件,因为标准安装提供了多媒体解码器的开箱即用。
å¦ä½å¨UbuntuåLinuxMintä¸å®è£ Python 3.6.0
Python 3.6.0æ¯å¨ç¼åæç¨æ¶çææ°ç¨³å®çæ¬ã æ¤Pythonçæ¬å¯ä¾ä¸è½½åå®è£ ã æ¬æå°å¸®å©æ¨å¨UbuntuåLinuxmintæä½ç³»ç»ä¸å®è£ Python 3.6.0ã è¦äºè§£è¿ä¸ªçæ¬çæ´å¤ä¿¡æ¯ï¼è¯·è®¿é®Pythonå®æ¹ç½ç«ã
æ¥éª¤1 â å®è£ æéçå
å¨å®è£ Pythonä¹åï¼è¯·ä½¿ç¨ä»¥ä¸å½ä»¤æ¥å®è£ Pythonçå å³æ¡ä»¶ã
$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
æ¥éª¤2 â ä¸è½½Python 3.6.0
ä»pythonå®æ¹ç½ç«ä¸è½½Python使ç¨ä¸é¢çå½ä»¤ã æ¨ä¹å¯ä»¥ä¸è½½ææ°çæ¬ä»£æ¿ä¸é¢æå®ã
$ cd /usr/src
$ wget
ç°å¨è§£åä¸è½½ç软件å ã
$ sudo tar xzf Python-3.6.0.tgz
第3æ¥ â ç¼è¯Pythonæº
ç°å¨ä½¿ç¨ä¸é¢çå½ä»¤æ¥ä½¿ç¨altinstallå¨ä½ çç³»ç»ä¸ç¼è¯pythonæºä»£ç ã
$ cd Python-3.6.0
$ sudo ./configure
$ sudo make altinstall
make altinstall ç¨äºé²æ¢æ¿æ¢é»è®¤çpythonäºè¿å¶æ件/ usr / bin / pythonã
æ¥éª¤4 â æ£æ¥Pythonçæ¬
æåï¼æ¨å·²ç»æåå°å¨ç³»ç»ä¸å®è£ äºPython 3.6ã 让æ们使ç¨ä¸é¢çå½ä»¤æ£æ¥å®è£ çpythonççæ¬
# python3.6 -V
Python 3.6.0
å¦ä½å¨ Ubuntu/Debian/Linux Mint ä¸ç¼è¯åå®è£ wxWidgets
wxWidgets
wxWidgetsæ¯ä¸ä¸ªç¨åºå¼åæ¡æ¶/åºï¼ å è®¸ä½ å¨WindowsãMacãLinuxä¸ä½¿ç¨ç¸åç代ç 跨平å°å¼åãå®ä¸»è¦ç¨C++åæï¼ä½ä¹å¯ä»¥ä¸å ¶ä»è¯è¨ç»å®æ¯å¦PythonãPerlãRubyã
æ¬æç¨ä¸æå°åä½ å±ç¤ºå¦ä½å¨åºäºDebiançlinuxä¸å¦UbuntuåLinux Mintä¸ç¼è¯wxwidgets 3.0+ã
ä»æºç ç¼è¯wxWidgets并ä¸å°é¾ï¼ä» ä» éè¦å åéãåºå¯ä»¥æä¸åçæ¹å¼æ¥ç¼è¯ï¼æ¯å¦éææè å¨æåºã
1. ä¸è½½ wxWidgets
第ä¸æ¥ä½ éè¦ä»wxwidgets.orgä¸è½½wxWidgetsæºç æ件ã
åå®åï¼è§£åå°ç®å½ã
2. 设置ç¼è¯ç¯å¢
è¦ç¼è¯wxwidgetsï¼æ们éè¦ä¸äºå·¥å ·å æ¬C++ç¼è¯å¨ï¼å¨Linuxä¸æ¯g++ãææè¿äºå¯ä»¥éè¿apt-getå·¥å ·ä»ä»åºä¸å®è£ ã
æ们è¿éè¦wxWidgetsä¾èµçGTKå¼ååºã
$ sudo apt-get install libgtk-3-dev build-essential checkinstall
è¿ä¸ªå«åcheckinstallçå·¥å ·å 许æ们为wxwidgetså建ä¸ä¸ªå®è£ å ï¼è¿æ ·ä¹åå°±å¯ä»¥è½»æ¾ç使ç¨å 管çå¨æ¥å¸è½½ã
3. ç¼è¯ wxWidgets
è¿å ¥å°wxWidgets解ååçç®å½ã为äºä¿ææ¸ æ´ï¼å建ä¸ä¸ªç¼è¯ç¨çç®å½ã
$ mkdir gtk-build
$ cd gtk-build/
ç°å¨è¿è¡configureåmakeå½ä»¤ãæ¯ä¸ªå°è±è´¹ä¸äºæ¶é´æ¥å®æã
$ ../configure --disable-shared --enable-unicode
$ make
"--disable-shared"é项å°ä¼ç¼è¯éæåºèä¸æ¯å¨æåºã
makeå½ä»¤å®æåï¼ç¼è¯å°±æåäºãæ¯æ¶åå®è£ wxWidgetså°æ£ç¡®çç®å½ã
æ´å¤ä¿¡æ¯è¯·åèinstall.txtåreadme.txtï¼è¿å¯å¨wxwidgetsä¸ç/docs/gtk/ç®å½ä¸æ¾å°ã
4. å®è£ checkinstall
ç°å¨æ们ä¸ä½¿ç¨"make install"å½ä»¤ï¼æ们使ç¨checkinstallå½ä»¤æ¥å建ä¸ä¸ªwxwidgetsçdebå®è£ å ãè¿è¡å½ä»¤ï¼
$ sudo checkinstall
checkinstallä¼è¯¢é®å 个é®é¢ï¼è¯·ä¿è¯å¨æé®åæä¾ä¸ä¸ªçæ¬å·ï¼å¦åå°ä¼å¤±è´¥ã
å®æè¿ä¸ååï¼wxWidgetså°±å®è£ 好äºï¼debæ件ä¹ä¼å建å¨ç¸åçç®å½ä¸ã
5. 追踪å®è£ çæ件
å¦æä½ æ³è¦æ£æ¥æ件å®è£ çä½ç½®ï¼ä½¿ç¨dpkgå½ä»¤åé¢è·ä¸checkinstallæä¾çå åã
$ dpkg -L package_name
/.
/usr
/usr/local
/usr/local/lib
/usr/local/lib/libwx_baseu-3.0.a
/usr/local/lib/libwx_gtk3u_propgrid-3.0.a
/usr/local/lib/libwx_gtk3u_html-3.0.a
/usr/local/lib/libwxscintilla-3.0.a
/usr/local/lib/libwx_gtk3u_ribbon-3.0.a
/usr/local/lib/libwx_gtk3u_stc-3.0.a
/usr/local/lib/libwx_gtk3u_qa-3.0.a
/usr/local/lib/libwx_baseu_net-3.0.a
/usr/local/lib/libwxtiff-3.0.a
6. ç¼è¯ç¤ºä¾
ç¼è¯wxWidgetså®æåå°±å¯ä»¥é©¬ä¸ç¼è¯ç¤ºä¾ç¨åºäºãå¨ç¸åçç®å½ä¸ï¼ä¸ä¸ªæ°çsampleç®å½å·²ç»å建äºã
è¿å ¥å®å¹¶è¿è¡ä¸é¢çå½ä»¤
$ compile samples
$ cd samples/
$ make
makeå½ä»¤å®æåï¼è¿å ¥sample åç®å½ï¼è¿éå°±æä¸ä¸ªå¯ä»¥é©¬ä¸è¿è¡çDemoç¨åºäºã
7. ç¼è¯ä½ ç第ä¸ä¸ªç¨åº
ä½ å®æç¼è¯demoç¨åºåï¼å¯ä»¥åä½ èªå·±çç¨åºæ¥ç¼è¯äºãè¿ä¸ªä¹å¾ç®åã
åè®¾ä½ ç¨çæ¯C++ï¼è¿æ ·çè¯ä½ è¿å¯ä»¥ä½¿ç¨ç¼è¾å¨çé«äº®ç¹æ§ãæ¯å¦geditãkateãkwriteççãæè ç¨å ¨åè½çIDEåGeanyãCodeliteãCodeblocksççã
ç¶èä½ ç第ä¸ä¸ªç¨åºåªéè¦ç¨ä¸ä¸ªææ¬ç¼è¾å¨æ¥å¿«éå®æã
å¦ä¸ï¼
#include<wx/wx.h>
classSimple:public wxFrame
{
public:
Simple(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(,))
{
Centre();
}
};
classMyApp:public wxApp
{
public:
boolOnInit()
{
Simple*simple =newSimple(wxT("Simple"));
simple->Show(true);
returntrue;
}
};
wxIMPLEMENT_APP(MyApp);
ç°å¨ä¿å并ç¨ä¸é¢çå½ä»¤ç¼è¯ã
# compile
$ g++ basic.cpp `wx-config --cxxflags --libs std`-o program
# run
$ ./program