RPM製作簡單說明

在此直接以我在公司開發的 lcd daemon 來作為實例
首先把我的 lcd daemon 編譯過,得到 lcdctld, 假設為 1.0.0 版,release 第一次
接著,隨便在某個地方建立目錄,命名為 lcdctld-1.0.0
在裡面建立 /usr/sbin
然後把 lcdctld 放到 lcdctld-1.0.0/usr/sbin 裡面去
利用
tar cvzf lcdctld-1.0.0.tar.gz lcdctld-1.0.0
這個指令得到 tar.gz 檔案
把這個檔案丟到 /usr/src/redhat/SOURCES 裡面去
接著就是最重要的地方了
要編輯 lcdctld.spec 檔案
內容如下:

%define name lcdctld
%define ver 1.0.0
Summary: MS-9507 LCD Daemon
Name: %{name}
Version: %{ver}
Release: 1
License: Micro Star Inc.
Group: System Environment/Daemons
BuildRoot: %{_tmppath}/%{name}-%{ver}-root%
description
lcdctld is a daemon that listen MS-9507 device.
%prep
%setup -q
%build
%install
rm -rf $RPM_BUILD_ROOT
%{__mkdir} $RPM_BUILD_ROOT/
%{__mkdir} $RPM_BUILD_ROOT/usr
%{__mkdir} $RPM_BUILD_ROOT/usr/sbin
install -m555 usr/sbin/lcdctld $RPM_BUILD_ROOT/usr/sbin
rm -f tmp
%cleanrm -rf $RPM_BUILD_ROOT
%files/usr/sbin/lcdctld

這裡面有很多東西,建議直接找個範本來修改比較好,我是直接拿 thttpd 的來作修改.
主要要修改的有上面的欄位:Summary, License, Name, Version, Group, …等等的
還有 %install 開始的地方,這裡主要就是寫複製檔案的 script.事實上, RPM 會自動把你 SOURCES 下的 tar.gz 檔解開,所以你只要把對應的檔案複製到 RPM_BUILD_ROOT 對應的目錄去就好了.
最後還有 %files ,如果這裡沒有東西,rpm 會發生錯誤.這裡主要是放檔案的列表,讓 rpm 知道這個 package 裡面有什麼檔案.
編輯好 lcdctld.spec 之後,輸入
rpm -bb lcdctld.spec
順利的話,你應該會在 /usr/src/redhat/RPMS/i386 目錄下看到 lcdctld-1.0.0-1.rpm 才對~~
你可以使用
rpm -Uvh lcdctld-1.0.0-1.rpm
來安裝
然後使用
rpm -e lcdctld-1.0.0-1
來移除
.spec 裡面的一些用法
%define -> 定義一些變數
%{xxx} -> 引用變數
%{_tmppath} -> 會指到 /var/tmp 下面
%{__command}-> shell的指令幾乎都可以引用,只是前面要加上兩個底線,例如 mkdir 就是 %{__mkdir}.
%prep
%setup
%build
%install
%clean
%files -> 這些都是表示特定的步驟,雜誌上只說在 %install, %clean, %files 要加東西而已,其他不清楚
我想這樣子在目前的使用上,應該就足夠了吧~
將來如果有新的發現,會在這個主題上繼續累加~
資料參考來源: Linuxer 雜誌第 12 期以及 Linux in a NutShell
Linux in a NutShell 只有說明 rpm 指令有哪些參數而已,完全沒有說明 .spec 檔要如何編輯

ASP.NET 的 ViewState

