- 论坛徽章:
- 0
|
原帖由 kycent 於 2009-5-17 11:00 發表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=7016694&ptid=1112192]這幾天為了做畢業設計,裝上LINUX編譯內核。從UBUNTU換到OPENSUSE,折騰了好幾天,心裡憋了一股子悶氣,真是不吐不快。
LINUX,我真的受夠你了,你就不能做的人性化一點點嗎?
可不可以請您先檢討一下,您是否真的有把基本的 linux 的管理能力具備養成呢 ?
我用LINUX也有兩年的時間,當然這只是安裝好了,看看3D特效,不過基本的系統管理還是比較熟練的。按理說,在LINUX下編譯內核
是比較輕鬆的事情,哪知道結果煩的要死。
請問為何需要編譯核心呢?有怎樣需求需要這樣?
先用的是UBUNTU,我以前一直都是用的是UBUNTU,不過在make menuconfig時提示沒有裝nucrses庫,於是去GNU的FTP下載了nucrses的源碼,
編譯安裝,OK。不幸的是,自從我一次進WINDOWS死機強制重啟後,我的UBUNTU就廢了,啟動不了(我是WUBI安裝,為的是不擦寫MBR)。
您似乎也一點都不瞭解系統基本的 package 管理方式,這個只是很簡單的 apt or aptitude 命令使用,可以安裝上 ncurses*-dev 這類套件包就可以完成的事情,為何需要 tarball 呢?因為系統不可能所有軟件包都裝上,不是嗎?
然後我想UBUNTU帶的軟件太少,不利於開發,於是打算換別的版本。念在以前刻過一張open suse11的光盤,花了一個多小時安裝。進去
之後,用的真是有點冒火。我打開終端,進入WIN的F盤中的linux源碼包,鍵入make menuconfig,居然提示我make 沒安裝。我暈死,
把make安裝好了以後,想查看一下網絡,輸入ifconfig,居然是命令未找到(後來我才知道只有ROOT用戶才能用這些命令)。當時我認為
是安裝不完整的緣故,因為安裝的時候,我去洗澡去了。回來就安裝好了。於是乎,又插入光盤,將安裝更新了一下。進去之後,直接選了
ROOT用戶,又來make menuconfig,又顯示錯誤:運行Kconfig權限不夠。我已經是用的ROOT用戶了,居然還權限不夠。好,就依你吧,我直接
chmod 777 可以了吧,但是結果顯示依舊。最後我發現原來是在WINDOWS分區下不能編譯,一挪到LINUX分區就OK了。我真的是無語了。
請問 windows 的 fat or ntfs 分割區支援 symlink 嗎?這個問題您可以自己思考一下。
接下來安裝交叉編譯器,在三星的一個站點opensrc.sec.samsung.com裡下載了arm-elf-tools20040427.sh 文件,既然是sh文件就應該是
shell腳本吧,於是在終端裡輸入sh arm-elf-tools20040427.sh,結果又顯示什麼tail +43xxxxxx,一堆錯誤。於是又google之,原來還得自己
做個手腳,要麼在腳本最後加個字符n,要麼執行一個tail命令,最後得到的卻是一個tar包。看到這裡我忍不住想大聲罵道:「你TM就不能直接
釋放一個tar包出來麼?非要弄得別人都無法安裝,才顯示你很NB麼?或者你也應該在下載的地方提供一個安裝指導啊」。
這個問題我論壇回過很多很多次了。
-- Begin
export _POSIX2_VERSION=199209
這樣就可以解決了。想知道原因?
File: coreutils.info, Node: Standards conformance
2.9 Standards conformance
=========================
In a few cases, the GNU utilities' default behavior is incompatible
with the POSIX standard. To suppress these incompatibilities, define
the `POSIXLY_CORRECT' environment variable. Unless you are checking
for POSIX conformance, you probably do not need to define
`POSIXLY_CORRECT'.
Newer versions of POSIX are occasionally incompatible with older
versions. For example, older versions of POSIX required the command
`sort +1' to sort based on the second and succeeding fields in each
input line, but starting with POSIX 1003.1-2001 the same command is
required to sort the file named `+1', and you must instead use the
command `sort -k 2' to get the field-based sort.
The GNU utilities normally conform to the version of POSIX that is
standard for your system. To cause them to conform to a different
version of POSIX, define the `_POSIX2_VERSION' environment variable to
a value of the form YYYYMM specifying the year and month the standard
was adopted. Two values are currently supported for `_POSIX2_VERSION':
`199209' stands for POSIX 1003.2-1992, and `200112' stands for POSIX
1003.1-2001. For example, if you have a newer system but are running
software that assumes an older version of POSIX and uses `sort +1' or
`tail +10', you can work around any compatibility problems by setting
`_POSIX2_VERSION=199209' in your environment.
-- End
事出必有因,你有認真瞭解嗎?
什麼最漂亮的LINUX,簡直就是垃圾。
還有我最看不慣的就是那些成天高叫LINUX戰勝WIN的人,我想說,如果LINUX的開發人員繼續向arm-elf-tools2040427的作者一樣的話,要想超越
WINDOWS,等下輩子吧。
請您先把許多基本功打好後再來抱怨也不遲,要不然就算是你使用其他 unix 系統,可能還是一樣結果。這時候不知道是您個人問題,還是系統的問題?
[ 本帖最后由 kenduest 于 2009-5-18 01:30 编辑 ] |
|