- The document discusses two methods for creating Debian packages: using dpkg-deb or dpkg-buildpackage.
- It provides step-by-step instructions for creating the package directory structure, metadata files, building and installing the package, and verifying installation.
- An alternative method using dh_make is also presented, which simplifies the process by automatically generating basic packaging files and directories.
How to Build Package in Linux Based Systems.İbrahim UÇAR
This document explains how to create a Debian (.deb) package from source code or manually on a Linux system. It covers topics such as package types, dependencies, tools for creating packages, package files and structure, and testing packages. Key steps include installing package creation tools, compiling an application from source, and using tools like checkinstall or debmake to convert it to a .deb package. Manual package creation involves creating package files and directories, writing installation scripts, and building the package. The document provides examples to create packages for the bzip2 tool from source and manually for a test package.
This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. In addition to the main tutorial, it includes three practical sessions on modifying the 'grep' package, and packaging the 'gnujump' game and a Java library.
Installing and managing Linux software involves working with software packages in various formats. The main types are binary packages, which contain pre-compiled software, and source code packages, which contain the source code that needs to be compiled. Package management systems like RPM and APT automate the installation, updating, and removal of packages and their dependencies. Commands like yum, apt, and dpkg can be used to install packages, while tar is used to extract source code which then needs to be compiled before use.
The document provides guidance on packaging applications for the Maemo platform. It discusses finding software to package, creating the initial package files and structure using dh_make, the necessary files like changelog, copyright and control, how debhelper automates common packaging tasks, tracking dependencies, and other tools that can help like pbuilder and cowbuilder. While Maemo uses Debian packaging tools, it is not Debian and has its own build systems and conventions that allow it to innovate independently from Debian.
This document provides an overview and introduction to basic Linux commands and directories for CAD beginners. It discusses the root and home directories, common commands like ls, cd, pwd, and man. It also covers file permissions and the .bashrc file, text editors like vi, the grep command, secure sharing with ssh and scp, compression with zip and tar, installing software from repositories or from source code, and Python package management with pip.
Images of 1st, 2nd and 6th belong to DreamWorks Animation
Image of K Computer belongs to Fujitsu.
Presentation made not for commercial use, but educational.
The document discusses Debian packaging and provides instructions for creating Debian packages. It introduces Debian packaging tools like debhelper, dpkg-dev, and lintian. It then walks through the steps to generate a package including creating the package directory structure, files like control, rules, and copyright. It also discusses collaborating with Debian through documentation, translations, packaging software, and bug reporting.
How to Build Package in Linux Based Systems.İbrahim UÇAR
This document explains how to create a Debian (.deb) package from source code or manually on a Linux system. It covers topics such as package types, dependencies, tools for creating packages, package files and structure, and testing packages. Key steps include installing package creation tools, compiling an application from source, and using tools like checkinstall or debmake to convert it to a .deb package. Manual package creation involves creating package files and directories, writing installation scripts, and building the package. The document provides examples to create packages for the bzip2 tool from source and manually for a test package.
This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. In addition to the main tutorial, it includes three practical sessions on modifying the 'grep' package, and packaging the 'gnujump' game and a Java library.
Installing and managing Linux software involves working with software packages in various formats. The main types are binary packages, which contain pre-compiled software, and source code packages, which contain the source code that needs to be compiled. Package management systems like RPM and APT automate the installation, updating, and removal of packages and their dependencies. Commands like yum, apt, and dpkg can be used to install packages, while tar is used to extract source code which then needs to be compiled before use.
The document provides guidance on packaging applications for the Maemo platform. It discusses finding software to package, creating the initial package files and structure using dh_make, the necessary files like changelog, copyright and control, how debhelper automates common packaging tasks, tracking dependencies, and other tools that can help like pbuilder and cowbuilder. While Maemo uses Debian packaging tools, it is not Debian and has its own build systems and conventions that allow it to innovate independently from Debian.
This document provides an overview and introduction to basic Linux commands and directories for CAD beginners. It discusses the root and home directories, common commands like ls, cd, pwd, and man. It also covers file permissions and the .bashrc file, text editors like vi, the grep command, secure sharing with ssh and scp, compression with zip and tar, installing software from repositories or from source code, and Python package management with pip.
Images of 1st, 2nd and 6th belong to DreamWorks Animation
Image of K Computer belongs to Fujitsu.
Presentation made not for commercial use, but educational.
The document discusses Debian packaging and provides instructions for creating Debian packages. It introduces Debian packaging tools like debhelper, dpkg-dev, and lintian. It then walks through the steps to generate a package including creating the package directory structure, files like control, rules, and copyright. It also discusses collaborating with Debian through documentation, translations, packaging software, and bug reporting.
Walter gives an introduction to compiling PHP from source. Some key points covered include:
- Reasons for compiling PHP yourself include supporting old PHP versions, testing multiple versions, and using proprietary extensions.
- The build process involves running ./configure, make, and make install commands. Various configuration options can be specified.
- Popular PHP extensions like APC, Xdebug, PostgreSQL can be installed via PECL. Extensions are also compiled from source using phpize and make.
- The compiled PHP is typically installed to /usr/local/ and configurations made in the php.ini file.
Software Packaging for Cross OS DistributionJian-Hong Pan
The document discusses software packaging for cross-platform distribution by building Debian packages inside a container. It provides examples of building a simple "Hello World" package and modifying an existing "nvidia-graphics-drivers" package. It demonstrates setting up a Debian environment in a Docker container, creating packages without root privileges, and implementing packaging as infrastructure code using a Dockerfile. The document promotes open source and discusses using Podman instead of Docker for containerization.
The document discusses how to install, configure, and uninstall the Apache web server on Linux systems. It provides instructions for installing Apache using packages or compiling from source, editing configuration files to set up the server, and different methods for uninstalling Apache including using package managers or manually deleting files. The document also covers Apache configuration directives for the Prefork and Worker MPM modules and gives an overview of Apache filters and how to use them to manipulate HTTP request and response data.
This document provides an overview of Debian package management tools and utilities. It discusses using dpkg to install, remove, get information on, and manage packages. It also covers using dselect which provides a character-based graphical interface to manage packages from various sources like CDROM, NFS, hard disk, FTP etc. Key tools covered include dpkg, dselect, apt-get, and utilities like dpkg-reconfigure, apt-cache.
Deploying and maintaining your software with RPM/APTJoshua Thijssen
The document describes a conference about deploying and maintaining software with RPM and APT package managers. The conference will take place on April 16-17, 2011 in Antwerp, Belgium and the URL http://joind.in/3315 provides additional information about the event.
The document discusses installing and configuring various Linux applications including Apache, PHP, MySQL, and Postgres. It covers basic Ubuntu installation, system configuration, installing packages, configuring Apache, PHP, and MySQL. Specific instructions are provided for installing Apache, configuring virtual hosts and SSL, installing PHP, and installing and configuring MySQL and phpMyAdmin.
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Simon Boulet
This document discusses using reprepro to create and manage an APT repository for hosting custom packages and configurations. Reprepro allows syncing packages from external repositories, resigning packages with a custom key, and distributing packages to different environments like development, staging, and production. Configurations can be packaged and deployed per-environment to simplify management across suites. Integrating the custom repository with configuration management tools like Ansible promotes conformity.
Preparation study for Docker Event
Mulodo Open Study Group (MOSG) @Ho chi minh, Vietnam
http://www.meetup.com/Open-Study-Group-Saigon/events/229781420/
This document provides instructions on installing Linux, including collecting hardware information beforehand, preparing disk partitions, booting from CD-ROM, continuing the installation process by preparing filesystems and installing packages, and basic parts of an installation kit like README files, boot disk images, and the installation CD-ROM. It also covers uninstalling or removing software packages using either the graphical Synaptic tool or command line apt-get commands. Basic Linux commands like mkdir, cd, pwd, rmdir, chown, chmod, ls, and cp are described.
The document provides instructions on installing Linux, including collecting hardware information before installing, preparing disk partitions, installing from a CD-ROM, and basic package management tools for installing, upgrading, and removing software.
Bundling Packages and Deploying Applications with RPMAlexander Shopov
This document summarizes the steps to build an RPM package for a sample Java application called Counterbean using Tomcat. It describes preparing the build environment by installing necessary packages, creating a dedicated packager user, and initializing the RPM build tree. The document then walks through editing the spec file, adding dependencies, and building and installing the RPM package locally. Key aspects covered include file ownership, startup scripts, and switching the application's database.
This document provides instructions for a lab on using Docker to install and run containers. The objectives are to install Docker, create images and containers, launch applications in containers, and store and access data in containers. It outlines setting up Docker on Ubuntu, pulling existing images like Fedora and running containers from them. Specific steps look at running the "hello-world" container, installing wget in a Fedora container, and persisting data. The last section provides instructions for building a Docker image to run the OwnCloud application in a container, addressing aspects like installing the application, configuring network access, and persisting data and configuration.
The document provides an overview of installing Oracle 10g R2 database on Unbreakable Linux. It discusses Linux file system structure, installing Oracle software, configuring the network and kernel parameters, creating users and groups, and post-installation steps like starting the listener, database, and Enterprise Manager. Key tasks covered include checking system requirements, running the Oracle installer, configuring environment variables, and accessing the database using SQL*Plus and Enterprise Manager.
The document discusses Debian package management tools. It describes how to use dpkg to install, remove, and get information about packages. Key points covered include using dpkg to install and remove packages and their dependencies, force package installation or removal, get package information and list files installed by a package. The document also discusses using dpkg to view package status, list installed packages, and find which package installed a specific file.
This document provides an overview of Debian package management. It discusses the key tools used to install, remove, and manage packages including dpkg, apt-get, and aptitude. Specific functions of these tools are described such as installing packages and resolving dependencies with dpkg, obtaining package information with apt-cache, and listing installed files with dpkg -L. The document also covers force options, package status, and how to find which package installed a specific file.
This document provides an overview of Debian package management. It discusses the key tools used to install, remove, and manage packages including dpkg, apt-get, and aptitude. Specific functions of these tools are described such as installing packages and resolving dependencies with dpkg, retrieving package information with apt-cache, and listing installed files with dpkg -L. The document also covers force options, package status, and how to find which package installed a specific file.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Más contenido relacionado
Similar a How to make debian package from scratch (linux)
Walter gives an introduction to compiling PHP from source. Some key points covered include:
- Reasons for compiling PHP yourself include supporting old PHP versions, testing multiple versions, and using proprietary extensions.
- The build process involves running ./configure, make, and make install commands. Various configuration options can be specified.
- Popular PHP extensions like APC, Xdebug, PostgreSQL can be installed via PECL. Extensions are also compiled from source using phpize and make.
- The compiled PHP is typically installed to /usr/local/ and configurations made in the php.ini file.
Software Packaging for Cross OS DistributionJian-Hong Pan
The document discusses software packaging for cross-platform distribution by building Debian packages inside a container. It provides examples of building a simple "Hello World" package and modifying an existing "nvidia-graphics-drivers" package. It demonstrates setting up a Debian environment in a Docker container, creating packages without root privileges, and implementing packaging as infrastructure code using a Dockerfile. The document promotes open source and discusses using Podman instead of Docker for containerization.
The document discusses how to install, configure, and uninstall the Apache web server on Linux systems. It provides instructions for installing Apache using packages or compiling from source, editing configuration files to set up the server, and different methods for uninstalling Apache including using package managers or manually deleting files. The document also covers Apache configuration directives for the Prefork and Worker MPM modules and gives an overview of Apache filters and how to use them to manipulate HTTP request and response data.
This document provides an overview of Debian package management tools and utilities. It discusses using dpkg to install, remove, get information on, and manage packages. It also covers using dselect which provides a character-based graphical interface to manage packages from various sources like CDROM, NFS, hard disk, FTP etc. Key tools covered include dpkg, dselect, apt-get, and utilities like dpkg-reconfigure, apt-cache.
Deploying and maintaining your software with RPM/APTJoshua Thijssen
The document describes a conference about deploying and maintaining software with RPM and APT package managers. The conference will take place on April 16-17, 2011 in Antwerp, Belgium and the URL http://joind.in/3315 provides additional information about the event.
The document discusses installing and configuring various Linux applications including Apache, PHP, MySQL, and Postgres. It covers basic Ubuntu installation, system configuration, installing packages, configuring Apache, PHP, and MySQL. Specific instructions are provided for installing Apache, configuring virtual hosts and SSL, installing PHP, and installing and configuring MySQL and phpMyAdmin.
Deploying with Super Cow Powers (Hosting your own APT repository with reprepro)Simon Boulet
This document discusses using reprepro to create and manage an APT repository for hosting custom packages and configurations. Reprepro allows syncing packages from external repositories, resigning packages with a custom key, and distributing packages to different environments like development, staging, and production. Configurations can be packaged and deployed per-environment to simplify management across suites. Integrating the custom repository with configuration management tools like Ansible promotes conformity.
Preparation study for Docker Event
Mulodo Open Study Group (MOSG) @Ho chi minh, Vietnam
http://www.meetup.com/Open-Study-Group-Saigon/events/229781420/
This document provides instructions on installing Linux, including collecting hardware information beforehand, preparing disk partitions, booting from CD-ROM, continuing the installation process by preparing filesystems and installing packages, and basic parts of an installation kit like README files, boot disk images, and the installation CD-ROM. It also covers uninstalling or removing software packages using either the graphical Synaptic tool or command line apt-get commands. Basic Linux commands like mkdir, cd, pwd, rmdir, chown, chmod, ls, and cp are described.
The document provides instructions on installing Linux, including collecting hardware information before installing, preparing disk partitions, installing from a CD-ROM, and basic package management tools for installing, upgrading, and removing software.
Bundling Packages and Deploying Applications with RPMAlexander Shopov
This document summarizes the steps to build an RPM package for a sample Java application called Counterbean using Tomcat. It describes preparing the build environment by installing necessary packages, creating a dedicated packager user, and initializing the RPM build tree. The document then walks through editing the spec file, adding dependencies, and building and installing the RPM package locally. Key aspects covered include file ownership, startup scripts, and switching the application's database.
This document provides instructions for a lab on using Docker to install and run containers. The objectives are to install Docker, create images and containers, launch applications in containers, and store and access data in containers. It outlines setting up Docker on Ubuntu, pulling existing images like Fedora and running containers from them. Specific steps look at running the "hello-world" container, installing wget in a Fedora container, and persisting data. The last section provides instructions for building a Docker image to run the OwnCloud application in a container, addressing aspects like installing the application, configuring network access, and persisting data and configuration.
The document provides an overview of installing Oracle 10g R2 database on Unbreakable Linux. It discusses Linux file system structure, installing Oracle software, configuring the network and kernel parameters, creating users and groups, and post-installation steps like starting the listener, database, and Enterprise Manager. Key tasks covered include checking system requirements, running the Oracle installer, configuring environment variables, and accessing the database using SQL*Plus and Enterprise Manager.
The document discusses Debian package management tools. It describes how to use dpkg to install, remove, and get information about packages. Key points covered include using dpkg to install and remove packages and their dependencies, force package installation or removal, get package information and list files installed by a package. The document also discusses using dpkg to view package status, list installed packages, and find which package installed a specific file.
This document provides an overview of Debian package management. It discusses the key tools used to install, remove, and manage packages including dpkg, apt-get, and aptitude. Specific functions of these tools are described such as installing packages and resolving dependencies with dpkg, obtaining package information with apt-cache, and listing installed files with dpkg -L. The document also covers force options, package status, and how to find which package installed a specific file.
This document provides an overview of Debian package management. It discusses the key tools used to install, remove, and manage packages including dpkg, apt-get, and aptitude. Specific functions of these tools are described such as installing packages and resolving dependencies with dpkg, retrieving package information with apt-cache, and listing installed files with dpkg -L. The document also covers force options, package status, and how to find which package installed a specific file.
Similar a How to make debian package from scratch (linux) (20)
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
How to make debian package from scratch (linux)
1. How to make debian package
from scratch
10/2023
2. Example of a directories :
● my-package/ is the top-level directory for your package.
● DEBIAN/ is where you place control files and scripts.
● usr/ is where you place files that will be installed on the target system.
Structure of a debian package
3. Inside the DEBIAN/ directory, create a control file with package metadata.
For example:
Place the binary or files you want to package into the appropriate directories. In this example, we have an executable
named my-executable in usr/bin/.
You can customize the package further by adding pre-installation and post-installation scripts, defining dependencies, and more in the
DEBIAN/control file.
Help : https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles
Structure of a debian package
6. - You must be on a debian/ubuntu Linux distribution of course
- You need to have several packages :
$ sudo apt install dpkg
(ubuntu 22.04 LTS)
Requirements
7. Generation of a debian package
Navigate to the parent directory containing the my-package folder and run the following dpkg-deb command to build the
package:
This will create a Debian package file named my-package.deb in the current directory.
Manual : https://man7.org/linux/man-pages/man1/dpkg-deb.1.html
Help :
● https://www.iodigital.com/nl/history/intracto/creating-debianubuntu-deb-packages
8. Installation of a debian package
You can now install the debian package using dpkg:
To execute on the server to update!
MANUAL : https://doc.ubuntu-fr.org/dpkg
10. # Create the nn6-package (root directory) and the DEBIAN directory (for the
metadata)
$ mkdir -p nn6-package/DEBIAN
# Create the content’s directory
$ mkdir -p nn6-package/opt/
→ “opt” have been selected but we can choose freely any path ; it will installed into
/opt in the final filesystem !
$ tree
└── nn6-package/ # main folder of the package
├── DEBIAN/ # will contains the package’s metadata
└── opt/ # will contains the content of the
package
11. # Go into the nn6-package directory
$ cd nn6-package/opt/
# pull your update at the root of the content’s directory
$ git clone git@gitlab.enensys.com:tm-testtree/monitor/streamprobe/streamprobe-
vmaf.git .
$ tree
└── nn6-package/
├── DEBIAN/
└── opt/
└── streamprobe-vmaf/
└── your_executable
12. # go into the nn6-package/DEBIAN directory
$ cd nn6-package/DEBIAN/
# Generate info about package’s metadata
cat <<- EOF > control
Package: vmaf
Version: 1.0
Section: base
Priority: optional
Architecture: all
Maintainer: Thierry GAYET <thierry.gayet@enensys.com>
Description: Source code of the vmaf appliance
Homepage: https://www.enensys.com
EOF
Help : https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles
20. - You must be on a debian/ubuntu Linux distribution of course
- You need to have several packages :
$ sudo apt-get install dpkg-dev debhelper build-essential fakeroot
(ubuntu 22.04 LTS)
Requirements
21. Create the Package Directory Structure: You need to create a directory structure for your package. Here's a minimal example:
package_name/
├── debian/
│ ├── control
└── source_code/
Replace package_name with the name of your package and source_code with the directory containing your source code.
22. Create the Control File: Inside the debian directory, create a control file that contains metadata about your package. Here's a basic example:
Source: package_name
Section: misc
Priority: optional
Maintainer: Your Name <your.email@example.com>
Build-Depends: debhelper (>= 12)
Standards-Version: 4.5.0
Package: package_name
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A brief description of your package.
Customize the fields according to your package's details.
23. Build the Package: Use the dpkg-buildpackage command to build the Debian package. Ensure you are in the parent directory of the
package_name directory:
$ dpkg-buildpackage -rfakeroot -b
This command will build the Debian package.
24. Install the Package: After building the package, you can install it using dpkg:
$ sudo dpkg -i ../package_name_1.0-1_all.deb
Replace package_name_1.0-1_all.deb with the actual name of the generated .deb package file.
25. Verify the Installation: To verify the installation, you can run:
$ dpkg -l | grep package_name
This should list the package as installed.
26. Clean Up: After you're done, you can remove the package:
$ sudo dpkg -r package_name
28. - You must be on a debian/ubuntu Linux distribution of course
- You need to have several packages :
$ sudo apt-get install dpkg-dev debhelper build-essential fakeroot dh-make
(ubuntu 22.04 LTS)
Requirements
29. dh_make is a tool that simplifies the process of creating Debian source packages from upstream source code. It sets up the basic packaging files
and directory structure for you. Here's how to use dh_make to generate a Debian package.
Create a Working Directory: Create a directory to work in, where you'll place the source code and package files. You can create a new
directory, e.g., mypackage :
$ mkdir mypackage
$ cd mypackage
Download or Place Source Code: Download the source code for the software you want to package or place it in the mypackage directory. The
source code should be in a subdirectory within mypackage.
30. Run dh_make: Run the dh_make tool in the mypackage directory, specifying the type of software you're packaging. For example:
$ dh_make -s -c gpl -f ../source_code.tar.gz
● -s: Use the single-binary option.
● -c gpl: Set the software's license (replace gpl with the appropriate license).
● -f ../source_code.tar.gz: Specify the path to the source code archive.
Follow the prompts, including answering questions about the software's maintainer, email, and any other information required.
Package Configuration: dh_make will generate packaging files and directories. You may need to make some adjustments, such as:
○ Modify the debian/control file to specify package dependencies, architecture, and other package details.
○ Place any additional scripts, patches, or configuration files in the debian directory.
○ Review and edit the debian/rules file if needed to customize the build process.
31. Build the Package: Use debuild to build the package. This tool will handle the compilation, packaging, and other necessary steps.
$ debuild -us -uc
○ -us: Do not sign the source package.
○ -uc: Do not sign the changes file.
This command will create a .deb package and a source package in the parent directory.
Install and Test: Install the generated Debian package using dpkg:
sudo dpkg -i ../package_name_1.0-1_all.deb
Replace package_name_1.0-1_all.deb with the actual name of the generated package file.
Clean Up: After testing, you can remove the package:
$ sudo dpkg -r package_name
Submit to Debian Repository (Optional): If your package meets Debian's quality standards and licensing requirements, you can consider
submitting it to the Debian repository.
This process simplifies the initial setup for creating Debian packages, but further customization may be required based on the specific software
you are packaging. Additionally, you should follow Debian packaging guidelines to ensure the quality and compatibility of your package.
50. The dpkg tools can be used for managing (install, extract content, … ) :
$ dpkg -c ./test_2.0.0_amd64.deb
drwxr-xr-x root/root 0 2015-06-27 19:00 ./
drwxr-xr-x root/root 0 2015-06-27 19:00 ./usr/
drwxr-xr-x root/root 0 2015-06-27 19:00 ./usr/bin/
-rwxr-xr-x root/root 44790352 2015-06-27 19:00 ./usr/bin/test
drwxr-xr-x root/root 0 2015-06-27 19:00 ./usr/share/
drwxr-xr-x root/root 0 2015-06-27 19:00 ./usr/share/doc/
drwxr-xr-x root/root 0 2015-06-27 19:00 ./usr/share/doc/test/
-rw-r--r-- root/root 148 2015-06-27 18:45 ./usr/share/doc/test/changelog.gz
-rw-r--r-- root/root 33 2015-06-27 18:44 ./usr/share/doc/test/copyright
A debian package is just an ar archive. To extract data from a deb package, use the command ar with the -x flag:
$ ar -x ./test_2.0.0_amd64.deb
$ ls
control.tar.gz data.tar.gz debian-binary test_2.0.0_amd64.deb
$ tar -xzf control.tar.gz
$ tar -xzf data.tar.gz
$ dpkg-deb -x ./path/to/test.deb ./path/to/destination
$ dpkg -x ./test_2.0.0_amd64.deb .
51. The alien tool can be use to change the format :
Man : https://manpages.ubuntu.com/manpages/trusty/man1/alien.1p.html
$ sudo add-apt-repository universe
$ sudo apt update
$ sudo apt install alien
To convert an RPM package to DEB:
sudo alien --d file.rpm
sudo alien --to-deb file.rpm
DEB to RPM:
sudo alien -r file.deb
sudo alien --to-rpm file.deb
DEB to TAR.GZ:
sudo alien -t file.deb
sudo alien --to-tgz file.deb