ViewState其實只是很普通的東西~~
簡單的說他就是 form 裡面的 hidden 欄位而已~~
現在在 asp.net 中,它已經被物件化了
我們只要這麼寫
ViewState("TestMe")="Nothing, just hidden."
在輸出的時候,它就會自動被輸出為
<form>
<input type="hidden" name="TestMe" value="!@#$!#@$"/>
</form>
這樣子的 html 碼.
而不需要像以往一樣自行去維護 hidden 欄位的值.
上面 TestMe 欄位的 value 我是隨便打的,事實上 asp.net 會對它作 base64 的編碼,以防止被別人看見~如果你覺得 base64 編碼太過於簡陋,你也可以選擇其他的編碼方式如: 3DES, MD5…等方式來作編碼,以防止被解析出來.
設定ViewState的方法有三種:
1.該目錄下的所有網頁都使用:這需要在 web.config 檔案中設定
<Pages EnableViewState="false"…/>
(p.s. web.config 檔案,事實上,JSP也有類似的用法,你可以互相對照一下)
2.在單一網頁中指定:這需要在每個 .aspx 前面加上
<%@Page EnableViewState="false"…%>
3.在每一個 control 指定:這需要設定該 control 的 EnableViewState 屬性,以 datagrid control 來說,用法如下:
<asp:datagrid EnableViewState="false…/>
如果你想設定編碼方式的話,則需要多加上
<%@Page EnableViewStateMAC=true %><machineKey validation="MD5"/>或<machineKey
validation="3DES"/>
雖然ViewState的內容可以編碼,但是建議還是不要把一些安全性的資料放在這裡.此外,利用這樣子的技術,有個缺點,就是會使得網頁傳遞的時候變慢,因為 form 的內容變多了~
如果想了解更多,請到這裡.

Breeze Center

星期天晚上和女友一起去逛了微風廣場~
我覺得他這個廣場的定位很清楚,就是定位在都會區上班的女性,都會新貴~有一定的消費能力.
所以這個廣場裡面賣的東西就很清楚啦~
大多都是名牌服飾,化妝品,保養品,spa之類的~
地下一樓到六樓就是賣這些東西.
七樓則有台隆手工藝館(應該是吧,希望沒記錯)提供一些實用,美觀的五金用品,這裡倒是蠻不錯的.
八樓和九樓則是國賓電影院,七樓跟地下一樓都有售票口~.
地下一樓還有日文書店,裡面全都是日文的書,沒有任何中文書,只有部分中文雜誌,如果要找一些日文資料,倒是可以來這裡找.
地下二樓則是美食街,地下三樓則是 super market, 有賣一些現成的菜餚,可以直接買回去,還有一些日本的泡麵,調味料以及食品.
在 2F 還有露天的咖啡館,蠻具風味的
而地下一樓除了售票口之外,居然可以從天井仰望到天空
常令人搞不清楚是地下一樓還是一樓 .
再加上地點絕佳,短短時間,聽說已經吸金三,四億元
真的是很佩服這個人~
好像是上一期還是這一期的數位周刊(or時代??)有刊載出來~~
有興趣的人可以去翻閱一下

NumLock

在 Red Hat 環境下,NumLock 老是關閉的(Mandrake 不會)
如果懶得一個一個去把 NumLock 按成 On
可以在
/etc/rc.local 最後,放如下指令:[bash]# Enable NumLock
for tty in /dev/tty[1-6]; do
setleds -D +num < $tty
done[/bash]
即可
另外,此行據稱可以加速,但我不知道是什麼意思
[bash]echo “base=0xd8000000 size=0x800000 type=write-combining” > /proc/mtrr[/bash]
也可以一併放在 /etc/rc.local 中

法國繪畫展

11/25 星期天,和女友去故宮看法國繪畫展.
很不錯的展覽~展出了相當多的名畫~
這次的畫風主要是寫實,浪漫跟印象.
我對其中有一幅畫印象比較深刻,但我不記得什麼名字了,只記得畫的內容是一個少女的肖像,微微露出左乳,蠻漂亮的~
老實說,我們對這些話是誰畫的,並不是很關心.我們也不懂他們所用的高深技巧.我們只是想知道,這些畫家所認為的美到底是什麼. ^_^
這樣才能確實的提高自己美的層次,不是嗎??

Lonely Satursday

周六的上午,受父母之託幫老妹搬東西到他公司,順便設定一下區域網路~
當然設定區域網路對我來說,是相當簡單的事情,彈指之間就能完成,但我的心情卻不太好,原因是老妹那傢伙居然在我搬東西下車,父母要開車走了之後,說:
“你好可憐喔~@#$!@#$!#@”巴拉巴拉的一些.
讓我覺得很不是滋味,因此在設定完區網之後,我就離去~時間約是 11:0x 左右.
我從信義敦南路口漫步到敦南基隆路口搭公車,本想去接女友,但想起昨天女友說不用去找他,所以乾脆就跑去美麗華看電影.
到了美麗華一看,老天,A~F廳共十二部電影,我居然看過 10 部~沒看過的兩部,一部是”龍吻”,與”侏儸紀公園III”合映,另一部則是”貓狗大戰”,忘了與什麼合映.
我決定看”龍吻”,於是我買了一瓶奶茶和一瓶梅酒進去.
無聊的看完兩部片,只有兩個心得
1.龍吻這部片真是個爛故事~
2.好累喔
於是就又做公車回家玩我的 AOE2 了~
呼~~

