https://github.com/vitexsoftware/igdebi
Online package installer for Debian
https://github.com/vitexsoftware/igdebi
debian downloader package-management python ubuntu
Last synced: about 2 months ago
JSON representation
Online package installer for Debian
- Host: GitHub
- URL: https://github.com/vitexsoftware/igdebi
- Owner: VitexSoftware
- License: lgpl-2.1
- Created: 2017-12-13T02:10:11.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-05-18T11:33:32.000Z (about 4 years ago)
- Last Synced: 2025-02-14T22:38:22.100Z (over 1 year ago)
- Topics: debian, downloader, package-management, python, ubuntu
- Language: Python
- Size: 84 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
#  igdebi
**Interactive Gdebi** - A modern command-line tool for downloading and installing Debian packages from URLs.
## Features
- ๐ **URL Support**: Download .deb packages directly from web URLs
- ๐ **Local Files**: Install local .deb files
- ๐ **Progress Bars**: Real-time download progress with speed indicators
- ๐ **Security**: Safe subprocess execution, proper input validation
- ๐งน **Auto Cleanup**: Automatically removes downloaded files after installation
- โก **Modern**: Updated dependencies and Python 3.7+ support
- ๐ก๏ธ **Error Handling**: Comprehensive error handling and user feedback
## Quick Start
### Install from Repository
```shell
sudo apt install lsb-release wget
echo "deb http://repo.vitexsoftware.cz $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vitexsoftware.list
sudo wget -O /etc/apt/trusted.gpg.d/vitexsoftware.gpg http://repo.vitexsoftware.cz/keyring.gpg
sudo apt update
sudo apt install igdebi
```
### Install from Source
```shell
git clone https://github.com/VitexSoftware/igdebi.git
cd igdebi
pip3 install -r requirements.txt
sudo apt install gdebi-core
pip3 install -e .
```
## Usage
### Download and Install from URL
```shell
sudo igdebi https://example.com/package.deb
```
### Install Local Package
```shell
sudo igdebi /path/to/package.deb
```
### Example with Real Package
```shell
# Install Apache NetBeans IDE
sudo igdebi https://github.com/Friends-of-Apache-NetBeans/netbeans-installers/releases/download/v27-build1/apache-netbeans_27-1_amd64.deb
```
**Output:**
```console
Downloading https://github.com/.../apache-netbeans_27-1_amd64.deb...
Downloading apache-netbeans_27-1_amd64.deb: 100%|โโโโโโโโโโโโ| 621M/621M [00:20<00:00, 30.9MB/s]
Successfully installed apache-netbeans_27-1_amd64.deb
Cleaned up downloaded file: apache-netbeans_27-1_amd64.deb
```

## Requirements
### System Requirements
- **OS**: Debian, Ubuntu, or derivatives
- **Python**: 3.7 or higher
- **Architecture**: amd64, i386, arm64 (depends on package)
### System Dependencies
```shell
sudo apt install gdebi-core python3-pip
```
### Python Dependencies
Python 3.7+ is required. The following Python packages are needed:
- `tqdm>=4.67.0` - For progress bars during download
- `validators>=0.35.0` - For URL validation
- `requests>=2.25.0` - For HTTP downloads
Install Python dependencies:
```shell
pip3 install -r requirements.txt
```
## Development
### Development Setup
1. **Clone Repository**
```shell
git clone https://github.com/VitexSoftware/igdebi.git
cd igdebi
```
2. **Create Virtual Environment**
```shell
python3 -m venv venv
source venv/bin/activate # On Linux/macOS
```
3. **Install Dependencies**
```shell
pip install -r requirements.txt
pip install -e .
```
4. **Install System Dependencies**
```shell
sudo apt install gdebi-core
```
### Building Debian Package
We use standard debian devscripts:
```shell
debuild -i -us -uc -b
```
### Testing
Run tests with a real package:
```shell
# Test with a small package
sudo igdebi https://github.com/VitexSoftware/igdebi/releases/download/test/test-package.deb
# Test with local file
sudo igdebi /path/to/local/package.deb
```
## API Reference
### Command Line Interface
```text
igdebi
```
**Arguments:**
- `URL_OR_PATH`: Either a URL pointing to a .deb file or a local file path
**Examples:**
```shell
igdebi https://example.com/package.deb # Download and install from URL
igdebi ./package.deb # Install local file
igdebi /tmp/downloaded.deb # Install from absolute path
```
### Error Handling
The tool provides comprehensive error handling:
- **Invalid URL**: Validates URL format before attempting download
- **Network Issues**: Handles connection timeouts and HTTP errors
- **File Validation**: Ensures files have .deb extension
- **Missing Dependencies**: Checks for gdebi installation
- **Permission Issues**: Clear messages for sudo requirements
- **Interrupted Downloads**: Clean cleanup on Ctrl+C
## Changelog
### Version 0.2.0 (2025-10-04)
- โจ **New**: Real-time progress bars with download speed
- ๐ง **Fixed**: Progress bar display issues
- ๐ **Security**: Replaced `os.system()` with secure `subprocess` calls
- ๐ฆ **Updated**: All dependencies to latest versions
- ๐งน **Improved**: Error handling and user feedback
- ๐ฏ **Enhanced**: URL validation and file handling
- ๐ **Added**: Comprehensive documentation and examples
### Version 0.2 (2020-07-19)
- ๐ **Initial**: First public release
- ๐ฆ **Feature**: Basic URL download and package installation
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the GPL License - see the [LICENSE](LICENSE) file for details.
## Support
- ๐ **Issues**: [GitHub Issues](https://github.com/VitexSoftware/igdebi/issues)
- ๐ง **Email**:
- ๐ **Website**: [VitexSoftware](https://vitexsoftware.cz)
## Related Projects
- [gdebi](https://packages.debian.org/sid/gdebi-core) - The underlying package installer
- [apt](https://wiki.debian.org/Apt) - Advanced Package Tool for Debian
- [dpkg](https://wiki.debian.org/Teams/Dpkg) - Debian package manager