I live off you
And you live off me
And the whole world
Lives off of everybodySee we gotta be exploited
See we gotta be exploited
By somebody by somebody
By somebodyThe cat eats the rat
While the pimp beats the whore
As she just screams out
For more and moreSee we gotta be exploited
See we gotta be exploited
By somebody by somebody
By somebodyLa-la-la-la !
I live off you
And you live off me
And the whole world
Lives off of everybodySee we gotta be exploited
See we gotta be exploited
By somebody by somebody
By somebodyLa-la-la-la !
I live off you
Apt-Pinning for Beginners
Why apt-pinning?
Do you run Debian? Have you ever gotten annoyed at how Debian Stable always seems to be out of date?
I will show you a way that you can have apt mix-and-match between Stable, Testing, and Unstable sources. This will allow you to run a mostly-Stable system, but also track the latest and greatest of those packages that you are most keenly interested in.
Why do this? Stable is covered by the Security Team. Testing and Unstable are not. For non-critical services, like perhaps your mailer, or your window manager, this is not so important, and the newest versions may have additional features that are desired. It is these packages that are perfect for pinning to a version, other than Stable.
sources.list
The first step is to set up your /etc/apt/sources.list to include your typical Stable, plus the Testing/Unstable sources that you want.
A simple sources.list may look like this:
#Stable
deb http://ftp.us.debian.org/debian stable main non-free contrib
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#Testing
deb http://ftp.us.debian.org/debian testing main non-free contrib
deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
#Unstable
deb http://ftp.us.debian.org/debian unstable main non-free contrib
deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-freeYou would probably want to add your mirrors, security.debian.org, and perhaps the appropriate deb-src lines. Here is a copy of my actual sources.list.
preferences
The next step is to create/edit your /etc/apt/preferences file. preferences is where the apt-pinning takes place. Normally, the highest version of an available package wins, but we will override that.
A simple preferences file may look like this:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600Note the decending values. Since Stable has the highest pin-priority, it will be installed preferentially over Testing or Unstable.
My actual preferences file is what you see above.
apt-get update
Now we are ready to apt-get update. This will add the new repositories to apt's list.
E: Dynamic MMap ran out of roomYou may find that you receive an error like the following:
E: Dynamic MMap ran out of room
E: Error occured while processing sqlrelay-sqlite (NewPackage)
E: Problem with MergeList /var/lib/apt/lists/ftp.us.debian.org_debian_dists_woody_contrib_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.This is caused because apt's cache is too small to handle all of the packages that are included with stable, testing, and unstable. This is also very easy to fix. Add the following line to /etc/apt/apt.conf
APT::Cache-Limit "8388608";Thanks to R (Chandra) Chandras for pointing out this problem
Installing new packages
To install a new package, it is just as it ever was, apt-get install <package>. If the package exists in Stable, then that is what it will grab. If the package exists only in Unstable, then from Unstable it will be gotten.
What if the package exists in both Stable and Unstable, but we want the Unstable version? There are two ways we can do that, each with a slightly different syntax, and each with a slightly different effect.
apt-get install <package>/unstableThis will install the unstable version of the package, and try to meet any dependencies from Stable. This may not work, but it will tell you why:
# apt-get install zsh/unstable
Reading Package Lists... Done
Building Dependency Tree... Done
Selected version 4.0.6-7 (Debian:unstable) for zsh
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:
Sorry, but the following packages have unmet dependencies:
zsh: Depends: libc6 (>= 2.2.5-13) but 2.2.5-11.1 is to be installed
E: Sorry, broken packages
apt-get -t unstable install <package>This will install the Unstable version of the package, and try to meet any dependencies from Unstable. This may produce better results.
# apt-get -t unstable install zsh
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libc6 libc6-dev libc6-pic libdb1-compat locales
The following NEW packages will be installed:
libdb1-compat
5 packages upgraded, 1 newly installed, 0 to remove and 394 not upgraded.
Need to get 11.6MB of archives. After unpacking 606kB will be used.
Do you want to continue? [Y/n]That's it!
Armed with a complete sources.list and a minimal preferences, you can go ahead and mix-and-match between the various Debian releases.
Have fun!
Combat Baby
We used to leave the blue lights on and there was a beat
Ever since you have been gone it's all caffeine-free — Faux punk fatigues
Said it all before — They try to kick it, their feet fall asleep
Get no harm done — No
None of them want to fight meCombat baby come back baby
Fight off the lethargy
Don't go quietly
Combat baby
Said you would never give up easy
Combat baby come backGet back in town I wanna paint it black
Wanna get around — Easy living crowd so flat
Said it all before — They try to kick it, their feet fall asleep
I want to be wrong — but
No one here wants to fight me like you doCombat baby come back baby
Fight off the lethargy
Don't go quietly
Combat baby
Said you would never give up easy
Combat baby come backI try to be so nice
Compromise
Who gets it good?
Every mighty mild — seventies child
Every mighty mild — seventies child
Beats meDo doo doo doo
Combat baby come back baby
Combat baby come back
Bye bye bye bye bye bye bye bye baby
Combat baby come backHow I miss your ranting
Do you miss my all time lows
SVN fusion des révisions de trunk dans votre branche
À partir de la branche
svn logAffiche le numéro de révision lors de la création de ma branche
------------------------------------------------------------------------
r23 | stereosv | 2009-02-17 11:42:28 -0500 (Tue, 17 Feb 2009) | 1 line
creating branch for xyzMaintenant j'ai besoin de connaître la révision actuelle du trunk. La commande svn update exécutée à partir du trunk retourne la version actuelle.
> svn update
At revision 25.Dans mon cas, le trunk est à la révision 25... impliquant qu'il n'y a eu que deux commit depuis la dernière fois que j'ai checked out ma branche. Sympa.
Maintenant, il faut transporter ces changements dans ma branche. De retour sur le répertoire de ma branche, il est temps de mettre les numéros de révision.
svn merge -r 23:25 svn+ssh://username@svnserver/home/username/svn/project/trunkCe qui est fait est un merge de tous les changements survenus entre la révision 23 (quand j'ai créé ma branche) et la révision 25 (la version la plus récente du trunk) dans le trunk dans ma copie locale.
Maintenant il est temps de check in ma branche, avec les changements mise à jour à partir du trunk.
svn ci -m "Merged trunk changes r23:25 into my branch"Boys don't cry
I would say I'm sorry
If I thought that it would change your mind
But I know that this time
I have said too much, been too unkind
I try to laugh about it
Cover it all up with lies
I try to laugh about it
Hiding the tears in my eyes'Cause Boys don't Cry
I would break down at your feet
And beg forgiveness plead with you
But I know that it's too late
And now there's nothing I can do
So I try to laugh about it
Cover it all up with lies
I try to laugh about it
Hiding the tears in my eyes'Cause Boys don't Cry
I would tell you
That I loved you
If I thought that you would stay
But I know that it's no use
That you're already gone away
Misjudged your limits
Pushed you too far
Took you for granted
I thought that you needed me moreI would do most anything
To get you back by my side
But I just keep on laughing
Hiding the tears in my eyes'Cause Boys don't Cry
Boys don't Cry