Hi,Greg
Thanks for you answer very much!
i am a new mac developer,can you tell how to make preflight scripts?
if my origin install package ID is com.test.pkg,and versiong is 1.0.0,how can i make patch package?
> Hi,Greg
>
> Thanks for you answer!
>
> you said should give Patch package a different name and package ID
> than the original package.but how does system know this package is
> patch and which software will be updated?
The _system_ doesn't know anything. You must put logic into the .dist
file or the preflight scripts to ensure the older package is installed
&
nbsp;before you continue with installation.
> must somewhere is connected to original package?
Not formally.
> Can you give me some detail description?
Look at other applications for examples.
An example:
You can buy iWork '09 from Apple. It comes on a DVD. When you
install it, it leaves a receipt:
/Library/Receipts/iWork09.pkg. It has a package id of
'com.apple.pkg.iWork09'.
Apple has released two updates so far. When they are installed, they
leave two more receipts:
/LIbrary/Receipts/iwork_09_update_1.pkg -- this has package id
'com.apple.pkg.iwork_09_update_1'
/Library/Receipts/iWork09_Update2.pkg -- this has package id
' com.apple.pkg.iWork09_Update2'
In /LIbrary/Receipts/iwork_09_update_1.pkg/Contents/Resources/
iwork_09_update_1.dist is logic to see if the correct versions of
Keynote, Numbers, and Pages are installed. If they are not,
installation will not proceed.
From:
email@hiddenCC:
email@hiddenTo:
email@hiddenSubject: Re: how to make patch package?
Date: Tue, 16 Jun 2009 09:26:20 -0700
On Jun 15, 2009, at 9:54 PM, 李剑 wrote:
Hi,Greg
Thanks for you answer!
you said should give Patch package a different name and package ID than the original package.but how does system know this package is patch and which software will be updated?
The _system_ doesn't know anything. You must put logic into the .dist file or the preflight scripts to ensure the older package is installed before you continue with installation.
must somewhere is connected to original package?
Not formally.
Can you give me some detail description?
Look at other applications for examples.
An example:
You can buy iWork '09 from Apple. It comes on a DVD. When you install it, it leaves a receipt:
/Library/Receipts/iWork09.pkg. It has a package id of 'com.apple.pkg.iWork09'.
Apple has released two updates so far. When they are installed, they leave two more receipts:
/LIbrary/Receipts/iwork_09_update_1.pkg -- this has package id 'com.apple.pkg.iwork_09_update_1'
/Library/Receipts/iWork09_Update2.pkg -- this has package id 'com.apple.pkg.iWork09_Update2'
In /LIbrary/Receipts/iwork_09_update_1.pkg/Contents/Resources/iwork_09_update_1.dist is logic to see if the correct versions of Keynote, Numbers, and Pages are installed. If they are not, installation will not proceed.
Thank you very much!
Jason
From:
email@hiddenTo:
email@hiddenSubject: Re: how to make patch package?
Date: Mon, 15 Jun 2009 10:35:39 -0700
There's nothing special about a "patch" package. Package up the files that are changed or added. Give the Patch package a different name and package ID than the original package. Make sure there's some pre-install logic to verify that the software you are patching is installed. That's it, unless some files also need to be removed, in which case you'll need a postinstall script to handle this for you.
In most cases, it's easier to just do a package that would install the entire new updated software from scratch and let the Installer take care of things, but vendors who ship commercial software and then ship free "updaters" have to do more work, since it wouldn't do to have the updater install a fully-functional version of the software...
-Greg
On Jun 14, 2009, at 9:57 PM, 李剑 wrote:
Dear all,
does anyone knows how to make a patch package with package maker?