1. 如何解決源碼包安裝時的依賴性問題
不管是初步跨入linux殿堂的新手,還是具有多年經驗的專家,在安裝或編譯軟體包的過程中或多或少的都會遇到包的依賴問題,從而導致安裝過程無法繼續,比如管理員在安裝LAMP時,包需要libgd.so文件,而這個文件屬於GD軟體包。但是在安裝GD軟體包時,可能這個軟體包跟其他軟體包又具有依賴關系,又需要安裝其他軟體包才行。這時有的管理員便失去耐心。在遇到這種Linux軟體包依賴關系問題時,該如何解決呢?在談這個具體的措施之前,先跟大家聊聊Linux系統里的軟體依賴性問題。
一、什麼是依賴性
程序依賴於程序代碼的共享庫,以便它們可以發出系統調用將輸出發送到設備或打開文件等(共享庫存在於許多方面,而不只局限於系統調用)。沒有共享庫,每次程序員開發一個新的程序,每個程序員都需要從頭開始重寫這些基本的系統操作。當編譯程序時,程序員將他的代碼鏈接到這些庫。如果鏈接是靜態的,編譯後的共享庫對象代碼就添加到程序執行文件中;如果是動態的,編譯後的共享庫對象代碼只在運行時需要它時由程序員載入。動態可執行文件依賴於正確的共享庫或共享對象來進行操作。rpm依賴性嘗試在安裝時強制實施動態可執行文件的共享對象需求,以便在以後當程序運行時不會有與動態鏈接過程有關的任何問題。
注意:還有一種類型的依賴性,它基於顯式的條目,rpm通過程序員將該依賴性強加到rpm配置文件中,但目前我們不關心這種類型的依賴性,這種依賴性比較容易解決。這里將重點放在rpm強制實施的更加復雜的共享對象依賴性。
二、動態可執行文件和共享對象
動態可執行文件使用最初編譯和鏈接程序時使用的庫文件的共享對象名稱來查找共享對象。它們在少數的幾個標准位置查找,比如在/lib和/usr/lib目錄及在LD_LIBRARY_PATH環境變數(主要用於指定查找共享庫,比如我們在安裝Oracle時指定路徑,exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib)指定的目錄中。順便提一下,在這些庫目錄中找到的共享對象可能不是真正的文件;它們可能是指向位於其他位置的真實庫文件的符號鏈接(但通常仍舊在標准庫目錄的一個目錄中)。至少從系統管理員的觀點是在用於創建共享庫文件的共享庫軟體包的名稱和共享庫文件的名稱之間通常沒有什麼關系。例如,GLIBC2.3軟體包用於創建libc.so.6共享庫文件。也從本示例中注意到,添加到共享庫文件名結束的版本號(.6)跟用於創建它的版本號(2.3)沒有關系。這是由共享庫軟體包開發人員有意完成的,以便GLIBC的新版本可以重用相同的共享庫文件名libc.so.6。這允許您在系統上載入新版本的GLIBC,而不用中斷動態鏈接到lib.so.6共享庫文件的所有程序,當然假定新版本的GLIBC向後與動態可執行文件最初所鏈接的老版本GLIBC兼容。因此,即使庫文件或共享對象文件有與它們相關的版本號,這些版本號也不能幫助你確定他們來自哪個版本的共享軟體包。
注意:當將whatprovides選項用於rpm查詢命令時,可以獲得有關使用rpm軟體包載入到系統的現有共享對象的信息。這種混亂是由下面的事實造成的:單個共享庫文件可能支持某個范圍的共享庫軟體包版本。例如,要檢查soname庫文件/lib/libc.so.6支持的GLIBC共享庫軟體包,運行下面的命令:
#objmp--all-headers/lib/libc.so.6|less
向下滾動此報告,直到到達Versiondefinitions:部分,以便查看libc.so.6共享庫文件支持哪些GLIBC版本:
Versiondefinitions:
10x010x0865f4e6libc.so.6
20x000x0d696910GLIBC_2.0
30x000x0d696911GLIBC_2.1
GLIBC_2.0
40x000x09691f71GLIBC_2.1.1
GLIBC_2.1
50x000x09691f72GLIBC_2.1.2
GLIBC_2.1.1
60x000x09691f73GLIBC_2.1.3
GLIBC_2.1.2
70x000x0d696912GLIBC_2.2
GLIBC_2.1.3
80x000x09691a71GLIBC_2.2.1
GLIBC_2.2
90x000x09691a72GLIBC_2.2.2
GLIBC_2.2.1
100x000x09691a73GLIBC_2.2.3
GLIBC_2.2.2
110x000x09691a74GLIBC_2.2.4
GLIBC_2.2.3
120x000x09691a76GLIBC_2.2.6
GLIBC_2.2.4
130x000x0d696913GLIBC_2.3
GLIBC_2.2.6
140x000x09691972GLIBC_2.3.2
GLIBC_2.3
150x000x09691973GLIBC_2.3.3
GLIBC_2.3.2
160x000x09691974GLIBC_2.3.4
GLIBC_2.3.3
170x000x0d696914GLIBC_2.4
GLIBC_2.3.4
180x000x0d696915GLIBC_2.5
GLIBC_2.4
190x000x0963cf85GLIBC_PRIVATE
GLIBC_2.5
200x000x0b792650GCC_3.0
在本示例中,1ibc.so.6共享庫文件支持原先為GLIBC版本2.0到2.5而開發的所有動態執行文件。注意:也可以使用objmp命令來從共享庫文件中提取soname,命令如下所示:
#objmp--all-headers/lib/libcrypto.so.0.9.8b|grepSONAME
SONAMElibcrypto.so.6
objmp:/lib/libcrypto.so.0.9.8b:
接下來,將討論rpm軟體包是如何生成的,以便在新系統上安裝rpm軟體包時,這些共庫依賴性是己知的。
三、Rpm軟體包和共享庫依賴性
當程序員生成rpm軟體包時,ldd命令用於報告動態可執行文件軟體包中所有動態可執行文件使用的所有共享庫。另一個混亂是由下面的事實帶來的:相同軟體包中的不同動態可執行文件可能與相同的共享庫軟體包的不同版本進行鏈接。例如,Heartbeat軟體包中的不同程序可能已經進行了開發,並動態鏈接到libc.so.6sonmae共享庫文件的不同GLIBC版本。對rpm命令使用-q和--requires參數,可以看到rpm軟體包需要的共享庫的完整清單。例如,要看到Heartbeatrpm軟體包所有的所需依賴性,請使用命令:
#rpm-q--requires-pheartbeat-1.x.x.i386.rpm
這產生了下面的報告:
sysklogd
/bin/sh
/bin/sh
/usr/bin/python
ld-linux.so.2
libapphb.so.0
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libccmclient.so.0
libdl.so.2
libglib-1.2.so.0
libhbclient.so.0
libpils.so.0
libplumb.so.0
libpthread.so.0
librt.so.1
libstonith.so.0
注意,在此報告中,libc.so.6soname是所需要的,此共享庫必須支持使用GLIBC共享軟體包版本號2.0、2.1、2.1.3、2.2和2.3進行鏈接的動態可執行文件。這是由下面的事實決定的:Heartbeat軟體包中的不同動態可執行文件是針對不同版本的libc.so.6庫的每個版本進行鏈接的。在了解了動態可執行文件、共享對象、soname和共享庫軟體包彼此是如何相關的後,下面准備來看這樣的一個例子:當嘗試安裝rpm軟體包,並且它由於依賴性錯誤而失敗時,會發生什麼。yum能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
四、手工解決依賴性問題
通常,當嘗試安裝發行版中沒有包括的軟體包(及不能由像up2date、apt-get或Yum一樣的更新工具自動解決其依賴性的軟體包)時,將碰到rpm依賴性錯誤。例如,如果嘗試在老的Linux發行版上使用rpm–ivh*rpm命令,例如所有的Heartbeatrpm包,那麼在安裝過程中就可能碰到下面的錯誤:
error:faileddependencies:
libc.so.6(GLIBC_2.3)isneededbyheartbeat-1.x.x
libc.so.6(GLIBC_2.3)isneededbyheartbeat-pils-1.x.x
libcrypto.so.0.9.6isneededbyheartbeat-stonith-1.x.x
libsnmp-0.4.2.6.soisneededbyheartbeat-stonith-1.x.x
注意,rpm命令沒有干擾報告所需的每個GLIBC共享庫軟體包版本號——它只報告所需的最高編號的版本號(GLIBC_2.3)。(假定原來的軟體包開發人員不會將相同軟體包中的可執行文件鏈接到不兼容版本的共享庫軟體包)所有的這些故障都報告所需的共享庫名稱或soname(而不是文件名稱,soname始終以「lib」開始)。但可以刪除添加到rpm報告的soname結束的版本號,並快速檢查以查看是否在系統中使用locate命令安裝這些共享庫(假設您的locate資料庫是最新的,有關更多信息,請參閱locate或slocate的手冊頁)。例如,要查找libcrypto享庫文件,要輸入:
#locatelibcrypto
[root@localhost~]#locatelibcrypto
/lib/libcrypto.so.0.9.8b
/lib/libcrypto.so.6
/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/usr/lib/libcrypto.a
/usr/lib/libcrypto.so
/usr/lib/pkgconfig/libcrypto.pc
/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8
如果此命令沒有在系統上找到一個libcrypto共享庫文件,將需要轉到Internet並找出哪個共享庫軟體包包含此共享庫文件。完成此項工具的一個快速和簡便方式是只要在http://rpmfind.net上將共享庫的名稱輸入到搜索欄中。如果將文本libcrypto.so輸入到此搜索貞中,將很快知道此共享庫是由openssl軟體包提供的。
如果老版本的共享庫數據包已經安裝在系統上,可以用如下的命令確認此軟體包含您需要的共享庫文件:
#rpm-q--providesopenssl
[root@localhost~]#rpm-q--providesopenssl
config(openssl)=0.9.8b-10.el5
lib4758cca.so
libaep.so
libatalla.so
libchil.so
libcrypto.so.6
libcswift.so
libgmp.so
libnuron.so
libssl.so.6
libsureware.so
libubsec.so
openssl=0.9.8b-10.el5
此命令報告此rpm軟體包中提供的所有內容(這包括軟體包提供的共享庫文件的soname)。注意:如前面指出的,共享庫軟體包版本號沒有並且應該沒有與共享庫文件(soname)版本號的任何對應關系。這里不進行這方面的討論,因為soname符號鏈接可能指向不同版本的共享庫文件,這也是在盡量避免在安裝新版本的共享軟體包時中斷現有動態可執行文件的情況下完成的。
五、自動解決依賴性故障
當您使用rpm軟體包來生成、升級或添加新的特性到系統時,依賴性故障可能很快變成一場惡夢。只要通過使用您的發行版供應商的升級服務或工具,就可以避免這場惡夢。例如,當選擇要安裝的rpm軟體包時,RedHat工具up2date自動從RedHat下載並安裝所有rpm依賴性。下面就點上列出了幾個完成相同事情的支持社區的免費方法:http://www.rpm.org/。下面將只進一步看到這些自動更新工具中的一種:Yum。
1.使用Yum來安裝rpm軟體包
Yum(YellowdogUpdater,Modified)程序可從下面網址下載:http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
在下載了此軟體包後,可以使用下面的命令像任何其他rpm軟體包那樣安裝它:
#rpm-ivhyum*
您可能需要更新想用於下載您的rpm軟體包的存儲庫。有關Fedora的可用Yum存儲庫的清單在http://www.fedoratracker.org要切換到不同的存儲庫,下載這些文件中的一個文件,並將該文件作為/etc/yum.conf文件安裝。現在可以用下面的命令告訴Yum報告存儲在Yum存儲庫中、可用於安裝所有軟體包:
#yumlist
[root@localhost~]#yumlist|more
.
RHNsupportwillbedisabled.
Loading"security"plugin
Loading"rhnplugin"plugin
InstalledPackages
Deployment_Guide-en-US.noarch5.2-9installed
Deployment_Guide-zh-CN.noarch5.2-9installed
Deployment_Guide-zh-TW.noarch5.2-9installed
GConf2.i3862.14.0-9.el5installed
GConf2-devel.i3862.14.0-9.el5installed
ImageMagick.i3866.2.8.0-4.el5_1.1installed
MAKEDEV.i3863.23-1.2installed
MySQL-python.i3861.2.1-1installed
NetworkManager.i3861:0.6.4-8.el5installed
NetworkManager-glib.i3861:0.6.4-8.el5installed
2.用Yum安裝新的rpm軟體包
在本示例中,將安裝新的GLIBC軟體包。用簡單的命令安裝最新的GLIBC及其所有依賴性:
#yumupdateglibc
如果一切正常,Yum程序將自動檢測、下載並安裝最新GLIBC軟體包所需要的所有rpm軟體包(這里的GLIBC軟體包是為您的發行版而構建的,不一定是可用的最新版GLIBC軟體包(使用發行版所批準的GLIBC共享庫軟體包版本號或冒險安裝沒有使用正常系統操作所需要的動態可執行文件的GLIBC軟體包版本)。也可以將list參數用於Yum和grep命令來查找要安裝的軟體包。例如,要查找名稱中有SNMP的軟體包,請輸入:
#yumlist|grepsnmp
此命令返回如下報告:
.
RHNsupportwillbedisabled.
net-snmp.i3861:5.3.1-24.el5installed
net-snmp-libs.i3861:5.3.1-24.el5installed
net-snmp-perl.i3861:5.3.1-24.el5installed
net-snmp-utils.i3861:5.3.1-24.el5installed
現在可以容易地使用YUM下載並安裝所有這些rpm軟體包。
六、關於升級Gilbc的建議
Glibc庫是Linux底層的運行庫,其性能對於整個系統的運行有重要的意義。Glibc庫包含了大量函數,其中的函數可大致分成兩類,一類是與操作系統核心溝通的系統調用介面,它們作為功能型函數被調用,提供對Linux操作系統調用的包裝與預處理。另外一類為一般的函數對象,它們提供了經常使用的功能的實現,作為工具型函數使用。在實踐中,有不少軟體就是依賴與Glibc版本才能安裝並運行,說白了對於Glibc版本要求是版本高了不行,低了還不成。這些編譯環境中的應用程序也和其它程序一樣必須有運行的環境,我常遇到管理員在生產中給伺服器裝了最新的Linux發行版,結果應用軟體裝不上去,原因是Glibc的版本不對,有的是寫在原發行版glibc上升級有的是降級,結果倒是整個系統的崩潰,實踐經驗告訴我,你只有選擇相應Linux發行版里對應的glibc,例如我們單位的一個應用軟體時在rhel3.0下開發的,那麼就得要對應的發行版,換了別的就難說了,任何自己升級或降級Glibc來適應應用軟體的做法都是不可取的,問題最後的解決方法是找到了RHEL3裝上就解決了。在表一中,我把幾個linux發行版原配的Glibc版本列出,供大家參考。
點擊圖片查看大圖
Glibc庫與核心功能組件
上圖一說明:
GCC依賴於glibc
binutils依賴於glibc(binutils提供了一系列用來創建、管理和維護二進制目標文件的工具程序,如匯編(as)、連接(ld)、靜態庫歸檔(ar)、反匯編)
make依賴於glibc
頭文件是在編譯時候gcc所需要的,但本身都是一些文本文件,因此沒有需要的運行環境。
常用工具依賴於glibc和各種需要用到的動態庫。
下表一列出了多個重要Linux發行版的Glibc的情況
Linux發行版Glibc版本
Redhat9glibc-2.3.2-5
Fedora1glibc-2.3.2
RedhatEnterpriseLinuxAs3glibc-2.3.2-95
RedhatEnterpriseLinuxAs4glibc-2.3.4
RedhatEnterpriselinux5glibc-2.5-24
RedhatEnterpriselinux6glibc-2.9
Centos5.xglibc-2.5
-2.3.2-92
-2.4.31.54
-2.9
點擊圖片查看大圖
Linux發行版glibc(32)位
下面介紹幾個查詢glibc版本號的方法:
#ls–al/lib/libc*
或者是用下面的命令也可以實現
#rpm–qp|grepglibc
基於debian的系統通過dpkg–l|greplibc6也可以查到,總之一般都在/usr/share/doc目錄下都能看到glibc的相關信息。
七、小結
大部分情況下,在遇到軟體包依賴關系問題的時候,操作系統提供的文件名字與軟體包名字都會有直接的聯系。有可能文件的名字就是軟體包的名字。但是有些時候文件的名字與軟體包的名字會相差甚遠。此時大部分系統管理員可能光憑文件名字無法找到對應的軟體包。此時可以先在系統安裝光碟里找,如果找到那時最佳選項,然後就需要藉助筆者上面談到的一些專業網站,去查詢軟體包的名字了。當系統管理員安裝了某個軟體之後,如果存在軟體包之間的依賴關系,則最好能夠拿本子或者通過其他手段記錄下來。以便下次方便實用,注意工作中的積累,相信絕大部分的軟體包依賴關系問題都會迎刃而解。
2. 當地縣里的中國銀行支行沒有SWIFT code, 能不能告訴市裡的中國銀行的分行的SWIFT code
各分行信息不同,請您詳詢中國銀行客服熱線。
以上內容供您參考,業務規定請以實際為准。
如有疑問,歡迎咨詢中國銀行在線客服。
誠邀您下載使用中國銀行手機銀行APP或中銀跨境GO APP辦理相關業務。
3. 直播APP源碼開發是怎樣的
首先你需要有開發知橋慎鬧識,之後下載專業工具,之後就擼代碼咯;
APP又分為安卓APP和蘋果APP,這兩個系統都有不同專門的開工具,比如蘋果APP開發一般用swift,OC,XCODE等等;當然了現在的APP開發大多會用到不同的幾孝漏個工具,現在流行混編,所以這裡面的知識量不是一點時間就可以積累起來的啦;
如果你想簡單的開發APP,快速的上手可以關注一下apicloud,一門APP,安卓益這些混合開發的APP製作平台。這些混合開發平台不需要你會太專業的工具,只需要會H5技術就可以開始開發APP了,一樣的實現各種原生APP才會有的效果,大大提高APP開發成本和時間周期,並且平台規范化的技術,更加適合上架蘋果APPstore和安卓應用商店,比如一門APP還提供全流程的上架應用商店服務,真正做敏罩到上線無憂!
4. 有適合小學生看的電腦代碼編程的書籍嗎
導讀:編程是當前需求比較旺盛的職業道路,因此,很多家長都希望自己的孩子長大後成為軟體程序員,或者起碼擁有一些編程思維。如果您想讓孩子學習編程從哪裡開始呢?在此兒童節之際向各位推薦7款適合兒童的編程語言。
計算機編程是一種需求旺盛的職業道路,因此父母可能希望自己的孩子長大後成為軟體程序員。如果您想讓孩子們學習編程的方法,那麼從哪裡開始呢?在此列表中嘗試一些適合兒童的編程語言。
1.Scratch
Scratch是由麻省理工學院的終身幼兒園實驗室開發的面向孩子的免費編程語言。通過入門教程,針對父母的課程說明以及強大的用戶社區,對免費語言進行了補充。甚至當孩子離開計算機時,他們甚至可以使用這些卡片來學習Scratch編程概念。
Scratch使用積木式視覺界面為孩子和父母創建腳手架體驗。您將編程組件(例如動作,事件和運算符)堆疊在一起。
每個塊的形狀僅允許將其與兼容對象組合。例如,重復循環的形狀像是一個側面的「 U」形,以告知您需要在循環的開始和結束之間放置塊。
Scratch使用預先填充的圖像和角色或通過上傳新的圖像和角色來製作真實的動畫和游戲。Scratch不需要互聯網連接。孩子們可以選擇在Scratch的在線社區中分享他們的作品。
由於Scratch是免費的並且得到了良好的支持,因此它是對兒童友好的編程的最早建議之一,並且很容易看出Scratch在此處列出的許多其他對兒童友好的編程語言(如Blockly)中的影響。
建議年齡:8至16歲
要求:Windows,macOS或Linux
2.Blockly
Blockly是Google對Scratch 的改進,它使用了相同的互鎖構建基塊隱喻,但它可以使用幾種不同的編程語言(包括JavaScript,Python,PHP,Lua和Dart)輸出代碼。這使Blockly成為可視化編輯器,而不僅僅是一種對兒童友好的編程語言。
將塊鏈接在一起時,您會在屏幕的側面看到代碼,並且可以即時切換編程語言,以查看同一基本程序在語言語法上的差異。這使得Blockly非常適合在各個年齡段教授代碼,包括年齡較大的孩子和成年人,他們可能不喜歡年輕的歪斜貓和Scratch的漫畫。
Google正在與MIT合作,基於Blockly平台開發下一代Scratch。
Blockly是Android App Inventor的骨幹,可用於開發可運行的Android應用程序。麻省理工學院控制了這個廢棄的Google項目。
Blockly尚未像Scratch那樣得到充分開發,並且可用的教程也不多。但是,Blockly希望為所有年齡段的程序員提供一個強大的編程環境,並擁有廣闊的未來。
建議年齡:10+
要求:Windows,macOS或Linux
3.Alice
Alice是一個免費的3D編程工具,旨在教授C ++等面向對象的編程語言的概念。它使用熟悉的積木方法,使兒童可以通過對相機運動,3D模型和場景進行編程來創建游戲或動畫。
與Scratch凌亂的界面相比,拖放界面和輕松播放按鈕對某些學生而言可能不會造成太多混亂。可以將程序(或Alice中的「方法」)轉換為Java IDE(例如NetBeans),以便編程學生可以從可視的構建模塊界面過渡到標準的編程語言。
卡內基-梅隆大學開發了愛麗絲。該網站可能看起來並不漂亮,但是該程序仍在開發和研究中。
建議年齡:10+
要求:Windows,macOS或Linux
注意事項:如果在Mac上安裝Alice,請通過轉到系統偏好設置 > 安全和隱私 > 允許從以下位置下載應用程序來啟用安裝:App Store和Identified Developers。安裝完成後,更改安全設置。
4.Swift Playgrounds
iOS和iPadOS的應用程序開發人員依賴Swift編程語言。Mac和iPad應用程序都可以使用Swift Playgrounds 。它旨在教孩子如何使用Swift編程,可以從Apple免費下載,並且不需要任何先驗編碼知識。
這些應用程序包含許多有關不同Swift命令的教程,這些教程旨在在3D世界中移動名為Byte的角色。盡管不需要編程知識,但是孩子們需要知道如何閱讀教程並具有一定的解決問題的毅力。拖放代碼消除了拼寫錯誤,但是Swift Playgrounds不使用互鎖塊界面。
一旦您的孩子精通Swift游樂場,他們就可以開始在Swift中進行開發。
建議年齡: 10+
要求: iPad或Mac
5.Twine
Twine適用於對創建游戲和講故事感興趣但對編程的技術細節感到沮喪的孩子。
Twine是一個免費的非線性講故事應用程序,各個年齡段的人都可以使用它,包括大量的成年人和教育工作者。使用Twine,您無需學習任何代碼。它沒有教用戶如何編碼,而是教他們如何構造和呈現非線性游戲和故事。
麻線故事由文字和圖片頁面組成,例如網站。設計界面顯示了連接的頁面,每個頁面都可以使用文本,鏈接和圖像進行修改。它對於「選擇自己的冒險」類型的游戲特別有效,其中每個玩家的選擇都進入了故事的新分支。
雖然此應用程序不教編碼,但它確實教了很多對游戲設計師和講故事者至關重要的規劃和設計技能。該應用程序受支持Wiki,教程和活躍的用戶社區的良好支持。
您可以通過託管應用在線創建Twine故事,也可以下載應用進行離線編輯。
建議年齡:12歲以上(強烈建議讀者)
要求:Windows,macOS或Linux
6.LEGO MINDSTORMS
學習編程的另一種方法是研究機器人技術。許多孩子對編程在現實世界中工作的事物的想法做出回應。這里有各種各樣的機器人套件的,你可以用它們編程語言,但LEGO MINDSTORMS系統中享有最大的用戶群體和孩子友好的可視化編程的應用程序之一。
免費下載編程環境,但是您需要訪問LEGO Mindstorms套件才能運行程序。這並不一定意味著您必須購買一個。一些學校和公共圖書館提供供學生使用的工具包,或者您可能想在您附近找到一個第一樂高聯盟。
樂高EV3編程軟體可以在平板電腦和計算機上運行,??並且使用了構建塊(在這種情況下為樂高塊)隱喻,就像Scratch和Blockly一樣,盡管樂高的版本傾向於水平構建程序,看起來更像流程圖。學生結合動作,變數和事件來操縱他們的LEGO Mindstorms作品。對於年幼的孩子來說,編程語言非常簡單,而對於年長的孩子和成年人來說,編程語言仍然充滿挑戰。
除了LEGO Mindstorms編程環境外,LEGO還使用開放源代碼Linux內核,可以通過Python和C ++等傳統編程語言對其進行修改和編程。
建議年齡:10歲以上(幼兒可以在監督下使用)
要求:EVA3需要運行macOS或Windows的計算機或運行Android或iOS 的平板電腦。要運行程序而不是調試程序,需要一個或多個LEGO EV3機械手。
7.Ko
Ko是Microsoft專門為Windows和Xbox 360設計的游戲編程應用程序。Windows版本是免費的,但Xbox 360版本是付費應用程序。孩子們可以使用該應用程序來探索和設計3D世界中的游戲。
Ko的圖形界面引人入勝,而Xbox版本的編程完全可以通過游戲控制器完成。如果您擁有支持它的硬體,那麼Ko是一個較舊但仍然可靠的選擇。
不幸的是,還沒有Xbox版本的Ko,而且未來的發展似乎不太可能。但是,Xbox和Windows版本已經完全開發,這就是為什麼即使放棄它也將其包括在此列表中的原因。
建議年齡:8至14歲
要求:Windows 7及以下版本或Xbox 360
總結:
有動力的中學生可能需要嘗試製作和安裝Minecraft mod。Unity 3D游戲界面是通過大量可用在線資源跳入編程3D游戲的另一種好方法。請記住,編程本質上令人沮喪。它涉及很多故障排除和反復試驗。父母可以為初出茅廬的程序員提供的最佳工具是一種毅力和決心。