Ich hab fast alle älteren Builds vom Server gekickt. Damit ich wider Platz bekomme. Mein letztes 2.56 Beta Build von Blender hab ich noch in der Liste stehen lassen.Zu dem habe ich eine neue Version erstellt und in die Build Liste eingetragen (2.57.0 r.36284 RC). Ein kleines Oster Geschenk @all.
Wie kann man unter Ubuntu die alten Kernel von der Platte putzen?
Ich selber hab es zuerst mit autoremove versucht:
apt-get autoremove
Die alten Kernel Versionen wurden bei mir nicht entfernt. Kann sein das es bei euch geht…also ausprobieren. Wichtige Info! Ich empfehle euch Minimum 2 Kernel Versionen auf dem System zu lassen. Also die aktuelle Version die jetzt läuft und die letzte Version. So zusagen unser Backup Kernel.
Der Packetmanager apt-get hilft uns dabei. Zuerst brauchen wir ein paar Infos von unserem System.
Step by Step:
Welcher Kernel wird jetzt verwendet?
Und welche Kernel Versionen sind installiert auf unserem System?
Entfernen des alten Kernel Images
Update von der Grup config
Schritt 1: Das Tool uname kann uns die erste Frage beantworten.
Gentoo – system update – perl issue – dbus issue bei gnome gconf -gcc und xfce 4.8 update
Wenn Ihr auf eurem Gentoo System ein Update macht und es sind ein paar Perl Module betroffen. Kann es sein das gewisse Abhängigkeiten nicht mehr vorhanden sind. z.B Wenn der Perl XML Parser nicht mehr gefunden wird – dann ist es Zeit das Tool perl-cleaner zu verwenden.
Wenn Ihr Probleme habt z.b von Gnome gconf frisch zu Kompilieren - und die Error Meldung hat etwas mit dem libtool zu tun.
Dann sind gewisse Abhängigkeiten zu gewissen Lib’s nicht mehr vorhanden – dann ist es Zeit lafilefixer –justfixit zu verwenden.
Für das update von XFCE 4.6 auf XFCE 4.8 musste ich nur die neuen Packete Kompilieren und einspielen. Beim gcc update vom gcc 3.4 auf gcc 4.4 war das ganze anspruchsvoller. Zuerst einmal emerge gcc und dann auf das neue Profil wechseln mit: gcc-config x86_64-pc-linux-gnu-4.4.4. Danach die System Umgebung anpassen mit: source /etc/profile. Jetzt noch das libtool updaten und ein revdep-rebuild ausführen. Mit emerge –info seht ihr, dass der neue gcc 4.4 aktiv ist. Ab jetzt kommt der lange Teil vom update. Es ist wichtig das dass ganze System Kompiliert wird mit dem neuen gcc. Mein System wurde mit dem gcc 3.4 Kompiliert. Damit alle Module wie die Toolchain vom Kompilier auch auf gcc 4.4 sauber funktionieren, ist es wichtig alles zu Kompilieren. Ich mache das in einer screen Session: screen -dmS up emerge world. Das dauert….
Zum Schluss noch den Kernel mit der aktuellen config Kompilieren und in den /boot Drive verschieben und im Grub (grub.config) einbinden. Jetzt sollte alles auf dem neuen gcc 4.4 Rocken.
Ich habe heute NetBox ein bisschen verändert. Das ganze habe ich jetzt mit PHP 5.3 Umgesetzt, weil ab dieser Version der Namespace zur verfügung steht. Zudem ist jetzt alles auf OOP Style ausgelegt. PHP hat in gewissen Punkten noch ein paar schwächen. z.b starke Datentypen..u.s.w . Aber alleine die Erweiterung mit Namespace hilft dass Projekte eine bessere Struktur erhalten.
z.B Hier habe ich die Hauptklasse NetBox, es ist eine abstrakte Klasse. Wo im Namespace unter ch.starwolf.netbox zu finden ist.
/*
NET-BOX
####################################
glenn
22.11.2010
###################################
NET-BOX v0.2
*/
namespace ch\starwolf\netbox;
abstract class NetBox {
private $Data = NULL;
abstract public function Execution($param);
public function __construct(){
}
protected function Serialization($param) {
$this->setData($param);
$this->Encoding();
}
private function setData($param) {
$this->Data = $param;
}
private function getData() {
return $this->Data;
}
private function Encoding() {
$this->DataReader($this->getData());
$this->ResponseJson($this->getData());
}
private function DataReader($param){
$DataHolder = NULL;
$Line = NULL;
foreach ($param as $Line){
$DataHolder = "$DataHolder $Line
";
}
$this->setData(array("ping" => $DataHolder));
}
private function ResponseJson($param) {
if(!empty($param)) {
echo json_encode($param);
} else {
$data = array("ping" => "n.a");
echo json_encode($data);
}
}
}//end of class
Davon sind nun die anderen klassen Abgeleitet z.b in diesem Fall die Klasse Mod_Ping. Die sich im Namespace ch.starwolf.netbox.moduls zu finden ist:
/*
NET-BOX
####################################
glenn
22.11.2010
###################################
Mod_Ping v0.2
*/
namespace ch\starwolf\netbox\moduls;
use ch\starwolf\netbox\NetBox;
class Mod_Ping extends NetBox {
private $URL;
private $Data = NULL;
private $PingCount = 4;
public function __construct(){
}
public function Execution($param = NULL){
$this->setURL($param);
exec("ping -c ".$this->getPingCount()." ".$this->getURL(),$this->Data);
$this->Serialization($this->getData());
}
protected function setPingCount($param) {
$this->PingCount = $param;
}
private function getPingCount(){
return $this->PingCount;
}
protected function setURL($param){
$this->URL = $param;
}
private function getURL(){
return $this->URL;
}
private function setData($param) {
$this->Data = $param;
}
private function getData() {
return $this->Data;
}
}//enf of class
Die Gateway Klasse hat den Zustand warten – es wartet auf Events wo mit Json durchgeführt werden.
Ich habe dazu auch ein UML Diagramm gemacht.
Netbox UML
Das ganze wurde vereinfacht Dargestellt und ergänzt.Mit ergänzt ist gemeint , wo eigentlich PHP vom OOP Ansatz schwächelt, aber trotzdem als unterstützende Hilfe gedacht ist. In diesem Fall die starken Datentypen, wo C#, Java und die anderen OOP Sprachen schon lange unterstützen. Die Order Struktur ist dann im Projekt und auf dem Webserver auf dem Namespace ausgelegt.
Netbox Ordner View
Was noch Unschön ist bei dieser Geschichte , es braucht noch eine Methode um so eine Struktur zu verwenden. Diese Methode muss man einbauen um überhaupt damit zu arbeiten. Diese Hilfs Methode habe ich in dem Ordner utils abgelegt und die sieht dann so aus:
/*
* autoload util
* the spl_autoload works only on windows server..
* TODO: check the future release from PHP for this Bug on Unix System.
*
* spl_autoload_extensions(".php");
* spl_autoload_register();
*
*/
function __autoload($className) {
$fileName = str_replace("\\", "/", $className).".php";
if (file_exists($fileName)) {
require_once $fileName;
}
}
Das ganze hat noch einen Bug für Unix – auf Windows Server kann man die zwei spl Methoden verwenden. Ich habe das ganze in meinen Gateway von Netbox Tool eingebunden.
/*
NET-BOX
####################################
glenn
22.11.2010
###################################
NET-BOX v0.2
*/
include_once 'ch/starwolf/utils/AutoLoad.php';
use ch\starwolf\netbox\moduls as mod;
/*
Jetzt kann ich Objekte erstellen von meinem Namespace
z.B für Mod_Ping
*/
$oNetBox = new mod\Mod_Ping();
$oNetBox->Execution(trim($URL));
Ich bin halt eine Wundernase und wollte einen kleinen Test machen wie das jetzt aussieht. Die Projekte unter PHP sind zum Teil sehr wild aufgebaut. Aber mit der Möglichkeit von Namespace und noch ein paar anderen Änderungen im OOP Bereich – die sicher kommen werden. Ist das ganze eine sehr edle Angelegenheit.