Difference between revisions of "Misc"

From UVOO Tech Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 23: Line 23:
  
 
popd > /dev/null
 
popd > /dev/null
 +
 
```
 
```
  
```server {
+
```
 +
server {
 
     listen 80;
 
     listen 80;
 
     server_name repo.example.com;
 
     server_name repo.example.com;
Line 36: Line 38:
 
```
 
```
  
```echo "deb http://repo.example.com stable main" | sudo tee /etc/apt/sources.list.d/my-app.list
+
```
 +
echo "deb http://repo.example.com stable main" | sudo tee /etc/apt/sources.list.d/my-app.list
 
sudo apt update
 
sudo apt update
 
 
 
```
 
```
  

Latest revision as of 17:44, 24 August 2025

#!/bin/bash
REPO_ROOT="/var/www/html/my-debian-repo"
DISTRIBUTION="stable"
COMPONENT="main"
ARCHITECTURE="amd64"
POOL_DIR="${REPO_ROOT}/pool/${COMPONENT}"
DEB_FILE="deb/my-app.deb"
BINARY_DIR="dists/${DISTRIBUTION}/${COMPONENT}/binary-${ARCHITECTURE}"

mkdir -p "${POOL_DIR}"
cp "${DEB_FILE}" "${POOL_DIR}/"

pushd "${REPO_ROOT}" > /dev/null

mkdir -p "${BINARY_DIR}"

apt-ftparchive packages "pool" > "${BINARY_DIR}/Packages"

gzip -9c "${BINARY_DIR}/Packages" > "${BINARY_DIR}/Packages.gz"

apt-ftparchive release "dists/${DISTRIBUTION}" > "dists/${DISTRIBUTION}/Release"

popd > /dev/null

server {
    listen 80;
    server_name repo.example.com;
    root /var/www/html/my-debian-repo;
    autoindex on;
    location / {
        try_files $uri $uri/ =404;
    }
}
echo "deb http://repo.example.com stable main" | sudo tee /etc/apt/sources.list.d/my-app.list
sudo apt update

More

<br />Creating a Debian package repository involves organizing your .deb packages and generating the necessary metadata for APT to use. This can be done locally or hosted on a web server. 
Steps to Create a Local Debian Repository: 
install dpkg-dev. 
    sudo apt-get install dpkg-dev

create repository directory and place packages. 
    mkdir -p /path/to/your/repo/pool/main/
    cp /path/to/your/package.deb /path/to/your/repo/pool/main/

Replace /path/to/your/repo/ with your desired repository location and /path/to/your/package.deb with the actual path to your Debian package. Generate Packages File. 
    cd /path/to/your/repo/
    dpkg-scanpackages --arch all pool/ > dists/stable/main/binary-all/Packages
    gzip -9c dists/stable/main/binary-all/Packages > dists/stable/main/binary-all/Packages.gz

Adjust all to your package's architecture (e.g., amd64) if not universal. Add Repository to APT Sources. 
Create a new file in /etc/apt/sources.list.d/, for example, myrepo.list: 
    echo "deb [trusted=yes] file:/path/to/your/repo/ stable main" | sudo tee /etc/apt/sources.list.d/myrepo.list

The [trusted=yes] option is for local repositories and should be used with caution for remote repositories. Update APT Cache and Install. 
    sudo apt update
    sudo apt install your-package-name

Creating a Remote Repository (e.g., via HTTP): 

• Set up a Web Server: Install and configure a web server like Apache or Nginx to serve the /path/to/your/repo/ directory. 
• Adjust sources.list.d Entry: 

    echo "deb [trusted=yes] http://your-server-ip-or-domain/your/repo/ stable main" | sudo tee /etc/apt/sources.list.d/myrepo.list

Note: For more advanced repository management, consider tools like reprepro or aptly, which offer features like GPG signing, snapshotting, and more robust handling of multiple distributions and architectures. 

AI responses may include mistakes.