紅磨坊

moulin_rouge_ellery_465160.jpg
這部片子跟我預料中的不同,原本以為會一部陳腔濫調的愛情片,但卻不然.
導演以百老匯歌舞劇的方式使得一個簡單的愛情故事擁有了生命,片中的配樂,歌曲不但動聽,更為片中的氣氛,轉折帶來了畫龍點睛的效果~
這部電影是個值得一看的作品!

Building Solutions for VB In Windows 2000

講師:羅慧真

筆記者:ellery

 

檢查需要的元件是否安裝
No -> On demand installtion
Yes -> 檢查元件是否適當安裝,若miss,則 On demand repairing.

 

Install Sheild for Windows 2000 or Wise 2000
本身不提供 Module 檔,所以要自行將 Modules 檔複製進去.
Visual Installer 不需要的原因是因為, Microsoft 已經將 VB 所需的 Modules 放進去了.

 

Package 若以 Publish 發行,則 user 要在 Add/Remove 安裝.
若 Assign -> user, 該 user login 進去後就會開始安裝
若 Assign -> computer, 只要該電腦一開機進入就會開始安裝

 

How to implement side by side?
在欲保留原 DLL 的 AP 路徑下,建立一文字檔,更名為 ap.exe.local, 如此一來就會使用到原 DLL.
p.s. only for Windows 2000.
如果環境為 95/98/NT, 可將 CLSID 機瑪下的 InprocServer32 的Default內容的路徑拿掉.

 

Group Policy 的一些相關設定擋在 \WINNT\SYSVOL\DOMAIN 下面,可利用 Notepad 去查看.

 

Directory Service

1. Workgroup

每台PC都必須設定 user account

缺點:分散管理 Security 差,維護困難 一個資源只能同時給 10 個 connection

2. Windows NT 4.0 Domain

優點: One user one account

Universal resource access

centralize administration

缺點:

Trust 沒有遞移性,需手動維護 Truest

Trust 為 Domain 間相同 Account 共享 Resource.

3. Windows 2000
 

 

DC安裝步驟:

  1. My Computer -> 右鍵 Property -> Network Identification -> Property
    -> Advance -> Other, 指定 Domain Name
  2. Network -> 右鍵 Property -> Local area connection -> 右鍵 property
    -> TCP/IP 指定 DNS 的 IP, Advance DNS 指定 Domain Name
  3. ipconfig /all 檢查 DNS 及 domain name 是否正確
  4. DC Promote 決定角色
    1. Domain 的第一台 PC或第二台
    2. Root Domain 或 sub domain
    3. 加入另一 domain tree 為 forest

     

AD Schema

  1. regsvr32 schmmgmt.dll
  2. mmc
  3. snap-in ad schema

 

LDAP Name:

1.DN -> Distiguished Name

CN: Common Name
+Container
+User
+Computer Name
OU: Organization Unit
+ou
+group
DC: Domain Component
+Domain Name
+Type
+Location
Example:
CN=User CN=Guest
CN=London, ou="Domain Controller", DC=Microsoft, DC=COM
uuu.com.tw 即 domain.type.location

以下這一狗票東西,是你可以寫,然後放到 Group Policy 裡面的,在.apm 檔案中(WINNT\INF\SYSTEM.adm)

CATEGORY "Media Player Settings"
POLICY "Store with this view"
KEYNAME "Software\Microsoft\MediaPlayer\Player\Settings"
EXPLAIN "Used to set the initial Media Player view"
PART "Select View" DROPDOWNLIST NOSORT VALUENAME "view"
ITEM LIST
NAME "Compact" Value 0
NAME "Standard" Value 1
NAME "Minimal" Value 2
END PART
END POLICY
END CATEGORY

 

Logon.

 

Queue

心情不好二三事

昨天,10/7,我們去了陽明山.
這次騎車由明德樂園旁邊的路上山,這條路出乎意料的遠,沿路經過平等里…等兩三個小聚落,大多經營的都是些觀光農場,果園或是土雞城之類的生意,
看來饒有一番趣味.路上一直都看到”奧萬大”,令人詫異,以為是中南部賞楓的奧萬大,到了以後大略看了一下,原來是一家咖啡,品茗的店(我應該沒看錯),令人莞爾.
這條路會一直連接到菁山路.
我們由菁山路步道入口開始步行,這條步道就是就是有名的金包里大道,在早前,這條步道主要是先人通商,買賣的一條通道,也是通往金山的必經之路.
主要特徵就是中間的石頭大,而兩旁的石頭小,呵呵,這都是由步道兩旁的解說牌看來的啦.
沿路會經過絹絲瀑布,最後會到達擎天崗.
接近擎天崗的時候,起了霧,有朦朧的感覺,別有一番風味.
末了,我們搭公車下到步道入口,騎車下山~
我們由仰德大道下山,經過士林官邸,我發現有花蓮奇石展,於是不管是不是中午,是不是該吃飯了,就停車,把ela拉進去逛逛.
當然,他抱怨連連囉~,說我欺負他,不給他吃飯之類的話.
不過這次對於士林官邸有了新的發現,官邸的後方有個小山,山上有個慈雲亭,不知何故,遊客稀少,這裡可以遠眺,也能享受一份幽靜.
走下小山,聽到露天表演台傳來悠揚的Jass音樂,心情不禁好了許多.
我們邊散步邊尋找,看到了許多拍婚紗照的新人.

ela:他們為什麼要在假日來拍,請假來拍的話,人比較少,比較方便;
我:之前我有特別假的時候,你不結,現在我沒有特別假了.
ela:那還是可以請假啊
我:不要了,不請了.

到了奇石展的場地,進去逛逛,這裡果然不虛此行,奇石都很漂亮,多呈現出國畫中的山水意境.
最後,該吃飯的還是要吃飯. ^_^
下午去光華商場逛逛,sw打了通電話來,邀約10/10去KTV為ela過生日,我說不要,因為,ela,10/6,跟我說不要去KTV.
關於這件事,ela,早上有改口說要,但不知怎麼地,我就是不想去了.
於是我把手機丟給ela,讓她跟sw說,ela就跟他聊了一下,最後應該是說要吧,我也不是很清楚.
後來送ela回家後,我也回家了.
回家的時候心情很不好,覺得很暴躁,定不下來,也覺得很生氣.我想,打打世紀帝國II應該會好些.但沒有.
吃過飯,躺了一下,似乎睡著了,這個時候sw打電話來,通知了我時間,我說,我會轉告ela.
我心情更不好了,心裡想了很多事情…
想要趕快提親,提出訂婚以及結婚的日子,也拖了許久,更討厭的是,ela媽媽還說,我們還年輕,不必要這麼早結婚.(當然,我知道日子並不是ela能決定的,但我只是…唉…)
我不禁自暴自棄,好吧,乾脆不要結好了,反正這樣子過日子也不錯,終日與電腦為伍,閒來爬爬山,逛逛街,看個電影.
日子還不是能過~~~
末了,我賭氣地告訴ela,10/10那天我不要去~我可以送你到樓下,唱完再來接你~
啊~~~想要大聲的叫出來~~~
啊~~~想要用力的打牆壁~~~
有時候,不禁懷疑自己是不是有憂鬱症或躁鬱症之類的~

“哪裡”颱風

納莉颱風來的這四天,我賣掉了四,五年前買的Canon BJ200e 黑白印表機,得到 300 元.
寫好了一篇預定要投稿給 RUN!PC 雜誌的文章,內容是介紹 VFP7 與 Web Service 的應用.
打了幾通關心的電話.
完全沒有和女友外出,只靠電話聊天,哈拉.
完成了一些網站的東西,預定月底才會更新上去.
每天看著水,看著看著,想到了聖經諾亞方舟的故事,猜想,搞不好十天的大雨就可以讓台灣淹沒~中共也甭統一了.
最後一天,在 Kimo 看到一個很冷的笑話:為什麼納莉颱風會走的這麼慢,這麼久呢?因為他的名字叫”哪裡””納莉”~所以打轉了許久,琢磨了許久,才逛出台灣.
其實這篇應該叫做雜記吧,胡亂湊合著上.